• Keine Ergebnisse gefunden

Transformationen

Im Dokument Serielle Transformationen von XML (Seite 27-30)

Unter einer Transformation kann vereinfacht die Umwandlung eines XML-Dokuments in ein anderes XML-Dokument verstanden werden. Eine solche Transfor-mation ist somit eine Funktion, die ein Eingabe-XML-Dokument auf ein Ausgabe-XML-Dokument abbildet. Diese strenge Definition kann dahingehend verallgemeinert werden, dass anstelle allein stehender Dokumente jeweils eine Folge von XML-Fragmenten auf Eingabe- und Ausgabeseite erscheinen darf, mathematisch ausgedrückt als

trans: Ξ* → Ξ*

wobei trans eine Transformationsfunktion und Ξ die Menge der XML-Fragmente bezeichnen soll.8

7UML = Unified Modeling Language; XMI = XML Metadata Interchange

8Die Notation Ξ* steht für die Vereinigung aller Ξn, nN und ist damit die Menge aller geordneten Folgen von XML-Fragmenten.

Dissertation, Oliver Becker, 1. Juli 2004

2.3  Transformationen 15

Die Transformation von XML-Dokumenten bzw. -Fragmenten kann aus unterschied-lichsten Gründen notwendig sein:

Überführung in ein Präsentationsformat

Die in XML repräsentierten Daten sollen veranschaulicht werden. Texte können so in XHTML oder XSLFO transformiert werden, um eine formatierte Darstellung zu erzeugen; Zahlen können über Diagramme in SVG visualisiert werden; jegliche in einem streng strukturierten Vokabular ausgezeichneten Daten können zur Ansicht in eine XHTML-Tabelle übertragen werden.

Austausch von Dokumenten

Sender und Empfänger von XML-Dokumenten verwenden häufig verschiedene Vokabulare. Dafür ist es jedoch nicht erforderlich, dass die beteiligten Software-komponenten viele verschiedene Vokabulare beherrschen. Vielmehr können die zu übermittelnden Daten unabhängig von Quelle und Ziel in einem separaten Transformationsschritt übersetzt werden.

Migration von Daten

Die Einbindung neuer Software kann die Anpassung der vorhandenen Daten an neue bzw. geänderte Vokabulare erfordern.

Filtern von XML-Inhalten

Wenn für die Weiterverarbeitung nur ein Teil der ursprünglichen XML-Daten relevant ist, kann eine Transformation einen Ausschnitt dieser Daten produzieren, indem sie bestimmte Bestandteile herausfiltert.

Anreichern der Daten

Im Zuge einer Transformation können Informationen hinzugefügt werden, bei-spielsweise Verweise auf Grafiken, eindeutige IDs, u.ä.

Kombination von Daten

Daten, die auf mehrere Einzeldokumente verteilt sind, können in ein gemeinsames Dokument überführt werden. So könnte ein spezielles Dokument die Funktion eines Wörterbuches übernehmen, das sprachabhängige Begriffe für die Erzeugung eines Präsentationsvokabulars enthält. Ein anderer Anwendungsfall wäre die Erzeugung eines gemeinsamen Dokuments, das durch die Vereinigung mehrerer gleichstrukturierter Einzeldokumente entsteht.

Umstrukturierung

Für viele Anwendungen ist es notwendig, Daten nach verschiedenen Kriterien zu sortieren oder nach unterschiedlichen Gesichtspunkten zusammenzufassen (gruppieren).

In der Praxis findet man häufig eine Kombination aus den genannten Fällen. Die Er-zeugung eines Stichwortverzeichnisses in XHTML aus einem DocBook-Dokument beinhaltet beispielsweise das Herausfiltern von Daten (der Stichwörter), eine Anrei-cherung mit zusätzlichen Informationen (Einbindung von kleinen Grafiken als Icons), eine Umstrukturierung (die alphabetische Sortierung) und schließlich die Umwandlung in ein Präsentationsformat (XHTML).

