我似乎无法找到如何将属性设置为SOAP请求,而无需使用XSD_ANYXML编码。具有属性的SOAP请求
的请求参数应如下所示
<request
xmlns:ns="/some/ns">
...
<ns:parameter attr="some attribute">
value
</ns:parameter>
...
</request>
当然,下面的代码工作,但它是相当丑陋(丑陋的,因为它使用了字符串连接,它应该使用SOAP_Client API因为它不要使用一般的命名空间)
$param = new SoapVar(
'<ns_xxx:parameter xmlns:ns_xxx="/some/ns" attr="some attribute">
value
</ns_xxx:parameter>',
XSD_ANYXML
);
是否有更好的方法来创建一个命名空间和属性的SOAP请求参数?
我在找s.th.像下面的(这使用SoapVar API只是一些伪代码):
$param = new SoapVar(
array(
'_' => 'value',
'attr' => 'some attribute'
),
SOME_ENCODING,
null,
null,
null,
'/some/ns'
);
我不像SOAP那样精通SOAP,但它是否支持具有属性的请求? (我知道WSDL具有属性,但是它如何处理发送给它的XML中的属性?)您是在创建服务还是已经设置好了?如果它是你的服务,我会删除属性部分,并将其移动到参数中它自己的元素。也许作为一个无价值的元素,比如' ' –
Anthony
2009-08-25 10:39:58
@Anthony:我不幸地不控制SOAP服务器,并且对服务定义没有影响;(当然,我可以将属性设置为一个元素 – 2009-08-25 18:30:48