2016-01-10 47 views
0

我試圖使用mave-jaxb2插件和jaxb2-basics簡化插件將XSD轉換爲JAXB類。jaxb2簡化插件元素不簡化

在pom.xml中的配置,可以在此post

sample.xsd(複雜選擇類型)

<xs:complexType name="doclist"> 
     <xs:sequence> 
      <xs:choice minOccurs="0" maxOccurs="unbounded"> 
       <xs:element name="document1" type="type1"> 
        <xs:annotation> 
         <xs:appinfo> 
          <simplify:as-reference-property/> 
         </xs:appinfo> 
        </xs:annotation> 
       </xs:element> 
       <xs:element name="document2" type="type2"> 
       </xs:element> 
      </xs:choice> 
     </xs:sequence> 
     <xs:attribute name="heading" type="xs:string" /> 
    </xs:complexType> 

然而所生成的JAXB類具有aOrB引用。

@XmlElements({ 
     @XmlElement(name = "document1", type = Type1.class), 
     @XmlElement(name = "document2", type = Type2.class) 
    }) 
    protected List<Object> document1OrDocument2; 

回答

1

,所以你必須把你的註釋上xs:choice,而不是在xs:element你有一個elements財產。請參閱the documentation。你可能想用<simplify:as-element-property/>

+0

謝謝。如果我對於多個元素具有相同類型,簡化將不起作用嗎?例如'' – ulab

+0

@ulab這是另一個問題。 – lexicore

+0

罰款:)。我創建了另一個[問題](http://stackoverflow.com/questions/34860485/jaxb2-simplify-plugin-for-xschoice-having-same-types) – ulab