2014-06-24 26 views
1

我有一個包含沒有像下面當元素上未指定maxOccurs時,xjc爲什麼不生成List屬性?

<complexType name="CultureInfo"> 
     <sequence> 
     <element name="A" type="string"/> 
     <element name="B" type="string"/> 
     </sequence> 
    </complexType> 

定義運行XJC發生後序列的模式,JAXB不產生A和B名單<>總是意味着只有一個實例。 我知道我可以通過添加

<xs:sequence maxOccurs="unbounded"> 

不幸的是解決這個問題,我無法改變的模式。我想知道並獲取一些衝突的信息,默認情況下,如果沒有指定maxOccurs,A和/或B可以多次出現?有些網站說是的,有些人說不,JAXB說沒有(這就是爲什麼沒有名單<>)。

回答

0

當沒有指定maxOccurs時,默認爲1在XML模式中。

http://www.w3.org/TR/xmlschema-0/2.2.1現約束

註釋元素是PurchaseOrderType內可選的,因爲的minOccurs的 值在其聲明屬性是0。在一般情況下,需要 的元件當minOccurs的值爲1或 時出現更多。元素可能出現的最大次數在其聲明中由maxOccurs屬性的值確定 。此值 可能是一個正整數,例如41,或者術語未綁定到 表示不存在最大發生次數。 minOccurs和maxOccurs屬性的默認值爲 爲1.因此,如果 元素(如comment)未聲明maxOccurs屬性,則該元素可能不會出現一次以上。請確保,如果僅爲minOccurs屬性指定了 值,則它將小於或等於 maxOccurs的默認值,即它是0或1.同樣,如果您爲 指定了僅用於maxOccurs屬性的值,它必須更大 大於或等於minOccurs的默認值,即1或更多。如果 這兩個屬性均被忽略,則該元素必須只出現一次。

+0

是的,謝謝。我也從http://www.w3schools.com/schema/el_sequence.asp找到了相同的答案 – user2167013

相關問題