Übung-Foliensatz-01

Werbung
XML, QPATH, XQUERY:
NEUE KONZEPTE FÜR
DATENBANKEN
1. Übung
XML-Verarbeitung
Agenda
2

Verarbeitung von XML
 Allgemein
 Darstellungsformen
 APIs

& Bibliotheken
Übungen
 Aufgabe
1
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
Verarbeitung von XML
3




Darstellungsformen für XML-Infoset
API‘s & Bibliotheken
Parser
Sprachen
Abfrage
 Veränderung
 Skripte
 XPath, XSLT, XQuery, …


Speichern
Repository
 DBMS

XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
Motivation – Parser, APIs, …
4

Welche Bestandteile können sinnvoll zurück gegeben
werden?
Nicht in XML-Empfehlung definiert
 Information Infoset







Deserialisierung
Serialisierung
Validität
Flexibilität
Robustheit
Modellüberführung

Abstraktion
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
Darstellungsformen für XML-Infoset
5



Ereignisbasiert
Baumbasiert
Daten-/Objektorientiert
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
6
Darstellungsformen für XML-Infoset Beispiel
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
…
</bookstore>
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
7
Darstellungsformen für XML-Infoset Ereignisbasiert
XML-Dokument
Verarbeitung der XML-Daten
Veröffentlichen von Ereignissen
Anwendung
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
8
Darstellungsformen für XML-Infoset Ereignisbasiert
XML-Dokument
Verarbeitung der XML-Daten
Veröffentlichen von Ereignissen
Anwendung
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
9
Darstellungsformen für XML-Infoset Ereignisbasiert
XML-Dokument
Verarbeitung der XML-Daten
Veröffentlichen von Ereignissen
Anwendung
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
10
Darstellungsformen für XML-Infoset Ereignisbasiert
XML-Dokument
Verarbeitung der XML-Daten
Veröffentlichen von Ereignissen
Anwendung
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
11
Darstellungsformen für XML-Infoset Ereignisbasiert
XML-Dokument
Verarbeitung der XML-Daten
Veröffentlichen von Ereignissen
Anwendung
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
12
Darstellungsformen für XML-Infoset Ereignisbasiert
XML-Dokument
Verarbeitung der XML-Daten
Veröffentlichen von Ereignissen
Anwendung
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
13
Darstellungsformen für XML-Infoset Baumbasiert
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
14
Darstellungsformen für XML-Infoset Daten-/Objektorientiert
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
15
Darstellungsformen für XML-Infoset Daten-/Objektorientiert
Class title
{
string lang;
string text;
};
Class book
{
string category;
title Title_1;
author [] Author_1;
};
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
16
APIs & Bibliotheken zur XMLVerarbeitung

Vier Arten der Verarbeitung
1.
Ereignisbasiertes Push

2.
Ereignisbasiertes Pull

3.
XMLPULL, CyberNeko, StAX
Baum

4.
SAX, XNI
DOM, JDOM, dom4j, XOM, ElectricXML, etc.
Datenbindung (Marshalling)

Castor, Zeus, JAXB, JaxMe, etc.
Quelle: http://www.xom.nu/whatswrong/img6.html
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
APIs zur XML-Verarbeitung
17

Push APIs
 Nur
Lesezugriff
 Schnell
 Streamable
 Speicher-effizient
 Vollständig
 Von Grund auf korrekt
 Programme können sehr komplex und unbeherrschbar
werden
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
APIs zur XML-Verarbeitung
18

Pull APIs
 Nur
Lesezugriff
 Schnell
 Streamable
 Speicher-effizient
 In der Praxis werder vollständig noch korrekt
 Programme können sehr viel einfacher als SAX werden
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
APIs zur XML-Verarbeitung
19

Data Binding APIs
 Bildet
XML-Dokumente auf Klassen ab
 Lese- und Schreibzugriff
 Erlaubt in-memory Manipulation
 Verbirgt XML-Details
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
APIs zur XML-Verarbeitung
20

Probleme mit Data Binding
 Annahmen:
Dokumente besitzen Schema
 Dokumente sind valide
 Strukturen sind meist flach und nicht rekursiv
 Dokumentzentrierte (textlastige) Dokumente sind es nicht
wert beachtet zu werden
 Gemischter Inhalt existiert nicht
 „Choices“ existieren nicht
 Reihenfolge spielt keine Rolle

 Sicht
der Welt durch die Objekt-gefärbte Brille
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
APIs zur XML-Verarbeitung
21

Tree APIs
 Modellieren
