XML wird in den letzten Jahren immer öfters verwendet. Mittlerweile werden viele Informationen in XML gespeichert. Das gilt sowohl für XML- Datenbanken als auch für XML- Dokumente, die auf dem Dateisystem gespeichert sind. Diese Informationen können strukturiert, semi- strukturiert oder relativ nicht strukturiert (z.B. Bücher) sein. Noch mehr Informationen werden zwischen verschiedene Systeme vorübergehend als XML ausgetauscht. Die Informationen, können für verschiedene Zwecke gebraucht werden. In diesem Fall sind verschiedene Elemente von Interesse. Aus diesem Grund kann es wünschenswert sein, diese Daten entsprechend formatiert und transformiert zu bekommen.
XQuery (kürz. XML Query Language) ist eine vom W3C spezifizierte Abfragesprache. XQuery wurde implementiert um genau diese Anforderungen zu erfüllen. Mit XQuery ist es möglich XML- Elemente zu selektieren, die Datenstruktur zu reorganisieren oder zu transformieren. Es ist ebenfalls möglich die Ergebnisse, die von der Abfrage zurückgegeben werden, in einer gewünschten Struktur auszugeben. XQuery bietet viele Features, die viele verschiedene Operationen an XML- Daten und Dokumente ermöglichen.
Inhaltsverzeichnis
1. Einführung
1.1. XML als Sprache
1.2. Was ist eine Abfrage?
1.3. Warum ist XQuery nötig?
1.4. Das Beispiel
2. Datenmodell
2.1 Knoten
2.1.1 Knotenhierarchie
2.1.2 Knotenfamilie
2.1.3 Knotenidentität
2.2 Atomic Values
2.3 Sequenzen
2.4 Namespaces
2.5 Das Datenmodell als Baum
2.6 Das Datenmodell als Sequenz
3. XQuery als Abfragesprache
3.1 Input Funktionen
3.2 Navigieren durch den XML-Baum
3.2.1 Schritte
3.2.2 Achsen
3.2.3 Knotentests
3.2.4 Prädikate
3.2.4.1 Werteprädikat
3.2.4.2 Prädikate für Position
3.2.4.3 Das Kontext- Item
3.2.4.4 Der Baum in beiden Richtungen durchlaufen
3.2.4.5 Vergleich zwischen verschiedene Baumzweige
3.2.4.6 Finden eines Elements anhand seinen Namen
3.3 Erzeugen von XML Knoten und Attributen
3.3.1 Miteinbezogene Elemente und Attribute aus der Input- Dokument
3.3.2 Direkte Element- Konstruktoren
3.3.3 Computed Constructors
3.4. Verbinden und Restrukturieren von Knoten (FLWOR)
3.4.1 „For“ und „Let“ Klausel
3.4.2 „Where“ Klausel
3.4.3 „Order by“ Klausel
3.4.4 „Return“ Klausel
3.4.5 Joins
3.5 Operatoren und Bedingte Ausdrücke
3.5.1 Arithmetische Operatoren
3.5.2 Vergleichsoperatoren
3.5.3 Sequenz Operatoren
3.5.4 Bedingte Ausdrücke
3.6 Funktionen
3.6.1 Built-In Funktionen
3.6.2 Benutzerdefinierte Funktionen
4. Vergleich von XQuery mit anderen Technologien
4.1 Vergleich mit SQL
4.1.1 Relationales Model vs. XML Datenmodell
4.1.2 Syntax
4.1.3 Zusammenspiel von SQL und XQuery
4.2 Vergleich mit XSLT
4.2.1 Gemeinsame Komponenten
4.2.2 Unterschiede
5. Implementierungen
5.1 Saxon
5.2 eXist
6. Erweiterungen und Weiterentwicklungen von XQuery
6.1 Update Facility
6.2 Volltextsuche
6.3 XQuery 1.1
7. Zusammenfassung
Appendix A: Primitive Datentypen
Appendix B: Built-In Funktionen
Zielsetzung und Themen
Diese Master-Thesis zielt darauf ab, ein umfassendes Tutorial zur Abfragesprache XQuery zu entwickeln, um Anwendern den Umgang mit XML-Datenstrukturen sowie deren Transformation und Restrukturierung zu vermitteln. Die Arbeit führt in das XQuery-Datenmodell ein, erläutert die Navigation in XML-Bäumen und behandelt fortgeschrittene Themen wie Joins, benutzerdefinierte Funktionen und die Integration in relationale Datenbanken.
- Grundlagen von XML und XQuery sowie das XQuery-Datenmodell (XDM).
- Praktische Navigation und Abfrage von XML-Daten mittels Pfadausdrücken und FLWOR-Ausdrücken.
- Transformation und Restrukturierung von XML-Inhalten durch direkte und computed Konstruktoren.
- Vergleich von XQuery mit etablierten Technologien wie SQL und XSLT.
- Implementierungsbeispiele anhand von Saxon und der nativen XML-Datenbank eXist.
Auszug aus dem Buch
1.1. XML als Sprache
Die Extensible Markup Language (engl. für erweiterbare Auszeichnungssprache) abgekürzt XML, ist eine Auszeichnungssprache für Dokumente, die strukturierte Informationen enthalten [XMLcom01]. XML wird zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten verwendet. Es wird vor allem zum Austausch von Daten zwischen verschiedenen IT-Systemen über das Internet eingesetzt. Im Vergleich zu HTML sind die Tags (engl. für Auszeichnungselement) nicht fest definiert. Der Benutzer kann selbst neue Elemente und Attribute definieren und sie, entsprechend seinem Nutzen, benennen. Ein XML- Element kann unterschiedliche Daten enthalten und beschreiben. Meistens sind es Daten in Form von Texte, aber auch Grafiken oder abstraktes Wissen. Der wichtigste Punkt dabei ist, dass die Struktur (DTD und Schemata) und das Layout (CSS, XSL) streng voneinander getrennt sind. Auf diese Weise können ein und dieselben Daten z.B. einmal als Grafik und einmal als Tabelle ausgegeben werden. Daraus lässt sich schließen, dass die XML- Elemente den Inhalt beschreiben, und nicht seine Darstellung.
XML- Dokumente müssen sich an einigen Regeln halten („Wohlgeformtheit“):
Das Dokument hat genau ein Wurzelelement. Unterhalb dieses Wurzelelement können weitere Elemente mehrfach und verschachtelt vorkommen
Die Elemente mit Inhalt sollen zunächst geöffnet und anschließend geschlossen werden. Elemente ohne Inhalt können auch in sich geschlossen sein.
Zusammenfassung der Kapitel
1. Einführung: Diese Einleitung führt in die Bedeutung von XML als Sprache ein und begründet die Notwendigkeit von XQuery als Abfragesprache anhand von praktischen Anwendungsbeispielen.
2. Datenmodell: Hier wird das XQuery-Datenmodell (XDM) detailliert beschrieben, einschließlich Knotenarten, Baumstrukturen und Sequenzen, die die Grundlage für die Abfrageverarbeitung bilden.
3. XQuery als Abfragesprache: Dieses Kapitel erläutert die Navigation durch XML-Bäume, das Erzeugen von neuen Knoten sowie die mächtigen FLWOR-Ausdrücke zur Datenverbindung und Restrukturierung.
4. Vergleich von XQuery mit anderen Technologien: Ein Vergleich mit SQL und XSLT stellt die spezifischen Stärken von XQuery in der XML-Verarbeitung den traditionellen Ansätzen gegenüber.
5. Implementierungen: Vorstellung der Software Saxon und der nativen XML-Datenbank eXist, um die praktische Anwendung und Speicherung von XQuery-Abfragen aufzuzeigen.
6. Erweiterungen und Weiterentwicklungen von XQuery: Ein Ausblick auf die XQuery Update Facility, Volltextsuche-Erweiterungen und kommende Features wie XQuery 1.1.
7. Zusammenfassung: Abschließendes Fazit, das die Rolle von XQuery als leicht zu erlernende und unverzichtbare Sprache für die XML-Verarbeitung bekräftigt.
Schlüsselwörter
XQuery, XML, XPath, Datenmodell, FLWOR, Abfragesprache, Transformation, SQL, XSLT, eXist, Saxon, Knoten, Sequenzen, Informatik, Datenbanksysteme.
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Arbeit bietet ein umfassendes Tutorial zur Abfragesprache XQuery, das den Einstieg in die Abfrage und Transformation von XML-Daten ermöglicht.
Was sind die zentralen Themenfelder?
Im Zentrum stehen das XQuery-Datenmodell, Pfadausdrücke, die FLWOR-Syntax sowie der Vergleich und die Implementierung von XQuery-Lösungen.
Was ist das primäre Ziel der Arbeit?
Ziel ist es, den Lesern eine strukturierte Anleitung zu geben, wie sie komplexe XML-Daten effizient abfragen, strukturieren und in Datenbanken verwalten können.
Welche wissenschaftliche Methode wird verwendet?
Die Arbeit basiert auf der theoretischen Analyse von Spezifikationen und einem didaktischen Tutorial-Ansatz, begleitet von fortlaufenden Codebeispielen aus einer iTunes-Mediathek.
Was wird im Hauptteil behandelt?
Der Hauptteil gliedert sich in die Erläuterung des Datenmodells, die tiefgehende Beschreibung der Sprachfeatures von XQuery, einen Vergleich mit SQL/XSLT und die praktische Umsetzung in Implementierungen.
Welche Schlüsselwörter charakterisieren die Arbeit?
XQuery, XML, XPath, Datenmodell, FLWOR und Datenbank-Transformation sind die prägenden Begriffe.
Wie unterscheidet sich XQuery von SQL?
Während SQL auf tabellarische, relationale Daten ausgelegt ist, ermöglicht XQuery die flexible Navigation in hierarchischen Baumstrukturen von XML-Dokumenten.
Welche Rolle spielen FLWOR-Ausdrücke?
FLWOR-Ausdrücke (For, Let, Where, Order by, Return) sind die zentralen Bausteine von XQuery, um Datenquellen zu verbinden und Ergebnisse zu restrukturieren.
Warum wird eXist als Beispiel verwendet?
eXist dient als native XML-Datenbank, um zu demonstrieren, wie XQuery nicht nur zum Abfragen, sondern auch zum Speichern und Manipulieren von XML-Daten eingesetzt wird.
Welchen Ausblick gibt die Arbeit auf XQuery 1.1?
Die Arbeit thematisiert neue Anforderungen wie die 'group by'-Klausel und Fehlerbehandlungsmechanismen (try-catch), die in zukünftigen Versionen die Sprache nützlicher machen sollen.
- Quote paper
- Master of Science Dimitar Menkov (Author), 2009, Entwicklung eines Tutorials für XQuery, Munich, GRIN Verlag, https://www.grin.com/document/136542