Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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

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

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.