我似乎無法找到如何將屬性設置爲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