Compartir a través de


Especificar relaciones entre elementos sin anidamiento

Cuando los elementos no están anidados, no se crean relaciones implícitas. Sin embargo, puede especificar explícitamente las relaciones entre los elementos que no están anidados mediante la anotación msdata:Relationship .

En el ejemplo siguiente se muestra un esquema XML en el que se especifica la anotación msdata:Relationship entre los elementos Order y OrderDetail, que no están anidados. La anotación msdata:Relationship se especifica como el elemento secundario del Schema elemento .

<xs:schema id="MyDataSet" xmlns=""
             xmlns:xs="http://www.w3.org/2001/XMLSchema"
             xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
 <xs:element name="MyDataSet" msdata:IsDataSet="true">
  <xs:complexType>
    <xs:choice maxOccurs="unbounded">
      <xs:element name="OrderDetail">
       <xs:complexType>
         <xs:sequence>
           <xs:element name="OrderNo" type="xs:string" />
           <xs:element name="ItemNo" type="xs:string" />
         </xs:sequence>
       </xs:complexType>
      </xs:element>
      <xs:element name="Order">
       <xs:complexType>
         <xs:sequence>
           <xs:element name="OrderNumber" type="xs:string" />
           <xs:element name="EmpNumber" type="xs:string" />
         </xs:sequence>
       </xs:complexType>
      </xs:element>
    </xs:choice>
  </xs:complexType>

  </xs:element>
   <xs:annotation>
     <xs:appinfo>
       <msdata:Relationship name="OrdOrderDetailRelation"
                            msdata:parent="Order"
                            msdata:child="OrderDetail"
                            msdata:parentkey="OrderNumber"
                            msdata:childkey="OrderNo"/>
     </xs:appinfo>
  </xs:annotation>
</xs:schema>

El proceso de asignación de esquemas del lenguaje de definición de esquemas XML (XSD) crea un DataSet con las tablas Order y OrderDetail y especifica una relación entre estas dos tablas, como se muestra a continuación.

RelationName: OrdOrderDetailRelation
ParentTable: Order
ParentColumns: OrderNumber
ChildTable: OrderDetail
ChildColumns: OrderNo
Nested: False

Consulte también