Sdílet prostřednictvím


Generování relací datové sady ze schématu XML (XSD)

V objektu DataSetvytvoříte přidružení mezi dvěma nebo více sloupci vytvořením relace nadřazeného-podřízeného objektu. Existují tři způsoby, jak znázorňovat vztah datové sady ve schématu XSD (XML Schema Definition Language):

  • Zadejte vnořené komplexní typy.

  • Použijte poznámku msdata:Relationship .

  • Zadejte hodnotu xs:keyref bez poznámky msdata:ConstraintOnly.

Vnořené komplexní typy

Vnořené definice komplexního typu ve schématu označují vztahy nadřazenosti a podřízenosti prvků. Následující fragment schématu XML ukazuje, že OrderDetail je podřízený prvek Order elementu.

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

Proces mapování schématu XML vytvoří tabulky v datové sadě , které odpovídají vnořeným komplexním typům ve schématu. Vytvoří také další sloupce, které se použijí jako nadřazené podřízené-sloupce pro vygenerované tabulky. Všimněte si, že tyto nadřazené podřízené-sloupce určují relace, které nejsou stejné jako určení omezení primárního klíče nebo cizího klíče.

msdata:Relationship Annotation

Poznámka msdata:Relationship umožňuje explicitně zadat vztahy nadřazené-podřízené mezi prvky ve schématu, které nejsou vnořené. Následující příklad ukazuje strukturu relationship elementu.

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

Atributy msdata:Relationship anotace identifikují prvky, které jsou součástí vztahu nadřazený-podřízený, a také elementy parentkey a childkey a atributy zahrnuté v relaci. Proces mapování používá tyto informace ke generování tabulek v sadě dat a k vytvoření relace primárního klíče nebo cizího klíče mezi těmito tabulkami.

Například následující fragment schématu určuje elementy Order a OrderDetail na stejné úrovni (není vnořené). Schéma určuje poznámku msdata:Relationship , která určuje vztah nadřazený-podřízený mezi těmito dvěma prvky. V tomto případě musí být zadán explicitní vztah pomocí poznámky 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>  

Proces mapování používá element Relationship k vytvoření relace parent-child mezi sloupce OrderNumber v tabulce Order a OrderNo sloupec v Tabulce OrderDetail v DataSet. Proces mapování určuje pouze vztah; nezadá automaticky žádná omezení hodnot v těchto sloupcích, stejně jako omezení primárního klíče nebo cizího klíče v relačních databázích.

V tomto oddílu

Mapování implicitních relací mezi elementy ve vnořeném schématu
Popisuje omezení a vztahy, které jsou implicitně vytvořeny v datové sadě při vnořené elementy jsou zjištěny ve schématu XML.

Mapování relací zadaných pro vnořené elementy
Popisuje, jak explicitně nastavit relace v datové sadě pro vnořené elementy ve schématu XML.

Určení relací mezi elementy bez vnoření
Popisuje, jak vytvořit relace v datové sadě mezi elementy schématu XML, které nejsou vnořené.

Odvozování relační struktury datové sady ze schématu XML (XSD)
Popisuje relační strukturu nebo schéma datové sady vytvořené ze schématu XSD (XML Schema Definition Language).

Mapování omezení schématu XML (XSD) k omezením datové sady
Popisuje elementy schématu XML používané k vytvoření omezení jedinečného a cizího klíče v datové sadě.

Viz také