Podsumowanie procesu wnioskowania schematu elementu DataSet
Proces wnioskowania najpierw określa z dokumentu XML, które elementy zostaną wywnioskowane jako tabele. Z pozostałego kodu XML proces wnioskowania określa kolumny dla tych tabel. W przypadku tabel zagnieżdżonych proces wnioskowania generuje zagnieżdżone DataRelation obiekty i ForeignKeyConstraint .
Poniżej przedstawiono krótkie podsumowanie reguł wnioskowania:
Elementy, które mają atrybuty, są wnioskowane jako tabele.
Elementy, które mają elementy podrzędne, są wnioskowane jako tabele.
Elementy powtarzane są wnioskowane jako pojedyncza tabela.
Jeśli dokument lub element główny nie ma atrybutów i nie ma elementów podrzędnych, które zostaną wywnioskowane jako kolumny, zostanie on wywnioskowany jako DataSet. W przeciwnym razie element dokumentu jest wnioskowany jako tabela.
Atrybuty są wnioskowane jako kolumny.
Elementy, które nie mają atrybutów ani elementów podrzędnych i które nie są powtarzane, są wnioskowane jako kolumny.
W przypadku elementów, które są wnioskowane jako tabele zagnieżdżone w innych elementach, które są również wnioskowane jako tabele, między dwiema tabelami jest tworzona zagnieżdżona funkcja DataRelation . Nowa kolumna klucza podstawowego o nazwie TableName_Id jest dodawana zarówno do tabel, jak i używana przez funkcję DataRelation. Element ForeignKeyConstraint jest tworzony między dwiema tabelami przy użyciu kolumny TableName_Id .
W przypadku elementów, które są wnioskowane jako tabele i zawierające tekst, ale nie mają elementów podrzędnych, zostanie utworzona nowa kolumna o nazwie TableName_Text dla tekstu każdego z elementów. Jeśli element jest wywnioskowany jako tabela i zawiera tekst, ale ma również elementy podrzędne, tekst jest ignorowany.