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>

「type」属性(およびその後の値)にアクセスする簡単な方法を探しています。たとえば、次のようなものを表示できるようにしたいと思います。

「studentID は int 型です」、「studentRank は string 型です」

これまでのところ、ノードの値の型を取得する方法に関するすべての Google 検索で、ここで達成しようとしているものよりもはるかに複雑に見えるコード サンプルが見つかりました。任意の提案 (特に、これを行う方法を示すチュートリアル) をいただければ幸いです。

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 に答える