推論プロセスでは、まず XML ドキュメントから、どの要素がテーブルとして推論されるかが決定されます。 残りの XML から、推論プロセスによってそれらのテーブルの列が決定されます。 入れ子になったテーブルの場合、推論プロセスでは、入れ子になった DataRelation と ForeignKeyConstraint オブジェクトが生成されます。
推論規則の簡単な概要を次に示します。
属性を持つ要素はテーブルとして推論されます。
子要素を持つ要素は、テーブルとして推論されます。
繰り返される要素は、1 つのテーブルとして推論されます。
ドキュメントまたはルート要素に属性がなく、列として推論される子要素がない場合は、 DataSetとして推論されます。 それ以外の場合、ドキュメント要素はテーブルとして推論されます。
属性は列として推論されます。
属性または子要素がなく、繰り返されない要素は、列として推論されます。
テーブルとしても推論される他の要素内で入れ子になったテーブルとして推論される要素の場合、2 つのテーブルの間に入れ子になった DataRelation が作成されます。 TableName_Idという名前 の 新しい主キー列が両方のテーブルに追加され、 DataRelation によって使用されます。 TableName_Id列を使用して、2 つのテーブル間に ForeignKeyConstraint が作成されます。
テーブルとして推論され、テキストを含むが子要素がない要素の場合は、各要素のテキスト に対して TableName_Text という名前の新しい列が作成されます。 要素がテーブルとして推論され、テキストがあり、子要素も含まれている場合、テキストは無視されます。