Xml yüküne SOAP zarf kökünden ad Taşı

1 Cevap php

Ben soap Zarfı kök düğümünde bir ad beyan yazdı kodlanmış bir RPC PHP hizmetinden döndürülen bir sabun zarf var. Ancak, ad soap gövde xml yükün kök düğüm olmak istiyorum. Temelde, ben bunu istiyorum:

<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:ns1="http://sample.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org
/soap/encoding/">
  <SOAP-ENV:Body>
    <ns1:ServiceResponse>
       <outgoingVar1>true</outgoingVar1>
    </ns1:ServiceResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Bu olmak için:

<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org
/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-
ENC="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body>
    <ServiceResponse xmlns="http://sample.com">
       <outgoingVar1>true</outgoingVar1>
    </ServiceResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

şu anda haliyle ve burada benim açıklamalı (önemsiz alanı bildirimleri dışında kalan) WSDL olduğunu:

<wsdl:definitions name="IJLSoapResponse" targetNamespace="http://casey.com" tns="http://casey.com" xmlns:samp="http://sample.com" ...>
<wsdl:types>
	<xsd:schema targetNamespace="http://casey.com" ...>
		<xsd:element name="incomingVar1" type="xsd:string" nillable="true"/>
		<xsd:element name="incomingVar2" type="xsd:string" nillable="true"/>
	</xsd:schema>
	<xsd:schema targetNamespace="http://sample.com" ...>
		<xsd:element name="outgoingVar1" type="xsd:boolean" nillable="true"/>
	</xsd:schema>
</wsdl:types>
<wsdl:message name="ServiceInput">
	<wsdl:part name="incomingVar1" element="tns:incomingVar1"/>
	<wsdl:part name="incomingVar2" element="tns:incomingVar2"/>
</wsdl:message>
<wsdl:message name="ServiceOutput">
	<wsdl:part name="outgoingVar1" element="samp:outgoingVar1"/>
</wsdl:message>
<wsdl:portType name="ServicePortType">
	<wsdl:operation name="ServiceMessage" parameterOrder="incomingVar1 incomingVar2">
		<wsdl:input name="ServiceMessageRequest" message="tns:ServiceInput"/>
		<wsdl:output name="ServiceMessageResponse" message="tns:ServiceOutput"/>
	</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ServiceBinding" type="tns:ServicePortType">
	<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
	<wsdl:operation name="ServiceMessage">
		<soap:operation soapAction="http://casey.com/soap/Service"/>
		<wsdl:input name="ServiceRequest">
			<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://casey.com"/>
		</wsdl:input>
		<wsdl:output name="ServiceResponse">
			<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sample.com"/>
		</wsdl:output>
	</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ServiceService">
	<wsdl:port name="ServicePort" binding="tns:ServiceBinding">
		<soap:address location="http://casey.com/soap/Service"/>
	</wsdl:port>
</wsdl:service>
</wsdl:definitions>

Yükü içine ad zorlamak amacıyla değiştirilebilir WSDL bir şey var mı? Ben boşuna birkaç farklı yerlere etrafında hareket denedim. Yardımlarınız için teşekkürler.

Bu doğrulama ya da benzer bir şey olmamak yere kadar wsdl ile yanlış bir şey görürseniz PS, sadece göz ardı ... orijinal geçerli kılınarak / / çalışıyor dağıtır. Ben ad koyabilirsiniz nerede hakkında daha fazla endişeleniyorum. Teşekkürler!

1 Cevap

SOAP mesajı tüketen oluyor kod yanlış bir şey yapıyor sürece ad beyan edilir nerede önemli olmamalı.

Yana iki örnek işlevsel olarak eşdeğer "sonra" ve onlar kadar WSDL bu konuda herhangi bir etkiye sahip olacak değil değişen, hem WSDL ile ilgili doğru "önce".