Soap 具有键/值对的WSDL枚举限制
我正在开发一个SOAPWebService,它具有许多使用枚举限制的输入字段 这些枚举非常类似于HTML选择/选项设置;我期望返回某个值,但该值的标签也应该使用WSDL公开 例如:客户希望添加有关其房屋的保险单,因此需要指定所涉及的建筑类型Soap 具有键/值对的WSDL枚举限制,soap,wsdl,enumeration,Soap,Wsdl,Enumeration,我正在开发一个SOAPWebService,它具有许多使用枚举限制的输入字段 这些枚举非常类似于HTML选择/选项设置;我期望返回某个值,但该值的标签也应该使用WSDL公开 例如:客户希望添加有关其房屋的保险单,因此需要指定所涉及的建筑类型 <xsd:restriction base="xsd:string"> <xsd:enumeration value="00001" /> <xsd:enumeration value="00002" /> &
<xsd:restriction base="xsd:string">
<xsd:enumeration value="00001" />
<xsd:enumeration value="00002" />
<xsd:enumeration value="00003" />
</xsd:restriction>
但是,客户尚未了解这些值1、2和3是什么。比如说:
<xsd:restriction base="xsd:string">
<xsd:enumeration value="00001" label="Brick and mortar" />
<xsd:enumeration value="00002" label="Straw" />
<xsd:enumeration value="00003" label="Aircastle" />
</xsd:restriction>
<option>
<key>00001</key>
<label>Brick and mortar</label>
</option>
如果客户能够将这些标签展示给消费者,那将是一件好事
这种构造是否有标准的WSDL注释/语法
这种构造是否有标准的WSDL注释/语法
恐怕不行。XML模式用于将值约束在指定的一组可能值内。当客户端向您发送请求时,具有限制类型的元素将只允许(在您的情况下)具有00001、00002或00003的值,否则它将无效
该限制仅指定值,不能添加标签。您最多可以添加一个
,但那只是文档。在客户端UI中,每个客户端都有责任说00001实际上是“砖头和灰泥”,00002是“稻草”等等
如果您不想这样做,而是想同时返回标签,那么您需要一个稍微复杂一点的对象,可能是这样的:
<xsd:restriction base="xsd:string">
<xsd:enumeration value="00001" label="Brick and mortar" />
<xsd:enumeration value="00002" label="Straw" />
<xsd:enumeration value="00003" label="Aircastle" />
</xsd:restriction>
<option>
<key>00001</key>
<label>Brick and mortar</label>
</option>
00001
砖混砂浆
您提供了一个标签,并使用以下模式限制密钥:
<xsd:simpleType name="ValuesType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="00001" />
<xsd:enumeration value="00002" />
<xsd:enumeration value="00003" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="OptionType">
<xsd:sequence>
<xsd:element name="key" type="ValuesType" />
<xsd:element name="label" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
您可以将选项列表返回给客户机,客户机可以在界面中以
键
作为值,以标签
作为
输入中的选项文本,而在请求时,您将返回所选值(即所选键
)。我通过在“ValuesTypes”类