Я пытаюсь иметь дело с PHP-кодом, который обслуживает некоторые данные через WSDL. В файле WSDL есть два метода: один из них работает, другой – полностью идентичный.
GetAllProducts возвращает:
<ns1:GetAllProductsResponse> <describedProductArray> <DescribedProduct> <id> ... </id> <foo> ... </foo> </DescribedProduct> <Describedproduct> ... </DescribedProduct> ... </describedProductArray> etc
Но GetAllDischargedProducts возвращается
<ns1:GetAllDischargedProductsResponse> <dischargedProductArray> <DischargedProduct> <SOAP-ENC:Struct> <DischargeDate> ... </DischargeDate> <id> ... </id> </SOAP-ENC:Struct> <SOAP-ENC:Struct> <DischargeDate> ... </DischargeDate> <id> .. </id> </SOAP-ENC:Struct> ... </DischargedProduct> <dischargedProductArray>
Я должен избавиться от этих элементов и поместить каждый набор данных в отдельный элемент. Часть PHP выглядит нормально. Я предполагаю, что проблема находится где-то в файле WSLD.
Часть, которая описывает данные, такова:
<complexType name="DescribedProduct"> <complexContent> <extension base="self:Product"> <sequence> <element name="Name" type="self:Name" /> <element name="Barcode" type="self:Barcode" /> <element name="Exportation" type="boolean" /> <element name="Company" type="self:Company" /> <element name="Prescription" type="self:Prescription" /> <element name="CommercialForm" type="self:CommercialForm" /> <element name="IngredientArray" type="self:IngredientArray" /> <element name="DayToExcretion" type="self:DayToExcretion" /> </sequence> </extension> </complexContent> </complexType> <complexType name="DescribedProductArray"> <sequence> <element name="DescribedProduct" type="self:DescribedProduct" minOccurs="0" maxOccurs="unbounded" /> </sequence> </complexType> <simpleType name="DischargeDate"> <restriction base="date" /> </simpleType> <complexType name="DischargedProduct"> <complexContent> <extension base="self:Product"> <sequence> <element name="DischargeDate" type="self:DischargeDate" /> </sequence> </extension> </complexContent> </complexType> <complexType name="DischargedProductArray"> <sequence> <element name="DischargedProduct" type="self:DischargedProduct" minOccurs="0" maxOccurs="unbounded" /> </sequence> </complexType>