PHP SoapClient: définir un espace de noms sans préfixe

voix
0

Je consomme un service SOAP WSDL à l'aide de PHP SoapClient. Le XML généré contient les définitions d'espaces de noms suivants:

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

Et les éléments de cet ns1espace de noms sont toutes préfixées avec ns1:elementName.

Le fournisseur de services dit que cela est faux , et ils veulent que ces éléments sans le préfixe, même si le WSDL définit une exigence pour elle: xmlns:tns=WebApplicationImport elementFormDefault=qualified.

Une solution consiste à effectuer les opérations suivantes avant d' envoyer le XML: $xml = str_replace(':ns1', '', $xml);. Cela fonctionne, mais est clairement un hack, et je ne suis pas fan de hacks.

Est - il possible de dire SoapClientà gérer un espace de noms spécifique par défaut / ne préfixe pas? Ce que je voudrais obtenir est <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns=WebApplicationImport>avant de générer le reste de l'enveloppe, qui, en théorie, faire en sorte que tous les éléments de cet espace de noms sont également sans préfixe. Cela semble être la solution appropriée et valable pour moi.

Créé 24/10/2019 à 12:57
source utilisateur
Dans d'autres langues...                            

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