0

一連の階層属性を持つ Bean があると仮定すると、XMLBeans は、その Bean がそれらの属性のサブセットに対して特定の値を持っているかどうかを判断する方法を提供しますか? この問題を解決するために思いつく最善の方法は、求める属性と値のセットを持つ別の Bean を作成し、Bean に設定したものと同じ属性 (およびそれらの属性の値) が含まれているかどうかを確認することです。 .

たとえば、XML 人物のリストがあり、茶色の髪の人を見つけたいとします。次のように Bean を設定できます。

<person hair="brown" />

そのBeanをサブセットとして本質的に含むリスト内のアイテムを見つけます。これを行うには、テスト Bean (この場合は茶髪の人) の属性階層を再帰的に反復し、リスト内の各 Bean にその属性が含まれているかどうか、およびその値があるかどうかを確認します。しかし、これは一般的なタスクのように思われるので、XMLBeans ライブラリーがこの機能を既に提供しているかどうかを知りたいと思いました。

4

1 に答える 1

0

階層属性が何であるかはわかりませんが、XPath を使用して元の XML を照会できることは知っています。

//person[@hair='brown']

'hair' 属性が 'brown' に等しいすべての person 要素を取得します。そして、XMLBeans XMLObject に対して XPath 式を実行できると思います (または XQuery でしたか? しかし、それはほとんど同じことです)。そうです、XMLBeans にはそのような機能が既に備わっています。私が覚えている限りでは、XMLObject のリストが返されますが、それらを特定のマップされた Java クラスにキャストできるかどうかはわかりません。奇妙な獣、XMLBeans! 私たちは JAXB に移行しましたが、後悔はありません。

于 2011-09-14T23:14:14.393 に答える