use*_*095 6 soap wsdl enumeration
我正在开发一个SOAP Web服务,它使用枚举限制来提供许多输入字段.
这些枚举很像HTML选择/选项设置; 我希望返回一个值,但是该值的标签也应该使用WSDL公开.
例如:客户希望添加关于他/她房屋的保险单,因此需要指定所涉及的建筑类型.
<xsd:restriction base="xsd:string">
<xsd:enumeration value="00001" />
<xsd:enumeration value="00002" />
<xsd:enumeration value="00003" />
</xsd:restriction>
Run Code Online (Sandbox Code Playgroud)
但是,客户还不了解这些值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>
Run Code Online (Sandbox Code Playgroud)
用户可以很好地向消费者展示这些标签.
这种结构是否有任何标准的WSDL注释/语法?
这种结构是否有任何标准的WSDL注释/语法?
恐怕不是.XML Schema enumeration用于将值约束在指定的可能值集合中.当您的客户端向您发送请求时,具有限制类型的元素将仅允许(在您的情况下)值为00001,00002或00003,否则它将无效.
限制仅指定值,不能添加标签.你最多可以添加一个,<annotation>但这只是文档.在客户端UI中,每个客户都有责任说00001实际上是"实体",而00002是"稻草"等.
如果您不想这样做,而是想要返回标签,那么您需要一个稍微复杂的对象,可能是这样的:
<option>
<key>00001</key>
<label>Brick and mortar</label>
</option>
Run Code Online (Sandbox Code Playgroud)
您提供标签,并使用以下架构限制密钥:
<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>
Run Code Online (Sandbox Code Playgroud)
您可以向客户端返回选项列表,他们可以在界面中显示它key作为值和输入中label的选项文本<select>,而在请求中您将获得所选值(即选定的值key).
| 归档时间: |
|
| 查看次数: |
20708 次 |
| 最近记录: |