Sdílet prostřednictvím


Odvozování relační struktury datové sady ze schématu XML (XSD)

Tato část obsahuje přehled o tom, jak je relační schéma objektu DataSet sestaveno z dokumentu schématu jazyka XSD (XML Schema Definition Language). Obecně platí, že pro každý complexType podřízený prvek prvku schématu se vygeneruje tabulka v objektu DataSet. Struktura tabulky je určena definicí komplexního typu. Tabulky se vytvářejí v DataSet elementech nejvyšší úrovně ve schématu. Tabulka je však vytvořena pouze pro prvek nejvyšší úrovně complexType , pokud complexType je prvek vnořený uvnitř jiného complexType elementu, v takovém případě je vnořený complexType prvek mapován na DataTable uvnitř DataSet.

Další informace o XSD naleznete v tématu W3C (World Wide Web Consortium) SCHÉMATU 0: Základní doporučení, SCHÉMA XML část 1: Doporučení struktury a schéma XML část 2: Doporučení datových typů.

Následující příklad ukazuje schéma XML, kde customers je podřízený prvek MyDataSet elementu, což je DataSet element.

<xs:schema id="SomeID"
            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="customers" >
           <xs:complexType >  
             <xs:sequence>  
               <xs:element name="CustomerID" type="xs:integer"
                            minOccurs="0" />  
               <xs:element name="CompanyName" type="xs:string"
                            minOccurs="0" />  
               <xs:element name="Phone" type="xs:string" />  
             </xs:sequence>  
           </xs:complexType>  
          </xs:element>  
       </xs:choice>  
     </xs:complexType>  
   </xs:element>  
 </xs:schema>  

V předchozím příkladu je element customers komplexním typem elementu. Proto je definice komplexního typu analyzována a proces mapování vytvoří následující tabulku.

Customers (CustomerID, CompanyName, Phone)  

Datový typ každého sloupce v tabulce je odvozen od typu schématu XML odpovídajícího prvku nebo atributu zadaného.

Poznámka:

Pokud je prvek customers jednoduchého datového typu schématu XML, například celé číslo, nevygeneruje se žádná tabulka. Tabulky jsou vytvořeny pouze pro prvky nejvyšší úrovně, které jsou komplexní typy.

V následujícím schématu XML má element Schema dvě podřízené elementy InStateCustomers a OutOfStateCustomers.

<xs:schema id="SomeID"
            xmlns=""
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">  
   <xs:element name="InStateCustomers" type="customerType" />  
   <xs:element name="OutOfStateCustomers" type="customerType" />  
    <xs:complexType name="customerType" >  
  
     </xs:complexType>  
  
   <xs:element name="MyDataSet" msdata:IsDataSet="true">  
     <xs:complexType>  
       <xs:choice maxOccurs="unbounded">  
         <xs:element ref="customers" />  
       </xs:choice>  
     </xs:complexType>  
   </xs:element>  
 </xs:schema>  

InStateCustomers Oba i podřízené OutOfStateCustomers prvky jsou komplexní prvky typu (customerType). Proto proces mapování vygeneruje následující dvě identické tabulky v souboru DataSet.

InStateCustomers (CustomerID, CompanyName, Phone)  
OutOfStateCustomers (CustomerID, CompanyName, Phone)  

V tomto oddílu

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

Generování relací datové sady ze schématu XML (XSD)
Popisuje elementy schématu XML používané k vytvoření relací mezi sloupci tabulky v objektu DataSet.

Omezení schématu XML a relací
Popisuje, jak se relace vytvářejí implicitně při použití elementů schématu XML k vytvoření omezení v objektu DataSet.

Použití XML v datové sadě
Popisuje, jak načíst a zachovat relační strukturu a data jako DataSet data XML.

Viz také