我有一個JAXB設置,我使用@XmlJavaTypeAdapter將類型爲Person
的對象替換爲僅包含此人的UUID的PersonRef
類型的對象。這工作非常好。但是,生成的XML在每次使用時都重新聲明相同的名稱空間(xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
)。雖然這通常是好的,但它感覺不對。JAXB:如何避免xmlns的重複名稱空間定義:xsi
如何配置JAXB在文檔的最開始處聲明xmlns:xsi?我可以手動將名稱空間聲明添加到根元素嗎?
這裏是什麼,我想才達到一個例子:
電流:
<person uuid="6ec0cf24-e880-431b-ada0-a5835e2a565a">
<relation type="CHILD">
<to xsi:type="personRef" uuid="56a930c0-5499-467f-8263-c2a9f9ecc5a0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</relation>
<relation type="CHILD">
<to xsi:type="personRef" uuid="6ec0cf24-e880-431b-ada0-a5835e2a565a" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</relation>
<!-- SNIP: some more relations -->
</person>
通緝:
<person uuid="6ec0cf24-e880-431b-ada0-a5835e2a565a" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<relation type="CHILD">
<to xsi:type="personRef" uuid="56a930c0-5499-467f-8263-c2a9f9ecc5a0"/>
</relation>
<relation type="CHILD">
<to xsi:type="personRef" uuid="6ec0cf24-e880-431b-ada0-a5835e2a565a"/>
</relation>
<!-- SNIP: some more relations -->
</person>
我使用jaxb2,這對我並不適用,拋出RuntimeException – arrehman 2012-03-02 19:51:44