Java WSDL表示中的枚举类型

Java WSDL表示中的枚举类型,java,wsdl,Java,Wsdl,WSDL表示形式如下所示: <xs:simpleType name="customerType"> <xs:restriction base="xs:string"> <xs:enumeration value="PRIVATE"/> <xs:enumeration value="BUSINESS"/> </xs:restriction> </xs:simpleType> 可

WSDL表示形式如下所示:

<xs:simpleType name="customerType">
    <xs:restriction base="xs:string">
        <xs:enumeration value="PRIVATE"/>
        <xs:enumeration value="BUSINESS"/>
    </xs:restriction>
</xs:simpleType>
可以在WSDL中表示为:

我们如何在WSDL中表示enum,以便cxf codegen插件可以生成如下代码:

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中处理此情况的最佳方法是什么。我真的很感谢你的帮助。

这不是一回事

您还没有说您正在使用哪种编程语言,但看起来您希望PRIVATE与值1关联,而BUSINESS与值2关联。WSDL中没有表示的


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

您好,John感谢您的解释,我实际上是在尝试使用cxf codegen插件从java中的WSDL生成代码,我没有看到生成上述代码的方法。您知道让codegen实现与其关联的枚举值的任何方法吗?不知道,因为XML架构中不存在枚举的Java概念。感谢John的澄清您可以找到4种方法在wdsl中创建枚举,以及它们如何与CXF一起工作:
public enum CustomerType { 
        PRIVATE{public BigInteger getNcid() { 
                return new BigInteger("1"); 
}, 
BUSINESS{public BigInteger getNcid() { 
                return new BigInteger("2"); 
} 

public abstract BigInteger getNcid(); 
    }