2017-01-10 27 views
0

我想问我如何指定SOAP Web服务中的JAX-WS,这样,如果我想要一个字段填写值A或值B。任何其他值都会返回错误。JAX中的SOAP WS枚举参数WS

我想到了Java中的枚举,但仍然没有弄清楚如何实现它。

有什么建议吗?先谢谢你。

回答

0

您可以使用相同的枚举。

在您的XSD的WSDL,你会定义元素象下面这样: -

<xsd:complexType name="Value"> 
    <xsd:sequence> 
     <xsd:element name="elementValue" type="constantType" /> 
    </xsd:sequence> 
</xsd:complexType> 


<xsd:simpleType name="constantType"> 
    <xsd:restriction base="xsd:string"> 
    <xsd:enumeration value="A" /> 
    <xsd:enumeration value="B" /> 
    </xsd:restriction> 
</xsd:simpleType> 

在上面的例子中,你是说有一个与名字elementValue元素是constantType的,constantType可以有A或B类型的String类型的值。

当您谈论SOAP时,基本上WSDL是您需要与服务用户共享的合约。如果一个特定的字段只能有两个值,那么这应该在你的合同中提到,即WSDL。

在Java中,你可以使用枚举来定义这个象下面这样: -

public enum ElementValue 
{ 
    A, 
    B; 
} 

现在你可以用下面的语法访问这些值: -

ElementValue.A 
ElementValue.B 
+0

嘿阿米特谢谢您的答复,其实我从java代码生成wsdl,所以我想知道如何做到你提到的与jax ws注释这是我真正的问题。任何想法? – Sara