枚举键入WSDL表示

rem*_*emo 4 java wsdl

WSDL表示如下:

<xs:simpleType name="customerType">
    <xs:restriction base="xs:string">
        <xs:enumeration value="PRIVATE"/>
        <xs:enumeration value="BUSINESS"/>
    </xs:restriction>
</xs:simpleType>
Run Code Online (Sandbox Code Playgroud)

通过cxf-codegen-plugin得到如下代码:

public enum CustomerType { 
    PRIVATE, BUSINESS 
} 
Run Code Online (Sandbox Code Playgroud)

可以在WSDL中表示为:

我们如何在WSDL中表示枚举,以便cxf-codegen-plugin可以生成如下代码:

public enum CustomerType { 
        PRIVATE{public BigInteger getNcid() { 
                return new BigInteger("1"); 
}, 
BUSINESS{public BigInteger getNcid() { 
                return new BigInteger("2"); 
} 

public abstract BigInteger getNcid(); 
    }
Run Code Online (Sandbox Code Playgroud)

如果我们不能生成cxf-codegen,那么在java中处理这种情况的最佳方法是什么.我非常感谢你的帮助.

Joh*_*ers 5

这不代表同一件事.

您还没有说过您正在使用哪种编程语言,但看起来您打算将PRIVATE与值1相关联,并将BUSINESS与值2相关联.这在WSDL中没有表示.

WSDL使用XML Schema来描述数据的形状.XML Schema没有与enum编程语言相同的概念.在我所知道的大多数编程语言中,a enum是一个命名常量.enumerationXML Schema中的构面不描述命名值.它只是说该点的值可以是列出的(字符串)值之一.