2013-05-17 38 views
0

我有一個使用DataSet的WriteXml()方法生成的xml文檔。我也使用了XmlWriteMode.WriteSchema選項。我打開了生成的文件,發現生成的模式信息提供了一個子節點列表以及與它們關聯的值的後續類型。例如:如何獲取XML文檔中節點的值類型

<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> 

我正在尋找一種訪問「type」屬性(以及它的後續值)的簡單方法。例如,我想能夠顯示類似:

「studentID的類型爲int」, 「studentRank是字符串類型的」

到目前爲止,我所有的谷歌搜索上如何獲得節點類型的值已經顯示出比我想要在這裏實現的複雜得多的代碼示例。任何建議(特別是在演示如何做到這一點的教程),將不勝感激。

回答

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>