POJOのツリーを、単純な「XPath」言語のような言語で公開したいので、ユーザーは/purchaseOrder/location[@city = 'Mountain View']
のようなことをすることができますか?POJO上でXPath言語/インタフェースをラップする最も良い方法は何ですか?
答えて
私は非常にまともであると思われ、幾分維持されているApache JXpathを見ました。私はそれがいかに速いかを知らない。
私はJaxenも見てきましたが、これはhereと記載されており、PMD's soure codeと記載されています。しかし、Jaxenはその著者によってabandonedになっているようです。また、ここでサポートされているXPathのバージョンはわかりません。
他にもありますか?
POJOがJAXBメタデータを介してXMLにマップされている場合、javax.xml.bind.util.JAXBSource
のインスタンスにルートオブジェクトをラップし、javax.xml.xpath
APIを使用してXPathクエリを発行できます。
それは動作しません。 'JAXBSource source =新しいJAXBSource(jaxbContext、parent); \t getInputSource()がすべてnullであるため、Object result = expr.evaluate(source.getInputSource());はMalformedUrlExceptionというエラーをスローします –
JAXBオブジェクトを使用してこれを行う適切な方法を見つけました。 devguli.com/blog/eng/jaxb-binder-and-xpath/ –
またはこのhttp://jarfiller.com/guide/jaxb/xpath.xhtml。しかし、JXPathは高速です –
お手数ですがもう少し詳しくお聞かせください。ユーザーはシステムとどのように対話しますか? POJOをあなたのプログラムに読み込ませて、ユーザに "問い合わせ"させてもらえますか? – pcalcao
はい、POJOは既存のインスタンスであり、ロードされています。しかし、1つのPOJOのフィールドがXPath経由で別のフィールドにコピーされることがあります。 –