重複の可能性:
JAXB マーシャリング XMPP スタンザ
ここでstackoverflowを検索しましたが、必要なものに対する答えが実際には見つかりませんでした。
JAXB を使用して名前空間を操作しようとすると、問題が発生します。始めましょう。
次の形式の XML が必要です
<root xmlns="http://namespace/root">
<item xmlns="http://namespace/item">
<id>1</id>
<name>First</name>
</item>
<item xmlns="http://namespace/item">
<id>2</id>
<name>Second</name>
</item>
</root>
ご覧のとおり、基本的にすべてのタグで名前空間を複製する必要があります。JAXB を使用してこれを作成しようとすると、次の XML 出力が得られます。
<root xmlns="http://namespace/root"
xmlns:ns2="http://namespace/item">
<ns2:item>
<ns2:id>1</ns:id>
<ns2:name>First</ns2:name>
</ns2:item>
<ns2:item>
<ns2:id>2</ns:id>
<ns2:name>Second</ns2:name>
</ns2:item>
</root>
そのように生成されることは明らかに理にかなっています。プレフィックスを使用しているため、ここでは問題はありません。
しかし、私がこの XML を送信する消費者は、ファイルのすべてのアイテムの名前空間を複製しなければならないフォーマットであることを要求します。
誰もそれを行う方法を知っていますか? String のテンプレートを考えたのですが、JAXB ですでにすべて終わっているので、もっと簡単にできる方法はないかと考えました。
よろしくお願いします!