我有一个必须遵循的Web服务标准,有一个xsd并想生成Java类。某些带有枚举的类是正确生成的,但有些是空的并且没有值。
例如这个
<xsd:simpleType name="ST_Month">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="01">
<xsd:annotation>
<xsd:documentation xml:lang="de">January</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="02">
<xsd:annotation>
<xsd:documentation xml:lang="de">February</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
...
</xsd:restriction>
</xsd:simpleType>
正确生成为
@XmlType(name = "ST_Month")
@XmlEnum
public enum STMonth {
/**January */
@XmlEnumValue("01")
VALUE_1("01"),
/** February */
@XmlEnumValue("02")
VALUE_2("02"),
...
}
但是某些枚举具有这样的抽象超类:
<xsd:complexType name="STE_Country" abstract="true">
<xsd:simpleContent>
<xsd:extension base="xsd:string"/>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="STE_CountryBasic" final="#all">
<xsd:simpleContent>
<xsd:restriction base="dt:STE_Country">
<xsd:enumeration value="01">
<xsd:annotation>
<xsd:documentation>USA</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="02">
<xsd:annotation>
<xsd:documentation>GERMANY</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
生成的结果是这样的:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "STE_CountryBasic")
public class STECountryBasic extends STECountry
{
}
我还为自己的'MyOwnCountry'添加了自己的complexType,其中包含STE_Country中缺少但应用程序需要的国家/地区值。但是生成的类与STECountryBasic的空结果相同。
我该怎么办才能生成STECountryBasic中的枚举值?
另外,我正在使用cxf-codegen-plugin通过maven生成