[英]JAXB generates List<Jaxbelement> instead of fields
我正在嘗試使用以下wsdl中的jaxb maven插件生成一個類:
<xs:complexType name="ctpLeerling">
<xs:sequence>
<xs:element minOccurs="0" name="achternaam" type="xs:string"/>
<xs:element minOccurs="0" name="voorvoegsel" type="xs:string"/>
<xs:element minOccurs="0" name="voorletters-1" type="xs:string"/>
<xs:element minOccurs="0" name="roepnaam" type="xs:string"/>
<xs:element minOccurs="0" name="roepnaam" type="xs:string"/>
<xs:element name="geboortedatum" type="xs:date"/>
<xs:element minOccurs="0" name="geslacht" type="xs:string"/>
<xs:element name="jaargroep" type="tns:ctpVocabulaireGebondenVeld"/>
<xs:element minOccurs="0" name="emailadres" type="xs:string"/>
<xs:element minOccurs="0" name="fotourl" type="xs:string"/>
<xs:element minOccurs="0" name="groep">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="key" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="subgroepen">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="groep">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="key" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="mutatiedatum" type="xs:dateTime"/>
</xs:sequence>
<xs:attribute name="key" type="xs:string" use="required"/>
它給了我一個具有以下字段的類:
protected List<JAXBElement<?>> content;
@XmlAttribute(name = "key", required = true)
protected String key;
如何生成wsdl屬性的字段而不是使用JAXBElements的列表? 提前致謝!
編輯:對不起,我忘了提到我無法編輯wsdl文件!
您將獲得List<JAXBElement>
因為您的sequence
定義了兩個具有相同名稱的元素。
<xs:element minOccurs="0" name="roepnaam" type="xs:string"/>
<xs:element minOccurs="0" name="roepnaam" type="xs:string"/>
該元素可以更好地定義為:
<xs:element minOccurs="0" maxOccurs="2" name="roepnaam" type="xs:string"/>
如果找不到生成所需類的方法,則可以自己創建一個並使用外部綁定文件在類生成期間使用JAXB(如果是復雜類型)。
<jxb:bindings schemaLocation="yourSchema.xsd">
<jxb:bindings node="//xs:complexType[@name='ctpLeerling']">
<jxb:class ref="com.example.YourOwnClass"/>
</jxb:bindings>
</jxb:bindings>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.