1

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

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

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

  • XMLトークンを対応するXMLドキュメント(コロンの前)に置き換えます
  • このXMLドキュメントにxpathクエリを適用します
  • xpath出力を期待される結果と照合します( "="、 "!="、 "contains")
  • 基本構文に従います(「and」、「or」および括弧)
  • ルールが正しいか間違っているかを教えてください

私を助けることができる図書館を知っていますか?多分JavaCC?

ありがとう

4

2 に答える 2

0

XPATHを評価するには、JAXENをお勧めします

Jaxenは、Javaで記述されたオープンソースのXPathライブラリです。DOM、XOM、dom4j、JDOMなどのさまざまなオブジェクトモデルに適応できます。コンパイルされたJavaバイトコードやJavaBeanなどの非XMLツリーをXMLとして処理するアダプターを作成して、これらのツリーをXPathで照会できるようにすることもできますか。

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

于 2010-03-19T14:16:28.580 に答える
0

JavaCCメーリングリストの誰かが、Schematronに言及して、正しい方向を示してくれました。それは私をProbatronに導きました。これは利用可能な最高のJava実装のようです。

SchematronのWebサイトは、この言語が「リンク間およびXMLドキュメント間をジャンプして制約をチェックする」ことをサポートしていると主張していますが、Probatronはそれを許可していないようです。私はそれを微調整したり、そのためのトリックを見つけたりしないかもしれません(すべてのソースドキュメントを含む一時的なXMLドキュメントを作成するなど)。それとは別に、Probatronは私にとって適切なライブラリのようです。

于 2010-03-19T19:21:37.250 に答える