Resumo do processo de inferência de esquema DataSet
O processo de inferência primeiro determina, a partir do documento XML, quais elementos serão inferidos como tabelas. A partir do XML restante, o processo de inferência determina as colunas para essas tabelas. Para tabelas aninhadas, o processo de inferência gera aninhados DataRelation e ForeignKeyConstraint objetos.
Segue-se um breve resumo das regras de inferência:
Os elementos que têm atributos são inferidos como tabelas.
Os elementos que têm elementos filho são inferidos como tabelas.
Os elementos que se repetem são inferidos como uma única tabela.
Se o elemento document, ou raiz, não tiver atributos e nenhum elemento filho que seria inferido como colunas, ele será inferido como um DataSetarquivo . Caso contrário, o elemento document é inferido como uma tabela.
Os atributos são inferidos como colunas.
Os elementos que não têm atributos ou elementos filho e que não se repetem são inferidos como colunas.
Para elementos que são inferidos como tabelas aninhadas dentro de outros elementos que também são inferidos como tabelas, um DataRelation aninhado é criado entre as duas tabelas. Uma nova coluna de chave primária chamada TableName_Id é adicionada a ambas as tabelas e usada pelo DataRelation. Um ForeignKeyConstraint é criado entre as duas tabelas usando a coluna TableName_Id .
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. Se um elemento é inferido como uma tabela e tem texto, mas também tem elementos filho, o texto é ignorado.