从 XML 架构生成数据集关系 (XSD)

DataSet 中,可通过创建父子关系来形成两个或更多个列之间的关联。 可通过三种方式表示 XML 架构定义语言 (XSD) 架构中的 数据集 关系:

  • 指定嵌套的复杂类型。

  • 使用 msdata:Relationship 注释。

  • 指定不带 msdata:ConstraintOnly 批注的 xs:keyref

嵌套复杂类型

架构中的嵌套复杂类型定义指示元素的父子关系。 以下 XML 架构片段显示 OrderDetailOrder 元素的子元素。

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

XML 架构映射过程在 DataSet 中创建与架构中的嵌套复杂类型相对应的表。 它还会另外创建一些列,以用作所生成的表的父-子列。 请注意,这些父-子列指定关系,这与指定主键/外键约束不同。

msdata:Relationship 批注

msdata:Relationship 注释允许显式指定架构中未嵌套的元素之间的父子关系。 下面的示例演示 Relationship 元素的结构。

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

msdata:Relationship 注释的属性标识父子关系中涉及的元素,以及关系中涉及的父项子键元素和属性。 映射过程使用此信息在 数据集 中生成表,并创建这些表之间的主键/外键关系。

例如,以下架构片段指定同一级别(未嵌套)的 Order 和 OrderDetail 元素。 架构指定 msdata:Relationship 注释,该注释指定这两个元素之间的父子关系。 在这种情况下,必须使用 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>  

映射过程使用 Relationship 元素在 DataSet 中的 Order 表的 OrderNumber 列和 OrderDetail 表的 OrderNo 列之间创建父子关系。 映射过程仅指定关系;它不会自动指定这些列中值的任何约束,关系数据库中的主键/外键约束也未自动指定任何约束。

本节中

映射嵌套架构元素之间的隐式关系
描述在 XML 架构中遇到嵌套元素时在 数据集 中隐式创建的约束和关系。

为嵌套元素指定的映射关系
介绍如何在 数据集 中为 XML 架构中的嵌套元素显式设置关系。

指定不嵌套的元素之间的关系
介绍如何在未嵌套的 XML 架构元素之间在 数据集 中创建关系。

从 XML 架构派生数据集关系结构 (XSD)
描述从 XML 架构定义语言 (XSD) 架构创建的 数据集 的关系结构或架构。

将 XML 架构 (XSD) 约束映射到数据集约束
描述用于在 数据集中创建唯一和外键约束的 XML 架构元素。

另请参阅