Ich erhalte SOAP-Anforderungen von einem Client, der die Axis 1.4-Bibliotheken verwendet. Die Anforderungen haben die folgende Form:Wie kann ich Axis 1.4 dazu bringen, mehrere Präfixe für denselben XML-Namespace nicht zu generieren?
<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>
[...]
Wie Sie sehen können, sind mehrere Präfixe für den gleichen Namensraum definiert, z.B. Der Namespace http://example.com/schema/common hat die Präfixe ns4, ns5, ns6, ns7 und ns8. Einige lange Anfragen definieren mehrere hundert Präfixe für denselben Namensraum.
Das verursacht ein Problem mit dem Saxon XSLT-Prozessor, den ich verwende, um die Anforderungen zu transformieren. Saxon begrenzt die Anzahl unterschiedlicher Präfixe für denselben Namespace auf 255 und löst eine Ausnahme aus, wenn Sie weitere Präfixe definieren.
Kann Axis 1.4 konfiguriert werden, um intelligentere Präfixe zu definieren, so dass nur ein Präfix für jeden Namespace existiert?
Ich habe genau das gleiche Problem. Ich werde diesen Thread genau beobachten. –