Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Схема определения схемы XML (XSD) может содержать сложные типы, вложенные друг в друга. В этом случае процесс сопоставления применяет сопоставление по умолчанию и создает следующее в DataSet:
Одна таблица для каждого из сложных типов данных (родительского и дочернего).
Если в родительском элементе нет уникального ограничения, один дополнительный столбец первичного ключа для определения таблицы с именем TableName_Id где TableName — это имя родительской таблицы.
Ограничение первичного ключа родительской таблицы, определяющее дополнительный столбец в качестве первичного ключа (задав свойству IsPrimaryKeyзначение True). Ограничение называется Ограничение №#, где # – это 1, 2, 3 и т. д. Например, имя по умолчанию для первого ограничения — Constraint1.
Ограничение внешнего ключа дочерней таблицы, определяющее дополнительный столбец как внешний ключ, ссылающийся на первичный ключ родительской таблицы. Ограничение называется ParentTable_ChildTable , где ParentTable — это имя родительской таблицы и ChildTable — имя дочерней таблицы.
Отношение данных между родительскими и дочерними таблицами.
В следующем примере показана схема, в которой OrderDetail является дочерним элементом Order.
<xs:schema id="MyDataSet" 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="Order">
<xs:complexType>
<xs:sequence>
<xs:element name="OrderNumber" type="xs:string" />
<xs:element name="EmpNumber" type="xs:string" />
<xs:element name="OrderDetail">
<xs:complexType>
<xs:sequence>
<xs:element name="OrderNo" type="xs:string" />
<xs:element name="ItemNo" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Процесс сопоставления схемы XML создает следующий код в наборе данных:
Таблица Order и Таблица OrderDetail.
Order(OrderNumber, EmpNumber, Order_Id) OrderDetail(OrderNo, ItemNo, Order_Id)
Уникальное ограничение таблицы Order . Обратите внимание, что для свойства IsPrimaryKey задано значение True.
ConstraintName: Constraint1 Type: UniqueConstraint Table: Order Columns: Order_Id IsPrimaryKey: True
Ограничение внешнего ключа для таблицы OrderDetail .
ConstraintName: Order_OrderDetail Type: ForeignKeyConstraint Table: OrderDetail Columns: Order_Id RelatedTable: Order RelatedColumns: Order_Id
Связь между таблицами Order и OrderDetail . Вложенное свойство этой связи задано как True, потому что элементы Order и OrderDetail вложены в схему.
ParentTable: Order ParentColumns: Order_Id ChildTable: OrderDetail ChildColumns: Order_Id ParentKeyConstraint: Constraint1 ChildKeyConstraint: Order_OrderDetail RelationName: Order_OrderDetail Nested: True