Resumo do processo de inferência de esquema de DataSetSummary of the DataSet Schema Inference Process

O processo de inferência determina primeiro, a partir do documento XML, quais elementos serão inferidos como tabelas.The inference process first determines, from the XML document, which elements will be inferred as tables. Do XML restante, o processo de inferência determina as colunas para essas tabelas.From the remaining XML, the inference process determines the columns for those tables. Para tabelas aninhadas, o processo de inferência gera objetos aninhados DataRelation e ForeignKeyConstraint .For nested tables, the inference process generates nested DataRelation and ForeignKeyConstraint objects.

Veja a seguir um breve resumo das regras de inferência:The following is a brief summary of inference rules:

  • Elementos que têm atributos são inferidos como tabelas.Elements that have attributes are inferred as tables.

  • Elementos que têm elementos filho são inferidos como tabelas.Elements that have child elements are inferred as tables.

  • Elementos que se repetem são inferidos como uma única tabela.Elements that repeat are inferred as a single table.

  • Se o documento, ou raiz, o elemento não tiver atributos e nenhum elemento filho que fosse inferido como colunas, ele será inferido como um 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. Caso contrário, o elemento Document é inferido como uma tabela.Otherwise, the document element is inferred as a table.

  • Os atributos são inferidos como colunas.Attributes are inferred as columns.

  • Elementos que não têm atributos ou elementos filho, e que não se repetem, são inferidos como colunas.Elements that have no attributes or child elements, and that do not repeat, are inferred as columns.

  • Para elementos que são inferidos como tabelas aninhadas dentro de outros elementos que também são inferidos como tabelas, uma DataRelation aninhada é criada entre as duas tabelas.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. Uma nova coluna de chave primária chamada TableName_Id é adicionada às duas tabelas e usada pela DataRelation.A new, primary key column named TableName_Id is added to both tables and used by the DataRelation. Um ForeignKeyConstraint é criado entre as duas tabelas usando a coluna TableName_Id .A ForeignKeyConstraint is created between the two tables using the TableName_Id column.

  • Para elementos que são inferidos como tabelas e que contêm texto, mas não têm elementos filho, uma nova coluna chamada TableName_Text é criada para o texto de cada um dos elementos.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. Se um elemento for inferido como uma tabela e tiver texto, mas também tiver elementos filho, o texto será ignorado.If an element is inferred as a table and has text, but also has child elements, the text is ignored.

Consulte tambémSee also