5

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

4

1 回答 1

5

这不是同一件事的代表。

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

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

于 2013-05-30T01:07:44.473 回答