Общие сведения о процессе определения схемы набора данныхSummary of the DataSet Schema Inference Process

Процесс вывода схемы из XML-документа вначале определяет, какие элементы будут выведены как таблицы.The inference process first determines, from the XML document, which elements will be inferred as tables. Из оставшегося XML процесс вывода схемы определяет столбцы этих таблиц.From the remaining XML, the inference process determines the columns for those tables. Для вложенных таблиц процесс вывода формирует вложенные объекты DataRelation и ForeignKeyConstraint.For nested tables, the inference process generates nested DataRelation and ForeignKeyConstraint objects.

Ниже приведен краткий обзор правил вывода.The following is a brief summary of inference rules:

  • Элементы с атрибутами выводятся как таблицы.Elements that have attributes are inferred as tables.

  • Элементы, имеющие дочерние элементы, выводятся как таблицы.Elements that have child elements are inferred as tables.

  • Повторяющиеся элементы выводятся как одна таблица.Elements that repeat are inferred as a single table.

  • Если элемент документа (корневой элемент) не имеет ни атрибутов, ни дочерних элементов, которые выводились бы как столбцы, он выводится как DataSet.If the document, or root, element has no attributes, and no child elements that would be inferred as columns, it is inferred as a DataSet. В противном случае элемент документа выводится как таблица.Otherwise, the document element is inferred as a table.

  • Атрибуты выводятся как столбцы.Attributes are inferred as columns.

  • Элементы, которые не повторяются и не имеют ни атрибутов, ни дочерних элементов, выводятся как столбцы.Elements that have no attributes or child elements, and that do not repeat, are inferred as columns.

  • Для элементов, которые выводятся в виде вложенных таблиц в других элементах, которые также выводятся в виде таблиц, между двумя таблицами создается вложенная связь DataRelation .For elements that are inferred as nested tables within other elements that are also inferred as tables, a nested DataRelation is created between the two tables. Новый первичный ключевой столбец с именем TableName_Id добавляется в обе таблицы и используется DataRelation.A new, primary key column named TableName_Id is added to both tables and used by the DataRelation. Объект ForeignKeyConstraint создается между двумя таблицами, использующими столбец TableName_Id .A ForeignKeyConstraint is created between the two tables using the TableName_Id column.

  • Для элементов, которые выводятся в виде таблиц и содержат текст, но не имеют дочерних элементов, для текста каждого элемента создается новый столбец с именем TableName_Text .For elements that are inferred as tables and that contain text but have no child elements, a new column named TableName_Text is created for the text of each of the elements. Если элемент выводится как таблица и имеет текст, но при этом имеет дочерние элементы, текст пропускается.If an element is inferred as a table and has text, but also has child elements, the text is ignored.

См. такжеSee also