Recibo solicitudes SOAP de un cliente que usa las bibliotecas de Axis 1.4. Las solicitudes tienen la siguiente forma:¿Cómo puedo lograr que Axis 1.4 no genere varios prefijos para el mismo espacio de nombres 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>
[...]
Como se puede ver, varios prefijos son definidos por el mismo espacio de nombres, por ejemplo, el espacio de nombres http://example.com/schema/common tiene los prefijos ns4, ns5, ns6, ns7 y ns8. Algunas solicitudes largas definen varios cientos de prefijos para el mismo espacio de nombres.
Esto causa un problema con el procesador Saxon XSLT, que utilizo para transformar las solicitudes. Saxon limita el número de prefijos diferentes para el mismo espacio de nombres a 255 y lanza una excepción cuando define más prefijos.
¿Se puede configurar Can Axis 1.4 para definir prefijos más inteligentes, de modo que solo haya un prefijo para cada espacio de nombres?
Tengo exactamente el mismo problema. Voy a estar viendo este hilo de cerca. –