2011-09-14 9 views
0

階層属性のセットを持つBeanがあると仮定すると、XMLBeansは、そのBeanがそれらの属性のサブセットに対して特定の値を持っているかどうかを判断する方法を提供しますか?この問題を解決するための最善の方法は、検索する属性と値のセットを持つ別のBeanを作成し、Beanに設定したものと同じ属性(およびそれらの属性の値)が含まれているかどうかを確認することです。XMLBeanを使用してXML属性の比較を行う簡単な方法はありますか?

たとえば、XMLユーザーのリストがあり、茶色の髪の人を探しているとします。あなたはそのようなBeanを設定することができます:

<person hair="brown" /> 

そして、本質的にそのbeanをサブセットとして含むリストを見つけることができます。テストbean(この場合は茶色の髪の人)の属性階層を繰り返し再帰し、リスト内の各Beanにその属性が含まれているかどうかを確認し、その値を持っているかどうかを確認することができます。しかし、これは一般的な作業のようですが、XMLBeansライブラリがこの機能を既に提供しているかどうかを調べたいと思っていました。私は、階層的な属性があるかわからないが、私はあなたがXPathを使用して、元のXMLを照会することができます知っている

答えて

0

//person[@hair='brown'] 

「髪」で、すべての人の要素を取得するには、「茶色に等しい属性'そして、私はあなたがXMLBeans XMLObjectに対してXPath式を実行できると思います(あるいはそれはXQueryですか?だがそれはほとんど同じだろう)。そう、XMLBeansのような機能が既にあります。私が覚えている限り、あなたはXMLObjectsのリストを返すだろうが、それらがマッピングされた特定のJavaクラスにキャストできるかどうかはわかりません。変な獣、XMLBeans! JAXBに移り、後悔はありません。

+0

「階層属性」とは、単に属性を持つ属性を意味します。私はXQuery/XPathでできることを見ていきます。 – david

関連する問題