Delen via


Gegevenssetrelaties genereren van XML-schema (XSD)

In een DataSet, vormt u een koppeling tussen twee of meer kolommen door een ouder-kindrelatie te creëren. Er zijn drie manieren om een DataSet-relatie binnen een XSD-schema (XML Schema Definition Language) weer te geven:

  • Geneste complexe typen opgeven.

  • Gebruik de annotatie msdata:Relationship .

  • Geef een xs:keyref op zonder de annotatie msdata:ConstraintOnly .

Ingebedde complexe typen

Geneste complexe typedefinities in een schema geven de relaties tussen bovenliggende en onderliggende elementen aan. In het volgende XML-schemafragment ziet u dat OrderDetail een onderliggend element van het element Order is.

<xs:element name="Order">  
  <xs:complexType>  
     <xs:sequence>
       <xs:element name="OrderDetail" />  
           <xs:complexType>
           </xs:complexType>  
     </xs:sequence>  
  </xs:complexType>  
</xs:element>  

Met het toewijzingsproces voor XML-schema's worden tabellen gemaakt in de DataSet die overeenkomen met de geneste complexe typen in het schema. Er worden ook extra kolommen gemaakt die worden gebruikt als ouder-kind kolommen voor de gegenereerde tabellen. Houd er rekening mee dat deze ouder-kind kolommen relaties opgeven, wat niet hetzelfde is als het opgeven van beperkingen van primaire sleutels/vreemde sleutels.

msdata:Relatieaantekening

Met de annotatie msdata:Relationship kunt u expliciet bovenliggende/onderliggende relaties opgeven tussen elementen in het schema die niet zijn genest. In het volgende voorbeeld ziet u de structuur van het element Relatie .

<msdata:Relationship name="CustOrderRelationship"
msdata:parent=""
msdata:child=""
msdata:parentkey=""
msdata:childkey="" />  

De kenmerken van de annotatie msdata:Relationship identificeren de elementen die betrokken zijn bij de ouder-kindrelatie, evenals de elementen en kenmerken van de ouder sleutel en kind sleutel die bij de relatie horen. Het toewijzingsproces gebruikt deze informatie voor het genereren van tabellen in de DataSet en het creëren van de primaire sleutel/foreign key-relatie tussen deze tabellen.

In het volgende schemafragment worden bijvoorbeeld Order - en OrderDetail-elementen op hetzelfde niveau opgegeven (niet genest). Het schema specificeert een msdata:Relationship annotatie, die de ouder-kindrelatie tussen deze twee elementen aangeeft. In dit geval moet een expliciete relatie worden opgegeven met behulp van de annotatie msdata:Relationship .

 <xs:element name="MyDataSet" msdata:IsDataSet="true">  
  <xs:complexType>  
    <xs:choice maxOccurs="unbounded">  
        <xs:element name="OrderDetail">  
          <xs:complexType>  
  
          </xs:complexType>  
       </xs:element>  
       <xs:element name="Order">  
          <xs:complexType>  
  
          </xs:complexType>  
       </xs:element>  
    </xs:choice>  
  </xs:complexType>  
</xs:element>  
   <xs:annotation>  
     <xs:appinfo>  
       <msdata:Relationship name="OrdOrdDetailRelation"  
          msdata:parent="Order"  
          msdata:child="OrderDetail"
          msdata:parentkey="OrderNumber"  
          msdata:childkey="OrderNo"/>  
     </xs:appinfo>  
  </xs:annotation>  

Het toewijzingsproces maakt gebruik van het element Relatie om een ouder-kind relatie te creëren tussen de kolom OrderNo in de tabel Order en de kolom OrderNo in de tabel OrderDetail binnen de DataSet. Het toewijzingsproces geeft alleen de relatie op; Er worden niet automatisch beperkingen opgegeven voor de waarden in deze kolommen, net zoals de beperkingen van de primaire sleutel/refererende sleutel in relationele databases.

In deze sectie

Impliciete relaties tussen geneste schema-elementen in kaart brengen
Hierin worden de beperkingen en relaties beschreven die impliciet worden gemaakt in een DataSet wanneer geneste elementen worden aangetroffen in het XML-schema.

Kaartrelaties opgegeven voor geneste elementen
Hierin wordt beschreven hoe u expliciet relaties instelt in een DataSet voor geneste elementen in XML-schema.

Relaties opgeven tussen elementen zonder nesting
Hierin wordt beschreven hoe u relaties maakt in een DataSet tussen XML-schema-elementen die niet zijn genest.

Relationele structuur van DataSet afleiden uit XML-schema (XSD)
Beschrijft de relationele structuur of het schema van een DataSet die is gemaakt op basis van het XSD-schema (XML Schema Definition Language).

XML-schema (XSD)-beperkingen mappen naar beperkingen van dataset
Beschrijft de XML-schema-elementen die worden gebruikt voor het maken van unieke en vreemde sleutelbeperkingen in een DataSet.

Zie ook