1

名前空間を使用して同じ名前の要素を区別できるようにする XSD スキーマがあります。Maven プラグイン jaxb2-maven-plugin を使用して JAXB バインディングを生成しています。

JAXB オブジェクトをマーシャリングすると、JAXB はすべての名前空間をルート ノードの識別子に置き換えます。XML は引き続き有効ですが、アプリケーションのユーザーにとって読みやすさ (または認識しやすさ) が低下します。

それはどのように見えるべきですか:

<Root xmlns="http://somenamespace.com/Root">
    <Config xmlns="http://somenamespace.com/ConfigTypeOne"/>
    <Config xmlns="http://somenamespace.com/ConfigTypeTwo"/>    
</Root>

マーシャリング後の外観:

<Root xmlns="http://somenamespace.com/Root" xmlns:ns1="http://somenamespace.com/ConfigTypeOne" xmlns:ns2="http://somenamespace.com/ConfigTypeTwo">
    <ns1:Config/>
    <ns2:Config/>    
</Root>

名前空間の置換をスキップし、XSD スキーマで定義されている方法で XML をマーシャリングするように JAXB に指示する方法はありますか?

4

0 に答える 0