XML から DataSet スキーマを推論するプロセスでは、各ドキュメントの XML 要素に応じて異なるスキーマが生成される場合があります。 たとえば、次の XML ドキュメントを考えてみましょう。
Document1:
<DocumentElement>
<Element1>Text1</Element1>
<Element1>Text2</Element1>
</DocumentElement>
Document2:
<DocumentElement>
<Element1>Text1</Element1>
</DocumentElement>
"Document1" の場合、"Element1" は繰り返し要素であるため、推論プロセスでは "DocumentElement" という名前の DataSet と "Element1" という名前のテーブルが生成されます。
データセット: DocumentElement
テーブル: Element1
エレメント1_テキスト |
---|
テキスト1 |
テキスト2 |
ただし、"Document2" の場合、推論プロセスでは "NewDataSet" という名前の DataSet と "DocumentElement" という名前のテーブルが生成されます。"Element1" は、属性がなく、子要素もないため、列として推論されます。
データセット: NewDataSet
テーブル: DocumentElement
Element1 |
---|
テキスト1 |
これら 2 つの XML ドキュメントは同じスキーマを生成することを目的としていたかもしれませんが、推論プロセスでは、各ドキュメントに含まれる要素に基づいて非常に異なる結果が生成されます。
XML ドキュメントからスキーマを生成するときに発生する可能性のある不一致を回避するには、XML から DataSet を読み込むときに、XML スキーマ定義言語 (XSD) または XML-Data Reduced (XDR) を使用してスキーマを明示的に指定することをお勧めします。 XML スキーマを使用して DataSet スキーマを明示的に指定する方法の詳細については、「XML スキーマ からの DataSet リレーショナル構造の派生 (XSD)」を参照してください。