Guys,
I’m currently working with PHP’s SOAPClient and a WSDL provided to me by an organisation whose web service we need to use. I’ve made my way down the list no problem until I hit an item that is an array. How on earth do you pass it an array?
Here’s an example piece of code that I was given by the organisation:
<Address xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="__docType_Address[1]">
<m0:item0 xsi:type="m0:__docType_Address">
<CoreAddress xsi:type="m0:__docType_CoreAddress">
<AddressType xsi:type="xsd:string">MAIN</AddressType>
<BuildingNumber xsi:type="xsd:string"/>
<BuildingName xsi:type="xsd:string">Building Name</BuildingName>
<SubBuildingName xsi:type="xsd:string"/>
<Street1 xsi:type="xsd:string">Street Name</Street1>
<Street2 xsi:type="xsd:string"/>
<Locality1 xsi:type="xsd:string">Locality 1</Locality1>
<Locality2 xsi:type="xsd:string"/>
<Town xsi:type="xsd:string">Town</Town>
<County xsi:type="xsd:string"/>
<Postcode xsi:type="xsd:string">PO57 6DE</Postcode>
<CountryCode xsi:type="xsd:string"/>
<OrgName xsi:type="xsd:string"/>
<DeptName xsi:type="xsd:string"/>
<POBox xsi:type="xsd:string"/>
<DeliveryPoint xsi:type="xsd:string"/>
<ForeignAddress xsi:type="xsd:boolean">0</ForeignAddress>
</CoreAddress>
<TimeAtAddress xsi:type="m0:__docType_TimeAtAddress">
<Years xsi:type="xsd:int">3</Years>
<Months xsi:type="xsd:int">7</Months>
</TimeAtAddress>
</m0:item0>
</Address>
So, in the object that I’m passing to SOAPClient, I’m setting something like:
$Address->item0->…
That doesn’t work at all, I just get no <Address/> at all.
So, I try something like:
$Address = array($Item->CoreAddress->AddressType = ‘MAIN’…
That creates 19 examples of:
<item xsi:type=“ns2:__docType_Address”/>
So, how on earth do I pass these arrays to SOAPClient and have it process it as in the top example?