- - PR -
xsdのattributeタグ内にある複数タグのvalueを取得する方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-02-26 10:17
現在、WindowsXP、.NetFramework2.0、VB.NETにてxsdから特定データを取得する処理を書いているところなのですが、どうしても取得する方法が見つからない部分があります。
------------------------↓該当xsdの部分--------------------------- <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:mstns="http://tempuri.org/XMLSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified"> <xs:element name="Sample"> <xs:complexType> <xs:sequence> <xs:element name="Sample" maxOccurs="32"> <xs:complexType> <xs:attribute name="SampleNumber" use="required"> <xs:simpleType> <xs:restriction base="xs:int"> <xs:maxInclusive value="32" /> <xs:minInclusive value="1" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> ------------------------↑該当xsdの部分--------------------------- xsdのスキーマをDataSetオブジェクトに変換し、そのDataSetの中からDataTable("Sample")を取得し、"SampleNumber"カラムから (maxInclusive, 32)、(minInclusive, 1)のペアを取得しようとしたのですが、どうしてもSamleNumberカラムの属性しか取得できません。 elementタグ内の属性は簡単に取得できたのですが、attributeタグ内では何か別の方法があるのでしょうか? ------------------------↓取得しようとしたVB.NETソース--------------------------- Dim sampleset As New DataSet sampleset.ReadXmlSchema("sample.xsd") ' ← sample.xsdがxsdファイル名です Dim sampletable as DataTable = sampleset.Tables("Sample") sampletable.Columns("SampleNumber") ' ← SumpleNumberカラムは取れますが、その中のタグの属性の取得方法がわかりません。 ------------------------↑取得しようとしたVB.NETソース--------------------------- |
|
投稿日時: 2008-02-26 12:33
多分無視されています。
xsd.exe を使って xsd から DataSet を書き出してみてください。 |
|
投稿日時: 2008-02-26 12:50
>Hongliangさん
レスありがとうございます。 早速xsd.exeで大元のxsdを変換したところ、確かにSampleクラス内のプロパティとして何も記述されておらず、結果的におっしゃる通り無視されている(見えていない)ということがわかりました。 この件はお客様に確認を取る必要がありますが、念のために、普通、こういうxsdファイルというものは存在しないものなのでしょうか? VS2005上でxsdを開くとエラーも無くツリー上にGUIで見ることが出来るため、xsdファイルフォーマットとしては正常なように思えます。 |
|
投稿日時: 2008-02-26 13:18
XML Schema としては問題ありません。
ただ、.NET 側が対応していないだけですね。http://support.microsoft.com/kb/811107/ja KB もあがっています。 データを XML に置くならその読み込み時に Validation も可能ですが……。 |
|
投稿日時: 2008-02-26 13:27
>Hongliangさん
またまたレスありがとうございます。 なんとなんと!! .NET側が対応していないとは!! Validationで解決できるか調査してみます。 |
1