Tôi không thể tìm ra cách đặt thuộc tính thành yêu cầu SOAP mà không sử dụng mã hóa XSD_ANYXML.Yêu cầu SOAP với thuộc tính
Các tham số yêu cầu nên xem xét như sau
<request
xmlns:ns="/some/ns">
...
<ns:parameter attr="some attribute">
value
</ns:parameter>
...
</request>
Tất nhiên đoạn mã sau hoạt động, nhưng nó khá xấu xí (xấu xí, vì nó sử dụng nối chuỗi mà nó nên sử dụng API SOAP_Client và bởi vì nó không sử dụng không gian tên chung)
$param = new SoapVar(
'<ns_xxx:parameter xmlns:ns_xxx="/some/ns" attr="some attribute">
value
</ns_xxx:parameter>',
XSD_ANYXML
);
Có cách nào tốt hơn để tạo tham số yêu cầu SOAP với không gian tên và thuộc tính không?
Tôi đang tìm kiếm s.th. như sau (đây chỉ là một số mã giả sử dụng SoapVar API):
$param = new SoapVar(
array(
'_' => 'value',
'attr' => 'some attribute'
),
SOME_ENCODING,
null,
null,
null,
'/some/ns'
);
Tôi không thông thạo SOAP như tôi muốn, nhưng nó có hỗ trợ các yêu cầu với các thuộc tính không? (Tôi biết WSDL có các thuộc tính, nhưng nó xử lý các thuộc tính trong XML được gửi đến nó như thế nào?) Bạn có đang tạo dịch vụ hoặc đã được thiết lập chưa? Nếu đó là dịch vụ của bạn, tôi sẽ thả phần thuộc tính và di chuyển nó đến phần tử riêng của nó trong tham số. Có lẽ như là một phần tử không có giá trị, như ' ' –
Anthony
@Anthony: tôi không may điều khiển máy chủ SOAP và không ảnh hưởng đến định nghĩa dịch vụ, (khác, tất nhiên, tôi chỉ có thể làm cho thuộc tính là một phần tử –