Ein Teil meines Projekts beinhaltet umfangreiche Transformationen von benutzerdefinierten Schemadokumenten. Ich muss in der Lage sein, Zielnamensräume zu ändern, Typenkreuzverweise zu unterstützen und wsdl
auf mehreren Schemadokumenten aufzubauen. Eine der am häufigsten verwendeten Operationen besteht darin, das Namensraumpräfix vor dem Importieren des Schemas in die wsdl-Datei zu ändern. Ich verwende org.xml.sax.ContentHandler
und die Methode startPrefixMapping
, um Namensräume zu behandeln. Alles funktioniert einwandfrei, es sei denn, ich möchte Elementtypen ändern.
Hier ist ein einfaches Schema-Fragment
das wie folgt in wsdl platziert werden muss:
Das Problem besteht darin, dass einige Attributwerte des Schemas (type
in , base
in ) namensraumbewusst sind und im obigen Beispiel geändert werden können. Soweit ich sehen kann, sind weder DOM- noch SAX-Parser in der Lage, mit dieser Situation umzugehen, sodass ich derzeit hässliche Zeichenfolgenoperationen verwende, um Namensrauminformationen aus bestimmten Attributwerten abzurufen.
Fehlt mir etwas? Gibt es APIs, Bibliotheken oder andere schema-spezifische Tools, um solche Aufgaben zu bewältigen?