我生成使用JAXB OpenOffice的XML缺席,而且需要一個xml:space="preserve"
屬性應用到t
元素。生成帶屬性的XML這是從架構
<r>
<t>
foo
</t>
</r>
應該
<r>
<t xml:space="preserve">
foo
</t>
</r>
我使用JAXB來從開放式辦公模式的Java類。 <t>
類型被表示爲在CTRElt Java類字符串,所以沒有辦法設置此屬性。當我從現有文檔和Marshall解組,先前存在的space
屬性不再存在。
架構的相關部分如下:
<xsd:element name="t" type="ST_Xstring" minOccurs="1" maxOccurs="1"> <xsd:annotation> <xsd:documentation>Text</xsd:documentation> </xsd:annotation> </xsd:element>
<xsd:simpleType name="ST_Xstring"> <xsd:annotation> <xsd:documentation>Escaped String</xsd:documentation> </xsd:annotation> <xsd:restriction base="xsd:string" /> </xsd:simpleType>
我怎樣才能生成XML已爲此所需space
屬性?修改架構不是一個選項。我需要自定義JAXB嗎?
你可能使用'XmlAdapter'來處理這種情況下,使用下面的文章可以幫助:HTTP://blog.bdoughan .COM/2011/08/XML的模式到Java-generating.html –
@BlaiseDoughan,這可以讓你在標記格式的價值,但我不明白的方式來定製標籤元素本身,通過添加。的屬性 –
可能重複的[JAXB:追加請求XML的字段而不modfying JAXB java類(http://stackoverflow.com/questions/11827978/jaxb-append-field-of-request-xml-without-modfying-jaxb -java級) –