eines XML-Dokuments durch Verwenden
von Klassen zum Abbilden von Knoten
 Komposition lässt einen Baum entstehen
 Lese- und Schreibzugriff
 Erlaubt in-memory Manipulation
 Die einfachste beliebige(arbitrary) XML-API
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
APIs zur XML-Verarbeitung
22

JAXB: Java Architecture for XML Binding

definiert Mechanismus
zum Schreiben von Java-Objekten als XML-Dokument
(Marshalling)
 zum Erzeugen von Java-Objekten aus XML-Dokumenten
(Unmarshalling)


JAX-RPC: Java API for XML-based Remote Process
Communications/Call

definiert Mechanismus


zum Austausch synchroner XML-Nachrichten als Remote Procedure
Calls (z.B. für SOAP-RPC)
JAXM : Java API for XML Messaging

definiert Mechanismus

zum Austausch asynchroner XML-Nachrichten (z.B. für SOAPDokumente und ebXML)
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
APIs zur XML-Verarbeitung
23

JAXR: Java API for XML Registries
 definiert
Mechanismus
zum Veröffentlichen verfügbarer Dienste in einer externen
Registry
 zur Suche von Diensten in einer solchen Registry (z.B. für
UDDI und ebXML Registry).

XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
APIs zur XML-Verarbeitung
24

JAXP: Java API for XML Processing (Auch: Java API for
XML Parsing)
Einheitliche API für XML-Parser unter Java (stellt StandardSchnittstellen zum Parsen und Manipulieren von XMLDokumenten zur Verfügung)
 Umfasst DOM, SAX und XSLT und kann verschiedene XMLParser einbinden (über einen 'pluggability Layer')
 Ist ab J2SE 1.4 enthalten
 Project X Parser (von Sun in JAXP-Paket) Referenzimplementation eines Parsers nach dieser API
 Überlässt die Wahl des Parsers dem Programmierer



Plugability Layer – zum Festlegen des zu benutzenden Parser
Parser die JAXP-Schnittstellen entsprechen


Apache Xercex-J Parser
Project X Parser
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
Bibliotheken zur XML-Verarbeitung
25

dom4j: DOM for Java
 Alternative/Erweiterung
Features
zu JDOM mit besonders vielen
XML, XPath und XSLT unter Verwendung des Java
Collections Framework
 Volle Unterstützung für DOM, SAX und JAXP.

XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
SAX
26

Simple API for XML











Programmierschnittstelle für verschiedene Programmiersprachen
ist eine ereignisorientierte Methode zum Verarbeiten von XML
(per DocumentHandler-Schnittstelle und registrierte
Callbackfunktionen)
bearbeitet/durchläuft das XML-Dokument sequenziell von oben
nach unten
Push Parser
Verarbeitung sehr großer Dokumente möglich
wird nicht im Hauptspeicher gehalten
kein Object Model
XML-Dokumente können nur gelesen aber nicht erzeugt werden
schnell und einfach
ideal für alle Anwendungen, die ein XML-Dokument nur einmal
"durchlesen" sollen, beispielsweise um es anzuzeigen
konkurriert mit DOM
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
StAX
27

Streaming API for XML
 JSR
173 (Java Specification Request)
 Pull-Parsing-Mechanismus
 dritte Darstellungsform von XML-Infoset

durch XMLEvent-Klassenhierarchie als eine Liste von
XMLEvent-Objekten (wiederverwendbar)
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
AXIOM
28

Axis Object Model

API einfach und leichtgewichtig gestaltet








Tiefe der Klassenhierarchie sowie Anzahl von Methoden und
Attributen der Klassen möglichst gering gehalten
XML-Infoset-konform
Aufgeschobener oder verzögerter Aufbau (Engl.: deferred
building) des Objektmodells nur auf Anforderung
StAX-basiert
SOAP-Optimierung - zusätzliche Schicht mit SOAP-spezifischen
Modellklassen
XOP/MTOM (Unterstützung binärer Daten)
XPath - JAXEN als XPath Engine
Quellen

http://entwickler.de/zonen/portale/psecom,id,101,online,1195,.html
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
DOM
29

Document Object Model


DOM Level 0






DOM Core (DOM-Kern)
Bewegen im DOM-Baum
Manipulation der Knoten
Einfügen neuer Elemente
Setzen von Attributen
DOM Level 2



mittels JavaScript nutzbare Techniken zum Zugriff auf HTML-Dokumente
DOM Level 1


W3C-Standard für Programmierschnittstelle für verschiedene Programmiersprachen
DOM Core: u. a. Erweiterung um XML-Namensraum-Unterstützung
DOM HTML, DOM Style, DOM CSS, DOM Views, DOM Events, DOM Traversal and Range
DOM Level 3


