複数の XML ドキュメントに複数の xpath クエリを適用するルールを解釈する

StackOverflow https://stackoverflow.com/questions/2477898

質問

いくつかの XML ドキュメントを入力として受け取り、次の種類のルールをチェックするコンポーネントを構築する必要があります。

XML1:/bookstore/book[price>35.00] != null 
and (XML2:/city/name = 'Montreal'
     or XML3://customer[@language] contains 'en')

基本的に、私のコンポーネントは次のことができるはずです。

  • XML トークンを対応する XML ドキュメント (コロンの前) に置き換えます。
  • この XML ドキュメントに xpath クエリを適用する
  • xpath 出力を予想される結果 (「=、「!=」、「含む」) と照合して確認します。
  • 基本的な構文 (「and」、「or」、および括弧) に従います。
  • ルールが真か偽かを判断する

私に役立つ図書館を知っていますか?たぶんJavaCCでしょうか?

ありがとう

役に立ちましたか?

解決 2

JavaCCのメーリングリスト上の誰かが Schematronのに言及し、正しい方向に私を指摘しました。これは Probatron に利用可能な最善のJava実装であるように思われます。

に私を導きました

Schematronのウェブサイトの請求言語のサポートしていることを「リンク間でジャンプとXML文書間の制約をチェックするために」Probatronがそれを許可していないようです。私はそれを微調整するか、(すべての私のソースドキュメントを含む一時XMLドキュメントを構築するなど)そのためのトリックを見つけることないかもしれません。それとは別に、それはProbatronが私のために右のライブラリであるに見えます。

他のヒント

XPATH を評価する場合に推奨するのは ジャクセン.

ヤクセン はオープンソースの XPath ライブラリです Javaで書かれています。に適応可能です 多くの異なるオブジェクトモデル、 DOM、XOM、dom4j、および JDOM を含みます。アダプタを書くことも可能ですか? これは、 コンパイル済み Java バイト・コードまたは Java Bean を XML として作成し、クエリを実行できます。 XPath のこれらのツリーも同様です。

Java XPath API (Java 5 / javax.xml.xpath)もオプションですが、まだ試していません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top