![](/img/trans.png)
[英]JAXB generating JAXBElement<String> instead of String
[英]Jaxb generated class used JAXBElement instead of specified type
這個問題已被各種各樣的問題提出來 - 但我覺得仍然有進一步編目的空間。
我有一個帶有兩個元素定義的xsd
<xs:complexType name="elementA">
<xs:sequence>
<xs:element name="date" type="xs:string" minOccurs="0"/>
<xs:element name="lastXdigits" type="xs:string" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
這會產生:
protected String date;
@XmlElementRef(name = "lastXdigits", namespace = "http://xxxxxxx", type = JAXBElement.class)
protected JAXBElement<String> lastXDigits;
將xsd更改為:
<xs:element name="lastXdigits" type="xs:string" nillable="true" minOccurs="1"/>
結果是:
protected String date;
@XmlElement(name = "lastXdigits", required = true, nillable = true)
protected String lastXDigits;
和使用:
<xs:element name="lastXdigits" type="xs:string" minOccurs="0"/>
結果是:
protected String date;
@XmlElement(name = "lastXdigits")
protected String lastXDigits;
這對我來說似乎很奇怪。 為什么在第一種情況下將lastXDigits生成為JAXBElement類型,為什么String類型在所有情況下都不夠用? 另外,當jaxb除了名稱之外的定義相同時,為什么jaxb應該區別對待這兩個元素呢?
我正在使用jaxb 2.0.5中的jaxb-xjc ant任務。
這看起來是否可疑或是否有充分的理由來解決這些差異?
如果nillable="true"
和minOccurs="0"
,則不可能只用String
表示值。 null
意味着什么? 這是否意味着它是空的,或者它發生了0次? 但是我想這只是一個字符串有點沒什么問題。
與空列表比較。 空列表肯定與空列表不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.