0

我有一个使用 DataSet 的 WriteXml() 方法生成的 xml 文档。我还使用了 XmlWriteMode.WriteSchema 选项。我打开了生成的文件,发现生成的架构信息提供了一个子节点列表以及与它们关联的值的后续类型。例如:

<xs:sequence>
   <xs:element name="studentID" type="xs:int" minOccurs="0" />
   <xs:element name="studentRank" type="xs:string" minOccurs="0" />
   <xs:element name="studentLastName" type="xs:string" minOccurs="0" />
   <xs:element name="studentFirstName" type="xs:string" minOccurs="0" />
   <xs:element name="homePlanet" type="xs:string" minOccurs="0" />
   <xs:element name="studentStatus" type="xs:string" minOccurs="0" />
   <xs:element name="TestColumn" type="xs:string" minOccurs="0" />
</xs:sequence>

我正在寻找一种简单的方法来访问“类型”属性(它是后续值)。例如,我希望能够显示如下内容:

“studentID 是 int 类型”,“studentRank 是 string 类型”

到目前为止,我所有关于如何获取节点值类型的谷歌搜索都出现了看起来比我在这里尝试实现的复杂得多的代码示例。任何建议(尤其是关于演示如何执行此操作的教程)将不胜感激。

4

1 回答 1

0

您可以尝试这样的事情,这意味着实际值将进入数据类型的标签内。或者,如果每个字段的数据类型不可更改,那么您可以为每个指示数据类型的元素添加自己的属性。

Variable data type for an element:
<xs:sequence>
   <xs:element name="studentID" type="xs:int" minOccurs="0">
      <xs:complexType>
         <xs:choice>
            <xs:element name="unsignedInteger" type="xs:unsignedInt"/>
            <xs:element name="signedInteger" type="xs:int"/>
            <xs:element name="float" type="xs:float"/>
            <xs:element name="string" type="xs:string"/>
         </xs:choice>
      </xs:complexType>   
   </xs:element>
</xs:sequence>

Fixed data type for an element:
<xs:sequence>
   <xs:element name="studentID" type="xs:int" minOccurs="0">
      <xs:complexType>
         <xs:attribute name="signedInteger" type="xs:string" use="required" fixed="SignedInteger"/>
      </xs:complexType>   
   </xs:element>
</xs:sequence>
于 2013-05-17T16:36:02.477 回答