【发布时间】:2012-07-11 22:28:27
【问题描述】:
我似乎无法使用 PHP SoapServer 让 XSD 元素在我的 wsdl 中工作。根据我所阅读的所有内容,并了解其他几家公司如何实施“松散类型”wsdls。以下内容应该足以检索和发送记录信息。
<complexType name="Record">
<sequence>
<any namespace="##targetNamespace" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</sequence>
</complexType>
不幸的是,似乎 php SoapServer 类丢弃了任何未严格定义的元素。我得到的是创建请求的空记录和检索/过滤请求的空记录,尽管这些字段在 SoapServer 处理之前就已经存在。
如果我像这样专门定义缺少的字段...
<complexType name="Record">
<sequence>
<element name="FirstName" type="xsd:string" minOccurs="0"/>
<element name="LastName" type="xsd:string" minOccurs="0"/>
<any namespace="##targetNamespace" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</sequence>
</complexType>
然后一切都很好,这些字段将传递给客户端/从客户端传递。我错过了什么吗?我已经尝试了所有命名空间选项##any、##local 等以及 processContents 选项。我只想能够发送/返回记录的额外字段,无论它们是否在架构中详细说明。
【问题讨论】:
标签: php xsd wsdl soapserver