我想问一下,如何在JAX中指定SOAP服务,这样如果我希望一个字段被值A或值B填充。任何其他值都应返回错误。
我考虑过Java中的枚举,但仍然没有弄清楚如何实现它。
有什么建议吗?提前谢谢你。
发布于 2017-01-10 08:35:03
您可以使用相同的枚举。
在WSDL的XSD中,您将定义如下元素:
<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来定义如下所示:
public enum ElementValue
{
A,
B;
}现在您可以使用以下语法访问这些值:-
ElementValue.A
ElementValue.B发布于 2018-10-16 12:34:50
如果在Java上使用注释XmlEnum,则生成的WSDL包含简单类型。一个例子可以找到在XmlEnumValue的文档中
@XmlEnum
public enum ElementValue
{
A,
B;
}结果在以下WSDL部分:
<xs:simpleType name="ElementValue">
<xs:restriction base="xs:string">
<xs:enumeration value="A"/>
<xs:enumeration value="B"/>
</xs:restriction
</xs:simpleType>https://stackoverflow.com/questions/41564388
复制相似问题