我想使用JAXB 2.1 XJC從xsd生成java代碼。我提供了一個xsd模式,我無法更改它。我想在使用xml模式生成java類時使用xjc:simple模式。JAXB 2.1 - 自定義xs:任何綁定
在XSD有元素:
<xs:any namespace="##other" processContents="lax"/>
正如本文指出:http://jaxb.java.net/guide/Mapping_of__xs_any___.html我預計,這些元素將被綁定到:
@XmlAnyElement(lax=true)
public Object any;
但是當我使用簡單的結合模式xjc:簡單我有:
@XmlAnyElement
protected Element any;
我試圖找到一種解決方法,但是到處都有人說xs:any是在沒有配置的情況下處理的。將xs:any元素作爲java.lang.Object的唯一方法是在xsd中將xjc:簡單或更改processContents設置爲「strict」。現在我無法接受這些選項,因爲我無法更改xml模式,而且我有一些遺留代碼依賴於使用xjc生成的java類:簡單模式,但現在我需要使用xs:any元素,並且我希望避免使用org.w3c.dom.Element對象。
任何幫助將不勝感激。謝謝。
我什至讀過這個插件,但不知道這是否是正確的方向。感謝您的答覆 - 我會盡快在項目中有一些閒暇時間來驗證。 – arek 2012-03-08 11:36:30
謝謝lexicore,這個插件幾乎是我所需要的。我之所以這樣說,幾乎是因爲我找不到一種方法來全局更改所有的xs:any到java.lang.Object。每種情況都必須單獨配置,有點煩人。只需要記錄任何可能需要通過綁定文件配置它的人(插件doc根本不包括這種情況),則必須直接指向複雜類型,例如: jxb:bindings> –
arek
2012-03-12 15:43:56
@Arek請在JAXB2基礎知識中提出問題,是可行的。 – lexicore 2012-03-12 17:37:30