В отличие от элемента, значение которого является чем-то простым, например, int или string, XmlNode
является более сложной структурой, это элемент XML.
Внутри WSDL службы вы найдете следующее для элемента AddLeads
:
<s:element name="AddLeads">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="username" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="leads">
<s:complexType mixed="true">
<s:sequence>
<s:any/>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
Это схема для элемента AddLeads
. Схема будет использоваться для проверки предоставленной вами разметки.
Обратите внимание, что username
и password
имеют строку типа, тогда как leads
является "любым" сложным типом. Это будет означать сообщение, подобное этому:
<soapenv:Body>
<AddLeads>
<username>foo</username>
<password>bar</password>
<leads>
You may enter ANY elements at this point
</leads>
</AddLeads>
</soapenv:Body>
Но «любой» сложный тип является немного более широким в качестве определения, поэтому создатели веб-службы решили ограничить его тем, что они признают полезной информацией. Следующая схема ограничивает «any» в контексте операции AddLeads
:
http://service.leads360.com/Documentation/Schemas/Client/Leads.Request.xsd
, для которого допустимым является следующее:
http://service.leads360.com/Documentation/Examples/Client/AddLeads.leads.xml
Я не знаю PHP, но ваш код должен генерировать сообщение, которое соответствует типу WSDL веб-сервиса leads
.
Я предлагаю вам использовать такой инструмент, как SoapUI , для создания запросов на вызов веб-службы. Как только вы получите правильное содержание сообщения с успешным ответом, адаптируйте ваш PHP-код для генерации того же формата. Вы также найдете (еще один инструмент) TCP Monitor , который очень полезен для просмотра обмена сообщениями между вашим клиентом и веб-службой.