次の方法で共有


XML スキーマ (XSD) からの DataSet リレーショナル構造の派生

このセクションでは、XML スキーマ定義言語 (XSD) スキーマ ドキュメントから DataSet のリレーショナル スキーマを構築する方法の概要について説明します。 一般に、スキーマ要素 complexType 子要素ごとに、 DataSetでテーブルが生成されます。 テーブル構造は、複合型の定義によって決まります。 テーブルは、スキーマの最上位要素の DataSet に作成されます。 ただし、テーブルは、complexType要素が別のcomplexType要素内に入れ子になっている場合にのみ、最上位のcomplexType要素に対して作成されます。その場合、入れ子になったcomplexType要素はDataTable内のDataSetにマップされます。

XSD の詳細については、「World Wide Web Consortium (W3C) XML Schema Part 0: Primer Recommendation」、 XML Schema Part 1: Structures Recommendation、および XML Schema Part 2: Datatypes Recommendation を参照してください。

次の例では、customersMyDataSet 要素である 要素の子要素である XML スキーマを示します。

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

前の例では、 customers 要素は複合型の要素です。 したがって、複合型定義が解析され、マッピング プロセスによって次のテーブルが作成されます。

Customers (CustomerID, CompanyName, Phone)  

テーブル内の各列のデータ型は、指定された対応する要素または属性の XML スキーマ型から派生します。

customers要素が整数などの単純な XML スキーマ データ型の場合、テーブルは生成されません。 テーブルは、複合型である最上位の要素に対してのみ作成されます。

次の XML スキーマでは、 Schema 要素には、 InStateCustomersOutOfStateCustomersの 2 つの要素の子があります。

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

InStateCustomersOutOfStateCustomers子要素はどちらも複合型要素 (customerType) です。 そのため、マッピング プロセスでは、 DataSetで次の 2 つの同一テーブルが生成されます。

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

このセクションにて

XML スキーマ (XSD) 制約を DataSet 制約にマッピングする
DataSetで一意キー制約と外部キー制約を作成するために使用される XML スキーマ要素について説明します。

XML スキーマ (XSD) からの DataSet リレーションの生成
DataSet内のテーブル列間のリレーションシップを作成するために使用される XML スキーマ要素について説明します。

XML スキーマの制約とリレーションシップ
XML スキーマ要素を使用して DataSetに制約を作成するときに、リレーションシップを暗黙的に作成する方法について説明します。

DataSet での XML の使用
リレーショナル構造とデータを XML データとして DataSet に読み込んで保持する方法について説明します。

こちらも参照ください