首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAX WS中SOAP WS的枚举参数

JAX WS中SOAP WS的枚举参数
EN

Stack Overflow用户
提问于 2017-01-10 08:32:00
回答 2查看 2.7K关注 0票数 0

我想问一下,如何在JAX中指定SOAP服务,这样如果我希望一个字段被值A或值B填充。任何其他值都应返回错误。

我考虑过Java中的枚举,但仍然没有弄清楚如何实现它。

有什么建议吗?提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2017-01-10 08:35:03

您可以使用相同的枚举。

在WSDL的XSD中,您将定义如下元素:

代码语言:javascript
复制
 <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中,您可以使用Enum来定义如下所示:

代码语言:javascript
复制
public enum ElementValue
{
  A,
  B;
}

现在您可以使用以下语法访问这些值:-

代码语言:javascript
复制
ElementValue.A
ElementValue.B
票数 1
EN

Stack Overflow用户

发布于 2018-10-16 12:34:50

如果在Java上使用注释XmlEnum,则生成的WSDL包含简单类型。一个例子可以找到在XmlEnumValue的文档中

代码语言:javascript
复制
@XmlEnum
public enum ElementValue
{
    A,
    B;
}

结果在以下WSDL部分:

代码语言:javascript
复制
 <xs:simpleType name="ElementValue">
    <xs:restriction base="xs:string">
       <xs:enumeration value="A"/>
       <xs:enumeration value="B"/>             
    </xs:restriction
 </xs:simpleType>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41564388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档