从 XML 文档推断架构 DataSet 时,ADO.NET 首先确定哪些 XML 元素表示表。 以下 XML 结构会生成模式的 DataSet 表:
具有属性的元素
具有子元素的元素
重复元素
具有特性的元素
在元素中指定属性会导致推断表。 例如,请考虑以下 XML:
<DocumentElement>
<Element1 attr1="value1"/>
<Element1 attr1="value2">Text1</Element1>
</DocumentElement>
推理过程生成名为“Element1”的表。
数据集: DocumentElement
表格: 元素1
| attr1 | 元素1_文本 |
|---|---|
| value1 | |
| value2 | 文本一 |
具有子元素的元素
具有子元素的元素将生成推断表。 例如,请考虑以下 XML:
<DocumentElement>
<Element1>
<ChildElement1>Text1</ChildElement1>
</Element1>
</DocumentElement>
推理过程生成名为“Element1”的表。
数据集: DocumentElement
表格: 元素1
| ChildElement1 |
|---|
| 文本一 |
如果文档元素(即根元素)具有将被推断为列的属性或子元素,将生成推断表。 如果文档元素没有属性,并且没有将推断为列的子元素,则会将元素推断为 数据集。 例如,请考虑以下 XML:
<DocumentElement>
<Element1>Text1</Element1>
<Element2>Text2</Element2>
</DocumentElement>
推理过程生成名为“DocumentElement”的表。
数据集: NewDataSet
表格: DocumentElement
| Element1 | Element2 |
|---|---|
| 文本一 | Text2 |
或者,请考虑以下 XML:
<DocumentElement>
<Element1 attr1="value1" attr2="value2"/>
</DocumentElement>
推理过程生成一个名为 DataSet “DocumentElement”,其中包含名为“Element1”的表。
数据集: DocumentElement
表格: 元素1
| attr1 | attr2 |
|---|---|
| value1 | value2 |
重复元素
重复出现的元素会形成一个单独的推断表。 例如,请考虑以下 XML:
<DocumentElement>
<Element1>Text1</Element1>
<Element1>Text2</Element1>
</DocumentElement>
推理过程生成名为“Element1”的表。
数据集: DocumentElement
表格: 元素1
| 元素1_文本 |
|---|
| 文本一 |
| Text2 |