我在使用XML / XSD架构等方面还很陌生。我试图使用SQLXMLBulkLoad将XML文件加载到SQL Server中(要上传的文件大于2gb),并且由于源数据有问题包含连字符的元素名称,例如“名字”或“开始日期”。
我设法将一些样本记录(不包括这些字段)导入数据库,但是一旦添加名称中带有连字符的任何元素,导入就会失败,并显示一条错误消息:
模式:“列”的值无效,代码:80004005来源:模式映射
仅当元素名称中有连字符并且不知道如何解决时,才会发生这种情况。我已经尝试过寻找答案,但是找不到与我遇到的问题有关的任何参考。
架构代码如下所示:
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="jobs" sql:is-constant="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="job" sql:relation="mytemptable" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:string" />
<xsd:element name="title" type="xsd:string" />
<xsd:element name="description" type="xsd:string" />
<xsd:element name="town" type="xsd:string" />
<xsd:element name="start-date" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
我无法修改源数据文件以排除连字符,因此我必须找到一种在导入例程中处理它的方法,但仍无法使它正常工作。