我正在尝试编写SOAP调用,并且示例请求如下:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://server.opsware.com" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Header/>
<soapenv:Body>
<ser:attachPolicies soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<self xsi:type="xsd:anyType">?</self>
<policies xsi:type="ser:ArrayOf_xsd_anyType" soapenc:arrayType="xsd:anyType[]"/>
</ser:attachPolicies>
</soapenv:Body>
</soapenv:Envelope>
关于ArrayOf_xsd_anyType
可能意味着什么或如何找到有效选项的任何想法?
答案 0 :(得分:1)
仅是为了阐明您的术语,您显示的不是WSDL,而是示例SOAP服务的SOAP请求。 WSDL是一个XML文档,描述了请求和响应中使用的XML类型以及PortType,Binding和Service信息。
对于anyType
,此链接提供了其用法的清晰概述:
https://www.ibm.com/support/knowledgecenter/SSFTDH_8.0.0/com.ibm.wbpm.main.doc/topics/cbo_usinganytype.html
但是TL; DR是这样的:“ anyType允许任何数据对象,而与类型无关。如果maxOccurs> 1,则列表中的每个数据对象可以[是]不同的类型。”
这与“ complexType”相反,后者仅限于一种类型。例如,如果您有一个complexType
数据数组,则所有数组值都必须是同一类型(“客户”,“地址”等)。
答案 1 :(得分:1)
名称ser:ArrayOf_xsd_anyType
表示您希望在模式中为命名空间xmlns:ser="http://server.opsware.com"
定义的类型。
我不知道在哪里可以找到该模式;希望此消息的收件人知道它。该页面可能会有所帮助:https://en.wikipedia.org/wiki/Opsware