DOM 3 Core: umfassende Erweiterung, u. a. verbesserte Ausnahmebehandlung und Umgang mit
Zeichenkodierungen
Load & Save




Serialisierung von Dokumenten oder Dokumentteilen
Parsen von XML-Dokumenten
Versenden und Abrufen von XML-Dokumenten über HTTP wie mit XMLHttpRequest-Technik
XPath, Events erweitert, Validation, Views und Formatting
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
DOM – Forts.
30

XML-Zugriff über einen Objektbaum










komfortabler als SAX
aber für größere Dokumente ungeeignet
stellt Klassen, Schnittstellen und Methoden zur Verfügung,
die eine hierarchische interne Darstellung eines XMLDokuments erlauben
Objektbaum wird im Hauptspeicher gehalten
XML-Dokumente können gelesen und erzeugt werden
DOM-API bietet Möglichkeiten zum Zugriff und
Verändern des Baums
geeignet für interaktive Anwendungen
DOM aufwendiger (nicht so effizient) wie SAX
benötigt mehr Speicher als SAX
konkurriert mit SAX
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
DOM – Forts.
31

Document Object Model
zum Einsatz auf vielen verschiedenen Plattformen Spezifikation in der plattformunabhängigen Sparche
IDL der Object Management Groupe (OMG) verfasst
 IDL: Interace Definition Language

wird in der CORBA Spezifikation beschrieben
 DOM
nur Vorlage, die erst für verschiedene
Programmierumgebungen implementiert werden muss
 Für viele Sprachen wie z.B. Java, C++, Perl sind DOM
Impementierungen frei verfügbar
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
DOM – Forts.
32

Document Object Model
zum Einsatz auf vielen verschiedenen Plattformen Spezifikation in der plattformunabhängigen Sparche
Genau
auch
das Problem!
IDLhier
derliegt
Object
Management
Groupe (OMG) verfasst
•Zuviele
Details zu
berücksichtigen
IDL: Interace
Definition
Language
•Dadurch
zuin komplex
 wird
der CORBA Spezifikation beschrieben
•Zuunkonkret
DOM nur Vorlage, die erst für verschiedene
(keine Ausnutzung individueller Sprachfeatures möglich)
Programmierumgebungen implementiert werden muss
•Zur Verwendung muss man Experte in XML und DOM sein!
 Für
viele Sprachen wie z.B. Java, C++, Perl sind DOM
Impementierungen frei verfügbar
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
JDOM
33



Java-Bibliothek
Bietet Programmierschnittstelle
Erstellt einen an Java angepassten Objektbaum aus
dem XML-Dokument




Stellt Klassen, Schnittstellen und Methoden zur Verfügung,
die eine hierarchische interne Darstellung eines XMLDokuments erlauben
Objektbaum wird im Hauptspeicher gehalten
API bietet Werkzeuge zum Zugriff und Verändern des
Baums
XML-Dokumente können gelesen und erzeugt werden
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
JDOM
34

Zum einfachen und effizienten Lesen, Verändern und
Schreiben von XML mit Java
Einfacher zu verwenden als DOM durch den Einsatz
konkreter Klassen
 Interoperabilität durch XML, nicht durch die API
 Java API läuft lediglich auf einem System
 XML-Dokument muss portabel sein
 Viele Methoden für individuelle Funktionen




Geeignet für interaktive Anwendungen
Konkurriert mit DOM & SAX
Integriert Bestandteile von DOM & SAX
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
JDOM
35





Kein Parser wie Xerces
Verwendet XML Parser zum Verarbeiten von XMLDokumenten
JDOM's SAXBuilder Klasse verwendet SAX
Ereignisse eines XML-Parsers zum Erzeugen des
JDOM-Baumes
Standard-Parser von JDOM ist der JAXP-Parser
Kann nahezu jeden Parser verwenden
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
JDOM - Links
36

JDOM – Homepage


JDOM v1.0 API Specification


http://www.jdom.org/
http://www.jdom.org/docs/apidocs/
Tutorial (XML, DOM, SAX, JAXP und JDOM mit Java)



http://www.jdom.org/docs/oracle/jdom-part1.pdf
http://www.torsten-horn.de/techdocs/java-xml.htm
JDOM Tutorial


http://www.torsten-horn.de/techdocs/java-xml.htm#Programmierbeispiele
Model

http://www.cafeconleche.org/books/xmljava/chapters/ch15.html
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
JDOM - Installation
37

