従業員と情報でいっぱいの巨大な 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>
私の調査によると、ルート要素にはDB内のテーブルとの関係が含まれているはずです(プライバシーのために、この例の名前は「The_Employees」です)。そのため、その関係を作成し、それぞれのsql:fieldも作成しましたほとんどの場合、列名は XML 要素タグとは異なるためです。しかし、個々の<Employee>
タグをテーブルに関連付けるにはどうすればよいでしょうか? また、XML の検証中に、次のエラーがスローされます。
'Employee' の内容は (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)) と一致する必要があります。要素から始まる問題が見つかりました。
バリデーターは、コンテンツを 2 つの別々のテーブルに分割しようとしていると考えているようで、注釈を付ける必要がありますが、そうではありません。助言がありますか?
参考までに: ここでの最終製品は、SQLXMLBulkLoad を使用して XML ファイルから新しい SQL テーブルにデータをロードする VB.NET プログラムになります。