Je reçois des demandes SOAP d'un client qui utilise les bibliothèques Axis 1.4. Les demandes ont la forme suivante:Comment puis-je obtenir que Axis 1.4 ne génère pas plusieurs préfixes pour le même espace de noms XML?
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<PlaceOrderRequest xmlns="http://example.com/schema/order/request">
<order>
<ns1:requestParameter xmlns:ns1="http://example.com/schema/common/request">
<ns1:orderingSystemWithDomain>
<ns1:orderingSystem>Internet</ns1:orderingSystem>
<ns1:domainSign>2</ns1:domainSign>
</ns1:orderingSystemWithDomain>
</ns1:requestParameter>
<ns2:directDeliveryAddress ns2:addressType="0" ns2:index="1"
xmlns:ns2="http://example.com/schema/order/request">
<ns3:address xmlns:ns3="http://example.com/schema/common/request">
<ns4:zipcode xmlns:ns4="http://example.com/schema/common">12345</ns4:zipcode>
<ns5:city xmlns:ns5="http://example.com/schema/common">City</ns5:city>
<ns6:street xmlns:ns6="http://example.com/schema/common">Street</ns6:street>
<ns7:houseNum xmlns:ns7="http://example.com/schema/common">1</ns7:houseNum>
<ns8:country xmlns:ns8="http://example.com/schema/common">XX</ns8:country>
</ns3:address>
[...]
Comme vous pouvez le voir, plusieurs préfixes sont définis pour le même espace de noms, par exemple l'espace de noms http://example.com/schema/common a les préfixes ns4, ns5, ns6, ns7 et ns8. Certaines requêtes longues définissent plusieurs centaines de préfixes pour le même espace de noms.
Cela provoque un problème avec le processeur XSLT Saxon, que j'utilise pour transformer les demandes. Saxon limite le nombre de préfixes différents pour le même espace de noms à 255 et déclenche une exception lorsque vous définissez plusieurs préfixes.
L'Axe 1.4 peut-il être configuré pour définir des préfixes plus intelligents, de sorte qu'il n'y a qu'un seul préfixe pour chaque espace de noms?
J'ai exactement le même problème. Je vais regarder ce fil de près. –