Zum Inhalt springen

Transformationsalgorithmus oder wie geht man bei grösseren Projekten vor?


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...