JDOM-Paket downloaden
 http://www.jdom.org/dist/binary

Entpacken & Pfad-Variablen setzen (Pfad-zumJDOM-Verzeichnis = PzJV):
set Classpath= PzJV\jdom.jar;%CLASSPATH%
export …
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
XOM
38

XOM (http://www.xom.nu/)
 Einfach
gehaltene API
 Basiert auf Erfahrungen mit JDOM
 Akzeptiert und produziert nur wohl geformtes XML
 Duale streaming-/baumbasierte API

Zugriff auf Dokumentteile bereits während des Parsens
 In-Memory-Modell

Filtern der Informationen bereits beim Strukturaufbau
 Streaming

Verarbeitung Gigabyte großer XML-Dokumente
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
XOM
39


Verwendet Xerces zum Parsen
Unterstützung von








Konvertierung von und nach SAX & DOM
Java-Bibliothek


Namespaces
XPath
XSLT
XInclude
xml:id
Canonical XML
java -classpath xom-samples.jar:xom-1.1.jar nu.xom.samples.PrettyPrinter
filename.xml
Artikel

http://www.ibm.com/developerworks/library/x-matters32.html
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
XOM – Unterschiede zu JDOM
40








Eine gemeinsame Node Superklasse
getValue Methode, welche XPath-Ergebnisse für jeden
Knoten liefert
toXML Methode, welche einen String zurückgibt der die
XML-Serialisierung des Knoten enthält
Kanonische Unterstützung von XML
XInclude
Streaming von Dokumenten, welche größer als der
Hauptspeicher sind
Well-formedness safe subclassing
Bessere Unterstützung invalider Dokumente

Validierung ohne Abweisen invalider Dokumente, …
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
XML-Parser
41

XML-Prozessoren


Einlesen und Verarbeiten von XML-Dokumenten
XML-Parser
Modul eines XML-Prozessors zum Einlesen
 Zur Verfügung stellen der Informationen für eine darüber
liegende Anwendung


Implementierungen

Xerces
kann über JAXP verwendet werden
 SAX (Version 1&2)
 DOM (Level 1&2)


Crimson, Gnome XML-Parser, …
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
Übungen
42
~drei bis vier
ery
XML-APIs
XQ
u
Im-/
Exp
mit D ort von
XML
aten
b
g
anke
n
u
n
r
e
i
ex
n
L-I
d
XM
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
1. Übung - Aufgabenstellung
43


Darstellung und Manipulation von XML-Dokumenten mit
(mind.) JDOM, XOM oder AXIOM
Fragestellungen:







Städte Griechenlands
Wüsten, Berge, Flüsse
Bevölkerungsdichte, Höhe, Koordinaten, Ausdehnung, …
Drei-Länder-Ecks
Quelle: Mondial Datenbank als aufbereitetes XMLDokument
Quelle einlesen und XML-Dokument mit Antworten ausgeben
Passende XML-DTD erzeugen und zuweisen
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
1. Übung
44

Mondial (http://www.dbis.informatik.uni-goettingen.de/Mondial/)


Datenbank mit geografischen Daten (Uni Göttingen)
Verschiedene Formate


Integration nach XML in Form einer Falluntersuchung zur Verwerndung des
LoPiX Systems (Implementierung der XML XML Anfrage- und
Datenmanipulationssprache XPathLog)
Internetquellen

CIA – The World Factbook (
https://www.cia.gov/library/publications/the-world-factbook/)





Länderinformationen als html
Statistiken
Zusätzl. Textquellen für Koordinaten
International Atlas von Kümmerly & Frey, Rand McNally und Westermann
Geographische Daten der Karlsruher TERRA Datenbank
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
Literaturangaben
45








http://www.w3.org
http://www.w3.org/TR/2004/REC-xml-20040204/
http://www.w3.org/TR/xml-infoset/
http://www.schumacher-netz.de/TR/2001/REC-xml-infose
http://www.w3.org/XML/Schema#dev
http://www.w3.org/TR/xmlschema-0/
http://www.edition-w3c.de/TR/2001/REC-xmlschema-0http://www.w3.org/DOM/
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
Literaturangaben
46









http://www.xom.nu/whatswrong/img6.html
http://xml.coverpages.org/xml.html
http://www.jdom.org/
http://www.jdom.org/dist/binary
http://www.jdom.org/docs/apidocs/
http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/ove
http://www.oracle.com/technology/oramag/oracle/02-s
http://www.torsten-horn.de/techdocs/java-xml.htm
https://www.cia.gov/library/publications/the-world-factb
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08
Martin Kost
Herunterladen