3

I’m using XML Bulk Load (SQLXML 4.0) into SQL Server 2008. This works ok. I need to create a relationship between elementA and elementB in the SQL tables using XSD. Since the id attribute in elementA is unique, how do I add (reference?) this to elementB in the XSD?

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>

Schema

<?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>
norm
  • 319
  • 2
  • 8
  • Have a look into `xs:key` and `xs:keyref`, as e.g. discussed in [this question](http://stackoverflow.com/questions/2015059/xsd-key-keyref-beginner-question). – O. R. Mapper Sep 12 '12 at 11:28

0 Answers0