我有一个包含员工和信息的巨大 XML 文件,并且有一个问题。
XML 文件示例:
<Employees>
<Employee>
<EmployeeID>blah</EmployeeID>
<FirstName>blah</FirstName>
<LastName>blah</LastName>
<MiddleName>blah</MiddleName>
.......... and on
</Employee>
........ and on
</Employees>
我的架构,到目前为止是这样的:
<?xml version="1.0" encoding="utf-8"?>
<xsd:element name="Employees" sql:relation="The_Employees">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Employee">
<xsd:element name="EmployeeID" sql:field="EmpNo" type="xsd:integer"/>
<xsd:element name="FirstName" sql:field="FirstName">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="collapse"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
.......... and on
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
根据我的研究,根元素应该包含与您在数据库中的表的关系(为了隐私起见,本示例中的名称是“The_Employees”)所以,我建立了这个关系,并且还为每个建立了 sql:field列名,因为在大多数情况下,列名与 XML 元素标记不同。但是,我如何将每个单独<Employee>
的标签与我的表相关联?此外,在验证 XML 时,它会引发此错误:
'Employee' 的内容必须匹配 (annotation?, (simpleType | complexType)?, (unique | key | keyref)*))。发现问题始于:元素。
似乎验证器认为我正在尝试将内容拆分为两个单独的表,因此需要对其进行注释,但我不是。有什么建议么?
仅供参考:这里的最终产品将是一个 VB.NET 程序,它使用 SQLXMLBulkLoad 将 XML 文件中的数据加载到新的 SQL 表中。