Abhängig davon, auf welcher Strukturierungsebene auf die Eingangsdaten zugegriffen werden muss, kann zwischen strukturellen und inhaltlichen Transformationen unter-schieden werden. Bei einer strukturellen Transformation werden die enthaltenen Daten selbst kaum modifiziert; sie finden sich zwar neu strukturiert aber inhaltlich weitgehend unverändert im Transformationsergebnis wieder. Diese Art von

Transfor-Serielle Transformationen von XML. Probleme, Methoden, Lösungen.

16 2  XML: Alles, was man wissen muss

mation ist die reine Änderung von Markup an einem ansonsten unveränderten Text.

Inhaltliche Transformationen hingegen werten darüber hinaus den textuellen Inhalt während der Transformation aus und modifizieren ihn gegebenenfalls.

Zur Illustration seien hier zwei Beispiele angegeben. Die folgende Abbildung wird von einer strukturellen Transformation vorgenommen:

Beispiel 2 Strukturelle Transformation Eingabe

<faq quelle="http://lists.xml.org/archives/xml-dev/...">

<frage>I've come across (while reading a document on WAP) a term &#x2013; <begriff>XML Middleware</begriff>.

...

Ausgabe

<faq>

<source>http://lists.xml.org/archives/xml-dev/...</source>

<question>I've come across (while reading a document on WAP) a term &#x2013; XML Middleware.

...

Hier wurden der Inhalt des Attributs quelle in ein zusätzliches Unterelement source verschoben und das Element frage in question umbenannt. Das Element begriff wurde durch seinen Inhalt ersetzt, d.h. im Ergebnis fehlt das Markup von begriff.

Ein Beispiel für eine inhaltliche Transformation hingegen wäre das Folgende:

Beispiel 3 Inhaltliche Transformation Eingabe

<faq quelle="http://lists.xml.org/archives/xml-dev/...">

<frage>I've come across (while reading a document on WAP) a term &#x2013; <begriff>XML Middleware</begriff>.

...

Ausgabe

<faq quelle="http://lists.xml.org/archives/xml-dev/...">

<frage>Ich bin (beim Lesen eines Dokumentes über WAP) auf einen Begriff gestoßen &#x2013; <begriff>XML

Middleware</begriff>.

...

Hier bleibt die Struktur des Dokumentes erhalten. Der textuelle Inhalt wurde jedoch fast komplett ausgetauscht.

Reale Anwendungsfälle für Transformation beinhalten in der Regel beide Komponen-ten – das Dokument wird sowohl strukturell als auch inhaltlich verändert. Inhaltliche Änderungen setzen jedoch Wissen über die Bedeutung des Dokuments und eine In-terpretation seines Inhalts voraus. Oftmals lassen sich keine einfachen Regeln für solche Änderungen formulieren. Eine sprachliche Übersetzung wie in Beispiel 3 ist sicher ein Extremfall. Ein in der Praxis häufiger anzutreffender Fall ist die Transfor-mation eines Elements

Dissertation, Oliver Becker, 1. Juli 2004

2.3  Transformationen 17

<date>2004-03-12</date>

in den Text

12. März 2004

Hier ist lediglich eine Abbildung von Zahlen auf Monatsnamen und die Umordnung von Jahr und Tag notwendig. Soll eine solche Transformation jedoch auch andere Datumsformate richtig interpretieren, so besteht wieder das Problem, aus einem prinzipiell beliebig aussehenden Datumstext dessen Struktur abzuleiten. Aber gerade zur Lösung solcher Probleme wurde generisches Markup, und also auch XML erfun-den. Bei Transformationen steht daher immer die Transformation der XML-Struktur im Vordergrund.

Formal betrachtet sind natürlich Fälle, in denen kein Zusammenhang zwischen XML-Eingabe und XML-Ausgabe besteht, ebenfalls Transformationen. Solche Transforma-tionen sind jedoch uninteressant, da für sie keine Transformations-Regeln formuliert werden können. Für die Ausführung von XML-Transformationen mit Hilfe eines Computers besteht die Herausforderung darin, die in der Realität vorhandenen Regeln möglichst einfach zu notieren und durch eine entsprechende Transformations-Software ausführen zu lassen.

Im Dokument Serielle Transformationen von XML (Seite 27-30)