当从 XML 文档推断 DataSet 的架构时,ADO.NET 首先会确定哪些 XML 元素表示表。 以下 XML 结构为 DataSet 架构生成表:
具有属性的元素
具有子元素的元素
重复元素
具有属性的元素
在其中指定了属性的元素将生成推断表。 例如,考虑以下 XML:
<DocumentElement>
<Element1 attr1="value1"/>
<Element1 attr1="value2">Text1</Element1>
</DocumentElement>
推断过程将生成名为“Element1”的表。
**DataSet:**DocumentElement
**Table:**Element1
attr1 |
Element1_Text |
---|---|
value1 |
|
value2 |
Text1 |
具有子元素的元素
具有子元素的元素将生成推断表。 例如,考虑以下 XML:
<DocumentElement>
<Element1>
<ChildElement1>Text1</ChildElement1>
</Element1>
</DocumentElement>
推断过程将生成名为“Element1”的表。
**DataSet:**DocumentElement
**Table:**Element1
ChildElement1 |
---|
Text1 |
如果文档元素(即根元素)具有将被推断为列的属性或子元素,将生成推断表。 如果文档元素不具有将被推断为列的属性和子元素,则该元素将被推断为 DataSet。 例如,考虑以下 XML:
<DocumentElement>
<Element1>Text1</Element1>
<Element2>Text2</Element2>
</DocumentElement>
推断过程将生成名为“DocumentElement”的表。
**DataSet:**NewDataSet
**Table:**DocumentElement
Element1 |
Element2 |
---|---|
Text1 |
Text2 |
或者,考虑以下 XML:
<DocumentElement>
<Element1 attr1="value1" attr2="value2"/>
</DocumentElement>
推断过程将生成一个名为“DocumentElement”的 DataSet,包含一个名为“Element1”的表。
**DataSet:**DocumentElement
**Table:**Element1
attr1 |
attr2 |
---|---|
value1 |
value2 |
重复元素
重复的元素将生成单个推断表。 例如,考虑以下 XML:
<DocumentElement>
<Element1>Text1</Element1>
<Element1>Text2</Element1>
</DocumentElement>
推断过程将生成名为“Element1”的表。
**DataSet:**DocumentElement
**Table:**Element1
Element1_Text |
---|
Text1 |
Text2 |