次の方法で共有


推論の制限事項

各ドキュメントに含まれている 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

テーブル: Element1

Element1_Text
Text1
Text2

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

DataSet: NewDataSet

テーブル: DocumentElement

Element1
Text1

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

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

関連項目