小编dba*_*aer的帖子

如何告诉JAXB不要生成@XmlSchemaType Annotation

跟随xsd(部分):

<xs:complexType name="Fruit">
    <xs:sequence>
        <xs:element name="type" type="FruitType"/>
    </xs:sequence>
</xs:complexType>
<xs:simpleType name="FruitType">
    <xs:restriction base="xs:string">
        <xs:enumeration value="ABC">
        </xs:enumeration>
        <xs:enumeration value="DEF">
        </xs:enumeration>
        <xs:enumeration value="GHI">
        </xs:enumeration>
        <xs:enumeration value="JKL">
        </xs:enumeration>
    </xs:restriction>
</xs:simpleType>
Run Code Online (Sandbox Code Playgroud)

使用xjc生成代码将生成以下java代码(FruitType是一个枚举):

    @XmlElement(required = true)
    @XmlSchemaType(name = "string")
    protected FruitType fruit;
Run Code Online (Sandbox Code Playgroud)

使用JAX-WS生成SOAP WebService时,将生成以下元素:

<xs:element name="type" type="xs:string"/>
Run Code Online (Sandbox Code Playgroud)

这显然是错的.我希望这是

<xs:element name="type" type="FruitType"/>
Run Code Online (Sandbox Code Playgroud)

如果我手动删除这一行

    @XmlSchemaType(name = "string")
Run Code Online (Sandbox Code Playgroud)

在我的Java代码中,wsdl中的所有内容都很好:

<xs:element name="type" type="tns:FruitType"/>
Run Code Online (Sandbox Code Playgroud)

所以问题是:如何告诉JAXB不生成@XmlSchemaType?

soap jaxb

8
推荐指数
1
解决办法
1089
查看次数

标签 统计

jaxb ×1

soap ×1