本部分概述如何从 XML 架构定义语言 (XSD) 架构文档生成关系架构 DataSet
。 通常,对于架构元素的每个complexType
子元素,会在DataSet
中生成一个表。 表结构由复杂类型的定义确定。 表是在 DataSet
中为架构中的顶级元素而创建的。 但是,仅当complexType
元素嵌套在另一个complexType
元素内时,才会为顶级complexType
元素创建一个表。在这种情况下,嵌套的complexType
元素将映射到DataTable
中的DataSet
元素。
有关 XSD 的详细信息,请参阅万维网联盟 (W3C) XML 架构第 0 部分:入门建议、 XML 架构第 1 部分:结构建议和 XML 架构第 2 部分:数据类型建议。
以下示例演示 XML 架构,其中 customers
元素的 MyDataSet
子元素是 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>
在前面的示例中,该元素 customers
是一个复杂类型元素。 因此,将对复杂类型定义进行分析,而映射过程会创建下表。
Customers (CustomerID, CompanyName, Phone)
表中每个列的数据类型派生自指定的相应元素或属性的 XML 架构类型。
注释
如果元素 customers
是简单的 XML 架构数据类型(如 整数),则不会生成表。 仅为复杂类型的顶级元素创建表。
在以下 XML 架构中, Schema 元素具有两个元素子元素, InStateCustomers
以及 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
和OutOfStateCustomers
子元素都是复杂类型元素(customerType
)。 因此,映射过程在 DataSet
中生成以下两个相同的表。
InStateCustomers (CustomerID, CompanyName, Phone)
OutOfStateCustomers (CustomerID, CompanyName, Phone)
本节中
将 XML 架构 (XSD) 约束映射到数据集约束
描述用于在 DataSet
中创建唯一约束和外键约束的 XML 架构元素。
从 XML 架构生成数据集关系 (XSD)
描述用于在表中创建表列之间的关系的 DataSet
XML 架构元素。
XML 架构约束和关系
描述当使用 XML 架构元素在 DataSet
中创建约束时如何隐式地创建关系。
相关部分
在数据集中使用 XML
介绍如何将关系结构和数据在 DataSet
中以 XML 数据的形式加载和持久化。