推論の制限事項 (ADO.NET)

各ドキュメントに含まれている XML 要素によっては、XML から DataSet のスキーマを推論するプロセスにより、異なるスキーマが生成される可能性があります。 たとえば、次のような XML ドキュメントがあるとします。

Document1:

<DocumentElement>
  <Element1>Text1</Element1>
  <Element1>Text2</Element1>
</DocumentElement>

Document2:

<DocumentElement>
  <Element1>Text1</Element1>
</DocumentElement>

推論プロセスでは、"Document1" については、"DocumentElement" という名前の DataSet と "Element1" という名前のテーブルが作成されます。これは、"Element1" が繰り返し出現する要素であるためです。

DataSet: DocumentElement

Table: Element1

Element1_Text

Text1

Text2

これに対して、"Document2" については、"NewDataSet" という名前の DataSet と "DocumentElement" という名前のテーブルが生成されます。この場合、属性も子要素も持たない "Element1" は列として推論されます。

DataSet: NewDataSet

Table: DocumentElement

Element1

Text1

これらの 2 つの XML ドキュメントは、同じスキーマを生成することを意図して記述されていますが、推論プロセスでは、各ドキュメントに含まれる要素を基にまったく異なるスキーマが生成されてしまいます。

XML ドキュメントからスキーマを生成するときに生じる可能性のあるこのような矛盾を避けるため、XML から DataSet を読み込むときは、XSD (XML スキーマ定義言語) または XDR (XML-Data Reduced) を使用して、スキーマを明示的に指定することをお勧めします。 XML スキーマを使用して DataSet スキーマを明示的に指定する方法については、「XML スキーマ (XSD) からの DataSet リレーショナル構造の派生」を参照してください。

参照

概念

XML からの DataSet の読み込み (ADO.NET)

XML の DataSet スキーマ情報の読み込み (ADO.NET)

その他の技術情報

XML からの DataSet リレーショナル構造の推論 (ADO.NET)

DataSet での XML の使用 (ADO.NET)

DataSets、DataTables、および DataViews (ADO.NET)