SOAP: Zwracanie tablicy xsd: dowolnych elementów w PHP
Muszę zwrócić odpowiedź na wywołanie SOAP zgodnie z WSDL. Wszystko działa poprawnie, z wyjątkiem zwracania xsd: dowolnego elementu. Część WSDL, z którą mam problem (dotyczy odpowiedzi oczekiwanej).
xsd:complexType name="data" xsd:sequence xsd:any minOccurs="1" maxOccurs="unbounded" xsd:sequence xsd:complexType
Co próbowałem:
foreach($data as $name=>$value) { $object->data->any[$name] = $value; } return $object;
Wywołanie SOAP zwraca odpowiedź w następujący sposób:
..response> -data>value1value2value3value4-/data> .../response>
Chociaż przed zwróceniem obiektu, można zauważyć, że obiekt jest tworzony tak, jak powinien być:
$object->data->any[name1] = value1 $object->data->any[name2] = value2 etc...
Ale w odpowiedzi zwrotnej wszystkie wartości są po prostu umieszczane w jednym ciągu w jednym polu powrotu. Ten kod i zwrot działa poprawnie z dowolnym innym typem pola (na przykład xsd: string itp.).
Jak należy zwracać obiekt w przypadku xsd: dowolnego typu, aby uzyskać odpowiedź z wieloma polami zgodnie z nazwami i wartościami?
Dzięki