PHP SoapClient: beállíthat egy névtér előtag nélkül

szavazat
0

Én fogyaszt egy WSDL SOAP szolgáltatás használata PHP SoapClient. A generált XML tartalmazza az alábbi névtér meghatározásokat:

<SOAP-ENV:Envelope
    xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/
    xmlns:ns1=WebApplicationImport
    ....>

És az elemek ettől a ns1névtér mind előtaggal ns1:elementName.

A szolgáltató azt mondja, hogy ez a baj, és azt akarják ezeket az elemeket az előtag nélkül, bár a WSDL definiálja követelmény, hogy: xmlns:tns=WebApplicationImport elementFormDefault=qualified.

Az egyik megoldás az, hogy nem a következő elküldése előtt XML: $xml = str_replace(':ns1', '', $xml);. Ez működik, de nyilvánvalóan egy hack, és nem vagyok nagy rajongója a hack.

Van egy módja annak, hogy elmondja SoapClient, hogy kezelni egy adott névtér, mint az alapértelmezett / nem előtag ez? Mit szeretnék elérni az <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns=WebApplicationImport>előállítása előtt a többi borítékot, ami elméletileg biztosítja, hogy minden elem az adott névtér is előtag. Ez úgy tűnik, mint a megfelelő és érvényes megoldás számomra.

A kérdést 24/10/2019 12:57
a forrás felhasználó
Más nyelveken...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more