2012-01-28 14 views
1

誰でも私にxs:listデータ型の使用を説明できますか? .xmlファイルには、そのラベルを持つオブジェクトのリストを作成するために必要なリスト(ラベルのリスト)が必要なので、アプリケーションにうまく収まるでしょう。私の質問は:私はリストの項目をループする必要がありますか(または私のprogramm内のコレクションをそれらで埋めるか)、またはコレクションをXMLリストで満たすいくつかの自動化されたメカニズムがありますか?手動で行う必要がある場合は、xs:listと空白文字で区切られた文字列の違いは何ですか?XSD xs:リストの混乱

私は私の質問を横切ることができたと思う!

EDIT:ImはQtを使用してXMLを解析します。おそらくSAXルート。

+0

XMLデータをどのように解析しますか? Javaで? C#? Javaの場合、JAXB、DOMなどで...?あなたの質問に応じてそれに応じて更新してください –

答えて

0

実際には、クラスQXmlQueryは私が欲しかったのとまったく同じです。 その方法bool QXmlQuery::evaluateTo (QStringList * target) constは、xs:stringの値のシーケンスを必要とし、targetをそれらに入れます。

2

xs:listを使用すると、コード生成ツールを使用している場合は、解析/収集データ構造として解析されます。空白で区切られた文字列を使用すると、それは通常の文字列として公開され、解析を担当します。

違いは、xsdベースのコードジェネレータを使用している場合のみです。 SAXやDOMのような低レベルのAPIを使用して解析している場合、違いはありません。

+0

パンゲア、あなたは紳士です。(あなたはその理由を知っています...)私の記事もご覧ください。あなたが言うことを忘れていた項目は、検証ビットです...乾杯! –

+0

@PetruGardea yypが妥当でない妥当性検査を忘れて投稿を完成させるためにすべてを追加する;-) –

2

特定のプロセッサ(例:JAXBまたはXSD.EXEなど)を指定しているわけではないため、特定できないものがあります。一般的なルールとして、リスト(およびそのユニオン)はあまりサポートされていません。

理想的な世界では、ツールはリストであり、生成されたコード(XMLからコードへのバインディングシナリオでは)は、すでに解析済みのフィールドや配列の型を提供する必要があります。ツールが不足している場所では、手作業で行う必要があります。違いはありません。

しかし、検証も行うと、少なくともリストの各項目はきちんと検証されます。それがなければ、あなた自身が再びあなたのものになります。

+0

JAXB suuports xs:@XmlListアノテーション付きリスト:http://blog.bdoughan.com/2010/09/ jaxb-collection-properties.html –

+0

ありがとう、Blaise;ちょうど明確にするために、私はJAXBがxsd:list/unionをサポートしていないことを意味するつもりはありませんでした。私は可能なプロセッサを列挙していたにすぎません...しかし、JAXBでxsd:unionが1.xと2.xの間でどのように管理されていたか(多くの人が得られなかった)、痛みツールの長さはこのスペース... XSD.EXEはまだ(現在は廃止されていますが)xsd:listに対して部分的なサポートしか提供していません。 –