SQL Server 2008 への XML Bulk Load (SQLXML 4.0) を使用しています。これは問題なく動作します。XSD を使用して、SQL テーブルで elementA と elementB の間の関係を作成する必要があります。elementA の id 属性は一意であるため、これを XSD の elementB に追加 (参照) するにはどうすればよいですか?
XML
<?xml version="1.0" encoding="utf-8"?>
<root>
<xml>
<elementA id="844356290610152557726" name="some name"/>
<elementB d="some text"/>
<elementB d="more text "/>
<elementB d="random text "/>
<elementB d="more text"/>
</xml>
<xml>
<elementA id="844356300610162859021" name="some name"/>
<elementB d="random text"/>
</xml>
<xml>
<elementA id="844356300610163107380" name="some name"/>
<elementB d="any text"/>
</xml>
<xml>
<elementA id="844356300610161037523" name="some name"/>
<elementB d="xyz text "/>
</xml>
<xml>
<elementA id="844356290610103116878" name="some name"/>
<elementB d="some more text"/>
<elementB d="text"/>
<elementB d="random text"/>
<elementB d="any text"/>
</xml>
</root>
スキーマ
<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="xml">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="elementA">
<xs:complexType>
<xs:attribute name="id" type="xs:integer" use="optional" />
<xs:attribute name="name" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="elementB">
<xs:complexType>
<xs:attribute name="d" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>