Derivazione della struttura relazionale di dataset da XML Schema (XSD)

Questa sezione fornisce una panoramica della compilazione dello schema relazionale di un tipo DataSet da un documento basato sullo schema XSD (XML Schema Definition Language). In generale, per ogni complexType elemento figlio di un elemento dello schema, viene generata una tabella in DataSet. La struttura della tabella è determinata dalla definizione del tipo complesso. Le tabelle vengono create in DataSet per gli elementi di primo livello nello schema. Tuttavia, viene creata una tabella solo per un elemento di primo livello complexType quando l'elemento complexType viene annidato all'interno di un altro complexType elemento, nel qual caso viene eseguito il mapping dell'elemento annidato complexType a un DataTable oggetto all'interno di DataSet.

Per altre informazioni sull'XSD, vedere World Wide Web Consortium (W3C) XML Schema Part 0: Primer Recommendation, the XML Schema Part 1: Structures Recommendation e the XML Schema Part 2: Datatypes Recommendation.

Nell'esempio seguente viene illustrato un XML Schema in cui customers è l'elemento figlio dell'elemento MyDataSet , che è un elemento DataSet .

<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>  

L'elemento customers nell'esempio precedente è un elemento di tipo complesso. La definizione di tipo complesso viene quindi analizzata e la tabella seguente viene creata dal processo di mapping.

Customers (CustomerID, CompanyName, Phone)  

Il tipo di dati relativo a ogni colonna della tabella viene derivato dal tipo di XML Schema relativo al corrispondente elemento o attributo specificato.

Nota

Se l'elemento customers è di un tipo di dati XML Schema semplice, ad esempio integer, non viene generata alcuna tabella. Le tabelle vengono create solo per gli elementi di livello principale di tipo complesso.

Nell'XML Schema seguente, l'elemento Schema ha due elementi figlio e InStateCustomersOutOfStateCustomers.

<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>  

Entrambi gli elementi figlio InStateCustomers e OutOfStateCustomers sono elementi di tipo complesso (customerType). Pertanto, il processo di mapping genera le due tabelle identiche seguenti in DataSet.

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

Contenuto della sezione

Mapping tra vincoli XML Schema (XSD) e vincoli di dataset
Vengono descritti gli elementi XML Schema utilizzati per creare vincoli di chiave univoca ed esterna in un oggetto DataSet.

Generazione di relazioni tra dataset da XML Schema (XSD)
Vengono descritti gli elementi xml Schema utilizzati per creare relazioni tra le colonne della tabella in un oggetto DataSet.

Vincoli e relazioni di XML Schema
Descrive in che modo le relazioni vengono create in modo implicito quando si usano elementi XML Schema per creare vincoli in un oggetto DataSet.

Utilizzo di XML in un dataset
Viene descritto come caricare e rendere persistenti la struttura relazionale e i dati in un oggetto DataSet come dati XML.

Vedi anche