枚举键入WSDL表示

时间:2013-05-29 15:49:40

标签: java wsdl

WSDL表示如下:

<xs:simpleType name="customerType">
    <xs:restriction base="xs:string">
        <xs:enumeration value="PRIVATE"/>
        <xs:enumeration value="BUSINESS"/>
    </xs:restriction>
</xs:simpleType>

通过cxf-codegen-plugin:

生成了如下代码
public enum CustomerType { 
    PRIVATE, BUSINESS 
} 

可以在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(); 
    }

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

1 个答案:

答案 0 :(得分:5)

这不代表同一件事。

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

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