Wolfi123 Geschrieben 11. Februar 2008 Geschrieben 11. Februar 2008 Hallo Zussammmen, ich bin neu und habe auch gleich eine Frage an Euch Profis. Ich habe ein Projekt bei dem ich ein Transformationsalgorithmus entwerfen soll. Es existieren zwei Kommunikationspartner, die mit Hilfe von XML Nachrichten kommunizieren sollen. Dabei wird eine Asynchrone Kommunikation verwendet, sprich Queues und Topics. Das ist aber nicht das wichtigste. Diese beiden Ansprechpartner verwenden unterschiedliche XML Nachrichten. Diese sind änlich aufgebaut, aber trotzdem unterschiedlich. Ich sollte einen Adapter bauen, der die Nachrichten passend übersetzt. Ich habe zwei XML-Schemas zur Verfügung bekommen. Diese beiden sind ziemlich unfangreich, etwa 90 Seiten. Und manchmal so was von unübersichtlich, ich meine eine Definition verweist auf die andere und so weiter. Es dauert ziemlich lange, wenn ich versucht die Unterschiede einzelner Attribute rauszufinden, da die komplex aufgebaut sind. Ich habe mir das folgende Vorgehensweise ausgedacht: 1. Feststellung der Unterschiede zwischen den einzelnen Attributen oder Elementen. 2. XSLT oder änliche Techniken anwenden um die Nachrichten zu übersetzen... 1.: Wie kann ich die Unterschiede schneller festellen. Ich versuche jedes mal die Definitionen aus dem XML-Schema zu extrahieren oder zu isolieren. Dauert immer ziemlich lange, da zicht Verweise und immer unterschiedliche Namespaces. Kann ich es schneller machen? Automatisierung? Oder ein kleines Tool schreiben, der die alle dann rausschneidet und die separate Datei ablegt oder noch besser zusammenfast. Aber wie, bei verschied. Namespaces? 2.: Das ganze soll in Java statt finden, das ist nicht das Problem, sondern gibt es Alternativen für XSLT: Ich habe an eigene Sprache gedacht, die ich auch in XML Format defeniere und vom Adapter interpretieren lasse... Allgemeine Frage: Wie soll man am besten bei so einem Problem vorgehen? Gibt es bestimmte Techniken? Wie würdet Ihr das Problem lösen? Oder was ist die beste Lösung? Vielen Dank für Eure Aufmerksammkeit... Ich bin für jeden Tip dankbar... Vielen Dank im Voraus.. Gruß, Alex Zitieren
flashpixx Geschrieben 11. Februar 2008 Geschrieben 11. Februar 2008 Hallo, also persönlich würde ich da mit XML+XSLT arbeiten. Wenn es sich um statische Sachen, die nicht zu komplex sind kannst Du mit Hilfe eines Tools z.B. Altova XMLSpy machen. Sonst würde ich das ganze selbst parsen und die beiden Bäume automatisiert vergleichen, um die Unterschiede zu finden und daraus dann eine Übersetzung zu bauen, sprich Du kennst beide Endformate und dedektierst die Unterschiede HTH Phil Zitieren
Wolfi123 Geschrieben 12. Februar 2008 Autor Geschrieben 12. Februar 2008 Hi, ich habe mich entschieden XSLT und JDOM Technologien zu benutzen. Ich denke die beiden Technologien im wesentlichen JAVA + XML + XSLT können vermischt und kombiniert werden. Nun zu dem anderen Problem, was mir mehr Sorgen bereitet: Das ist nämlich die Differenzbildung. Die XML-Schemas sind einfach riesig um diese mit SpyXML zu bearbeiten. Deswegen muss ich die einzelnen Definitionen isolieren oder halt in einer separaten XML-Schema abspeichern. Hier ist ein Beispiel: Hauptdatei: <complexType name="ApplicationContext"> <annotation> <documentation/> </annotation> <sequence> <element name="factoryClass" type="string"/> <element name="url" type="anyURI"/> <element name="systemProperties" type="co:ArrayOfSystemProperties"/> </sequence> </complexType> Difinition aus einer anderen Datei: <complexType name="ArrayOfSystemProperties"> <annotation> <documentation/> </annotation> <sequence> <element name="property" type="tm:SystemProperty" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> Jetzt muss ich eine andere Datei öffnen um nach SystemProperty Definition zu suchen usw. Es ist einfach mühsam.... Ich könnte ein Tool schreiben, dass es automatisch mir die passenden Definitionen raussucht und in eine separate Datei abspeichert. Aber dann würde der XML-Spy-Tool meckern, da hier soviele Namespaces verwendet werden... Wie kann ich das Problem lösen? Gruß, Alex Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.