我正在编写一个带有PHP 5.2的SoapServer,以便将空缺列表返回给另一个应用程序。我的WSDL文档需要一个复杂的类型:
<xsd:element name="Vacancies">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Vacancy" type="ns:VacancyType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
我的函数是生成一个大的嵌套数组来组装每个空位,然后将数组数组(即:空位)返回给SoapServer。
不幸的是,每个数组都被编入索引。因此,职位空缺中的每个VacancyType元素都有一个独特的索引。这似乎抛弃了WSDL定义,返回给我的数据只会引发一个解析错误。我通常使用关联数组作为密钥对值,但是因为我正处理的是VacancyType的n个实例,因为没有唯一的引用而无法工作。
是否存在针对此类场景的已知解决方法(例如:可能是对象),还是应该重新编写WSDL文档以满足索引数组的需要?
由于
答案 0 :(得分:1)
根据http://sam.xnet.tk/post/15/php-soap-server-part-2/,rpc / literal样式与xsd序列一起使用。但是,我也无法使用document / literal包装样式。
答案 1 :(得分:0)
你试过nuSAOP了吗?不需要其他已安装的PHP库:
根据PHP文档,PHP支持SOAP 1.1,SOAP 1.2和WSDL 1.1的子集。
答案 2 :(得分:0)
毕竟,我找到了一个解决方案:我通过mysefl构建XML并使用
new SoapVar('<myitem>...</myitem><myitem>...</myitem>', XSD_ANYXML);