2016-09-08 1 views
0

私はxsdファイルに繰り返しグループを含み、そのパスのリストを取得したいと思います。xsdの反復グループのxpathを取得する

私はスキーマのある種のツリー表現をナビゲートし、ノードが繰り返されているかどうかを調べることができると考えています。はいの場合、xpathをファイルに書きます。そうでなければ、私はそれをスキップします。

私はSaxonとこの回答How can I find all elements in an XML Schema whose value is specified as a QName?を使用してscmファイルを生成することができますが、私は部分的にはこれが行く方法だと確信しています。

これを行う方法はありますか?

答えて

0

"繰り返しグループ"(COBOLで何かを思い出させてくれます...)が何を意味しているのかよく分かりませんが、それは本当にポイントではないと思います。

一般的に、XPathとXSLTを使用してソーススキーマドキュメントを処理しようとするのは難しいのですが、それは正しく機能することが難しいためです。同等のスキーマを書くには余りにも多くの方法があります。 Saxonでは、SCMファイルを使用することも、saxon:schema()拡張関数を使用してコンパイルされたスキーマコンポーネントモデルを処理することもできます。 Xercesにはこれを行うためのJava APIがあります。

ご予約時に「繰り返しグループ」という用語が使用されています。グループでは、name属性(XSDはこれを "モデルグループ定義"と呼ぶ)またはref属性( "モデルグループ参照")を持つxs:group要素を意味しますか、または "グループ定義コンポーネントモデルグループ定義と属性グループ定義の総称であるか、または「置換グループ」を意味するのか、xs:choice、xs:sequence、またはxs:sequenceに対応する「モデルグループ」を意味しますか?すべての要素? XSDの用語はひどく混乱する可能性があります。あなたが探しているものを正確に知らなくても、それは助言するのが難しいです。

+0

お返事ありがとうございます。私はもっ​​と明確にすべきだった。私はxs:要素を指しています。それらはすべて名前と型の属性を持っています(スキーマにcomplexTypesが定義されています)。それらの中にはminOccursとmaxOccursがあります。 min/maxOccursでこれらの要素のパスのリストを作成する必要があります。 – asdvbnm

+0

パスのリストが無限大の場合、どのような出力が必要ですか?/doc/section/section/section/section/...? –

+0

私はこの特定のユースケースには決してないことを知っています。 – asdvbnm

関連する問題