我使用JAXB 2.1從幾個我無法修改的XSD文件(實際上來自WSDL文件)中生成Java類,並且我遇到了有關複雜類型限制的問題。 在限制之後,將發生的配置從minOccurs="0" maxOccurs="unbounded"
修改爲minOccurs="0" maxOccurs="0"
。因此這個字段在限制類型中不再需要。但實際上,JAXB使用[0..1]基數而不是0生成受限類。JAXB代碼生成:限制類型 - >如何刪除零出現字段?
順便說一句,該生成與<xjc:treatRestrictionLikeNewType />
一起調整,以便XSD限制不會映射到Java類繼承。
下面是一個例子:
這裏是一個字段是在複雜的類型A中定義的方法:
<element name="qualifier" type="CR" maxOccurs="unbounded" minOccurs="0"/>
這裏是相同的字段在另一個複雜類型B被限制的方式其限制一個:
<element name="qualifier" type="CR" minOccurs="0" maxOccurs="0"/>
在A生成的類我有:
@XmlElement(name = "qualifier")
protected List<CR> qualifiers;
而在B生成的類我有:
protected CR qualifiers;
隨着我JAXB缺乏瞭解的情況下的XmlElement
註解告訴JAXB不馬歇爾/解組此字段。我錯了嗎? 如果我說得對,有沒有辦法告訴JAXB根本不生成qualifiers
字段? 這在我看來是一個更好的一代,因爲它尊重約束。
任何想法,關於這個話題?
謝謝!
是的,你是對的,但我沒有手的XSD文件。 我必須處理它;) – reef 2010-06-17 08:43:48