XMLデータをJavaオブジェクトにマップするためにJIBXを使用しています。これは、XMLにターゲット名前空間が1つだけ含まれている場合に完全に機能します。残念ながら、要件が変更され、2つの異なる名前空間を含むXMLデータを取得できるようになりました。
例:
<a:foo>
<b:bar>Simple Example</b:bar>
</a:foo>
私の質問は、2つの異なるターゲット名前空間を生成するxsdをどのように作成するかです。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="namespace_of_a"
xmlns:a="namespace_of_a"
xmlns:b="namespace_of_b"
elementFormDefault="qualified">
<xs:element name="foo">
<xs:complexType>
<xs:sequence>
<!-- this won't work, because b is part of a different namespace -->
<xs:attribute type="xs:string" use="required" name="bar"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
私はすでに試しました:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="namespace_of_a"
xmlns:a="namespace_of_a"
xmlns:b="namespace_of_b"
elementFormDefault="qualified">
<xs:element name="foo">
<xs:complexType>
<xs:sequence>
<!-- this won't work, because jibx is reporting that targetNamespace is an unknown attribute -->
<xs:attribute targetNamespace="namespace_of_b" type="xs:string" use="required" name="bar"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
助けてください。これが一般的に可能かどうかわかりませんか?前もって感謝します!