Datenintegration und Datenaustausch mit XML-Techniken

Werbung
Datenintegration und
Datenaustausch mit
XML-Techniken
Orientation in Objects GmbH
Weinheimer Str. 68
68309 Mannheim
Version: 1.1
www.oio.de
[email protected]
Gliederung
•
•
•
eXtensible Markup
Language
Verarbeitung von XML
Datenbeständen
XML Datenbestände
•
Motivation und Ziele
•
•
Syntaktische Grundlagen
Namensräume
2
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
1
Markup
•
Markup bezeichnet jede Menge von Tags (Auszeichner), die zum
Inhalt eines Text-Dokuments hinzugefügt werden, um die
Bedeutung oder die Darstellung der Daten anzuzeigen.
•
•
•
•
RTF
LaTeX
HTML
SGML (Standard Generalized Markup Language, ISO, 1970)
3
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
HTML Tags
•
Physisch:
<i>Das ist in italics</i>
•
Logisch:
<em>Das ist wichtig</em>
•
Die Bedeutung (Semantik) wird durch die Spezifikation bestimmt
4
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
2
Probleme mit HTML
•
HTML ist speziell an die Darstellung von Information angepaßt,
aber nicht an deren Erfassung
•
HTML hat eine stürmische Entwicklung durchgemacht und ist den
Anforderungen nach und nach angepaßt worden
Versionen:
•
2.0 (1995)
3.2 (1997)
4.0 (1998)
Die geringe Strenge der Regeln macht automatische Verarbeitung
schwierig
5
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Unterschiede HTML - XML
HTML
XML
Flache Struktur
Hierarchien sind möglich
Kann nicht erweitert
werden
Definition eigener Tags
möglich
Kaum maschinell
verarbeitbar
Leichte maschinell
Verarbeitung
Layout steht im
Vordergrund
Daten und Struktur
stehen im Vordergrund
6
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
3
Semantische Tags
•
Semantische Tags beschreiben den Inhalt eines Elementes
<der-darzustellende-text>
Hallo
</der-darzustellende-text>
•
Semantische Tags sind frei wählbar und können jede Art von
Daten beschreiben
7
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Semantische Tags Beispiele
<artikel>Dauerlutscher</artikel>
<telefonnummer>0495556666777</telefonnummer>
<komponist>Johann Sebastian Bach</komponist>
<noten>bach</noten>
8
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
4
XML Definitionen
•
eXtensible Markup Language
•
ist eine verallgemeinerte Markupsprache
•
ist eine Metasprache zur Beschreibung von Markupsprachen
•
ist eine Untermenge von SGML
9
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Design goals
•
XML shall be straightforwardly usable over the Internet.
•
XML shall support a wide variety of applications.
•
XML shall be compatible with SGML.
•
It shall be easy to write programs which process XML
documents.
•
The number of optional features in XML is to be kept to the
absolute minimum, ideally zero.
•
XML documents should be human-legible and reasonably clear.
•
The XML design should be prepared quickly.
•
The design of XML shall be formal and concise.
•
XML documents shall be easy to create.
•
Terseness in XML markup is of minimal importance.
10
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
5
XML Standards
XML-Vokabulare
MathML
SVG
XForms
Voice-ML
XSL
XLink
Co-Standards
SMIL
XSLT
Schema
XHTML
XML
WML
XPath
XBRL
XPointer
Namespaces
SOAP
XML-EDI
CML
DocBook XML
11
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
W3C Recommendation Track
Recommendation
Proposed
Recommendation
Candidate
Recommendation
Last Call
Working Draft
Working Draft
12
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
6
Einfachstes XML-Dokument
<?xml version="1.0"?>
<hallo>
Hallo Welt!
</hallo>
13
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Gliederung
•
•
•
eXtensible Markup
Language
Verarbeitung von XML
Datenbeständen
XML Datenbestände
•
Motivation und Ziele
•
•
Syntaktische Grundlagen
Namensräume
14
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
7
Unicode
•
XML unterstützt Unicode: http://www.unicode.org
•
Je nach Kodierung werden bis zu 2 Byte pro Zeichen verwendet
•
Jedes Unicode-Zeichen kann durch eine Ersetzung referenziert
werden: &#code; oder &#xhexcode;
•
Beispiel: ©-Symbol: ©
©
©
15
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
XML Markup
• <? ... ?>
Processing Instruction
• <!-- ... -->
Kommentar
• <! ... >
Document Type Definition
• < ... >
Element Anfang
• </ ... >
Element Ende
• < ... />
Leeres Element
16
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
8
NMTOKEN
•
NMTOKEN (name token) sind Kombinationen aus Buchstaben,
Zahlen, Punkten, Doppelpunkten, Minuszeichen und Unterstrichen
•
Elementnamen sind NMTOKEN und beginnen mit einem
Buchstaben, einem Doppelpunkt oder einem Unterstrich
<_hallo>
<:hallo>
<Mein-Element:Hallo.Welt>
17
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Verschachtelung
•
Elemente dürfen verschachtelt werden
•
Die Verschachtelung muß vollständig sein, und es darf keine
Überschneidungen geben
•
Richtig:
Falsch:
<a>
<a>
<b></b>
<b></a>
</a>
</b>
18
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
9
Baumstruktur
•
Durch die Verschachtelung der Elemente kommt eine
Baumstruktur zustande
<cdkatalog>
cdkatalog
<cd>
<titel>Ray of Light</titel>
cd
<interpret>Madonna</interpret>
titel
</cd>
</cdkatalog>
interpret
19
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Wohlgeformtheit (Teil)
•
Prolog: <?xml version="1.0"?>
•
Es gibt genau ein Wurzel-Element
•
Elemente müssen vollständig verschachtelt sein
•
Wenn ein Element nicht leer ist, dann gibt es zu jedem
Startelement genau ein Endelement und umgekehrt
•
Ist ein Dokument nicht wohlgeformt, ist es nicht XML
20
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
10
Attribute
•
Attribute geben zusätzliche Information zu einem Element
•
Jedes Start-Tag kann beliebig viele Attribute besitzen
•
Für Attribute gelten die selben Namensbeschränkungen wie für
Elementnamen
•
Attribute müssen in Anführungszeichen stehen
<text farbe="rot" groesse="14pt">Hallo</text>
<text farbe='rot' groesse='14pt'>Hallo</text>
21
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Entity References und CDATA
•
Für besondere Zeichen werden Ersetzungen benutzt
&
<
>
"
'
•
&
<
>
"
'
In einem CDATA-Bereich werden keine Ersetzungen
vorgenommen
<![CDATA[
Hier kann alles stehen & < > " ' ]]>
22
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
11
Attribute
•
Durch Attribute können Varianten von Elementen beschrieben
werden
<element_A></element_A>
<element_B></element_B>
<element typ="A"> </element>
<element typ="B"> </element>
Beispiel:
<mitarbeiter geschlecht="weiblich">Schmidt</mitarbeiter>
23
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Attribute
•
Attribute können Kennzeichner- („Flag“- )Elemente ersetzen
<element> <flag/> </element>
<element flag="true"> </element>
Beispiel:
<mitarbeiter wichtig="ja">Thorsten Beyer</mitarbeiter>
24
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
12
Einfaches XML-Dokument
<?xml
version="1.0"
encoding="ISO-8859-1"
standalone="yes"?>
<!-- Dies ist ein einfaches XML Dokument -->
<seminar>
<titel>XML Einführung</titel>
<gebucht/>
<dauer einheit="Tage">3</dauer>
</seminar>
25
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Gliederung
•
•
•
•
•
•
eXtensible Markup
Language
XML Datenbestände
Verarbeitung von XML
Datenbeständen
Aspekte der Integration
Web Services
The Big Picture
•
Motivation
•
•
Syntaktische Grundlagen
Namensräume
26
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
13
Motivation
•
Jeder kann seine eigenen Elemente definieren
•
Mischen von Elementen aus verschiedenen Anwendungen?
<artikel>How to use XML</artikel>
<artikel>Dauerlutscher</artikel>
27
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
URI
•
Uniform Resource Identifiers bezeichnen jede adressierbare
Resource
•
URIs sind weltweit eindeutig: http://www.mycompany.com
•
Sie könnten zur Identifizierung von Vokabularien benutzt werden
<www.mycompany.com.artikel>
Dauerlutscher
</www.mycompany.com.artikel>
28
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
14
XMLNS
<?xml version="1.0"?>
<katalog xmlns:mc="http://www.sweets.com/ns"
xmlns:oio="http://www.oio.de/names">
<mc:artikel>Dauerlutscher</mc:artikel>
<oio:artikel>How to use XML</oio:artikel>
</katalog>
29
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Lokaler Name und QName
•
Man unterscheidet den lokalen Elementnamen vom qualifizierten
Elementnamen
•
Der qualifizierte Name (QName) ist durch ein Präfix mit einem
Namensraum verbunden
qualifizierter Name
<oio:artikel>
Präfix
lokaler Name
30
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
15
Noname-Namespace
•
Es kann auch ein präfixloser "Noname-Namespace" oder "DefaultNamespace" definiert werden
<?xml version="1.0"?>
<katalog xmlns="http://www.sweets.com/ns">
<artikel>Dauerlutscher</artikel>
</katalog>
31
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Gliederung
•
•
•
eXtensible Markup Language
•
DTD
Verarbeitung von XML
Datenbeständen
XML Datenbestände
•
•
W3C XML Schema
XML APIs
•
•
Xpath
XSLT
32
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
16
Document Type Definition (DTD)
•
Die Document Type Definition beschreibt die Struktur des
Dokuments mit Hilfe einer eigenen Syntax
•
Die DTD definiert nicht die Semantik der Elemente, sondern nur,
welche Elemente und Attribute wo vorkommen (Struktur bzw.
Grammatik)
<?xml version="1.0"?>
<!DOCTYPE hallo [ <!ELEMENT hallo (#PCDATA)> ]>
<hallo>Hallo Welt!</hallo>
33
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Beispiel
<?xml version="1.0"?>
<!DOCTYPE goodbye [
<!ELEMENT goodbye (text)>
<!ELEMENT text (#PCDATA)>
]>
<goodbye>
<text>Tschuess!</text>
</goodbye>
34
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
17
Deklaration von Elementen
•
<!ELEMENT Name Inhalt>
•
Der Inhalt kann zusammengesetzt werden
(a, b)
(a | b)
(a?)
(a+)
(a*)
a gefolgt von b
a oder b
optionales a
mindestens ein a
kein, ein oder mehrere a
<!ELEMENT name (vorname+, nachname)>
35
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Inhaltsmodelle
•
Ein Element kann folgende Inhaltsmodelle haben:
andere Elemente
(vorname+, nachname)
Text ("parsed character data")
(#PCDATA)
nichts
EMPTY
beliebig
ANY
"mixed content"
(#PCDATA | fett)*
<!ELEMENT text (#PCDATA)>
<!ELEMENT leer EMPTY>
36
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
18
Deklaration von Attributen
•
<!ATTLIST elem_name att_name att_type default>
<!ATTLIST person typ CDATA "non grata"
geschlecht (mann|frau) #REQUIRED>
<person typ="gratissima" geschlecht="mann" >
Weihnachtsmann
</person>
37
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Attributtypen
•
Für Attribute gibt es eine beschränkte Zahl von Typen
CDATA
ID
IDREF
IDREFS
NMTOKEN
NMTOKENS
ENTITY
ENTITIES
•
Text
Im Dokument eindeutiger Schlüssel
Referenz auf eine ID
Liste von ID-Referenzen
Nametoken
Liste von Nametokens
Entität
Liste von Entitäten
Aufzählung von Nametokens: (mann|frau)
38
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
19
Attribut-Default
•
Für ein Attribut kann ein Default-Wert angegeben werden
•
Das Attribut kann weiter eingeschränkt werden
#REQUIRED
#FIXED
#IMPLIED
Der Wert muß angegeben werden
Das Attribut hat einen festen Wert
Der Wert ist implizit
• <!ATTLIST katalog
id
ID
jahr
CDATA
besitzer
CDATA
version
CDATA
#REQUIRED
#IMPLIED
"Orientation in Objects"
#FIXED "1.0">
39
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Externe DTD
•
Eine DTD kann in eine externe Datei ausgelagert werden
•
Dazu wird das Schlüsselwort SYSTEM verwendet
<?xml version="1.0"?>
<!DOCTYPE hallo SYSTEM "hallo.dtd">
<hallo>Hallo Welt!</hallo>
40
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
20
PUBLIC DTD
•
Mit einer PUBLIC-DTD wird auf ein Standard verwiesen
•
DTD muß erreichbar oder aber bekannt sein
– Vergleiche EntityResolver und OASIS XML Catalog
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
41
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Entitäten
Entity
DTD: Parameter %
XML: General &
extern / intern
Parsed
Unparsed
extern / intern
nur extern
42
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
21
Pseudotypen
•
Parameterentitäten können dazu benutzt werden, Pseudotypen zu
definieren
<!ENTITY % string "#PCDATA">
<!ENTITY % date "#PCDATA">
<!ELEMENT name (%string;)>
<!ELEMENT ankunft (%date;)>
43
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Einfache Ersetzung
•
Mit generellen Entitäten können einfache Textersetzungen
vorgenommen werden
<!ENTITY text "Hallo Welt!">
<hallo> &text; </hallo>
<hallo> Hallo Welt! </hallo>
44
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
22
Externe Ersetzung
•
Mit Entitäten können auch ganze Dateien eingebaut werden
<!ENTITY text SYSTEM "botschaft.txt">
<hallo> &text; </hallo>
<hallo> Hallo aus einer anderen Welt! </hallo>
45
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Notation
•
Nicht-XML kann über Notationen referenziert werden
<!NOTATION gif PUBLIC "image/gif">
<!ENTITY myimage SYSTEM "myimagefile.gif" NDATA gif>
<!ELEMENT image (#PCDATA)>
<!ATTLIST image source ENTITY #REQUIRED>
<image source="myimage">Dies ist mein Bild</image>
46
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
23
Namensräume und DTD
•
DTDs unterstützen Namespaces nicht, da es in DTDs keine
Unterscheidung zwischen lokalen und qualifizierten Namen gibt
•
Workaround:
<!ELEMENT oio:katalog (...)>
<!ATTLIST oio:katalog
xmlns:oio #FIXED "http://www.oio.de/names">
47
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Nachteile von DTD
•
Unhandliche (auf Maschinenlesbarkeit gerichtete) Syntax
•
Reine Strukturbeschreibung
•
"Flacher" Aufbau
•
Keine Typen
•
Keine Objektorientierung
48
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
24
Eigenschaften von XML-Dokumenten
•
Wohlgeformtheit
– Dokument syntaktisch korrekt?
•
Konformität
– Dokument entspricht der DTD?
•
Gültigkeit
– Wohlgeformtheit und Konformität gegeben?
49
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Gliederung
•
•
•
eXtensible Markup Language
•
DTD
Verarbeitung von XML
Datenbeständen
XML Datenbestände
•
•
W3C XML Schema
XML APIs
•
•
Xpath
XSLT
50
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
25
Motivation
•
Überwinden der Schwächen von DTD
•
XML Syntax
•
Datentypen
•
Objektorientierung
51
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
W3C XML Schema
•
Umfangreiche und komplexe XML-Anwendung
•
Große Zahl an Datentypen
•
Verschiedene Mechanismen zur Erstellung eigener Typen:
– Beschränkung von einfachen Typen
– Ableitung von komplexen Typen durch Erweiterung, Beschränkung
•
Polymorphie durch Ersetzungsgruppen
52
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
26
Hierarchie der Datentypen
53
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Hallo-Welt-Schema
<?xml version="1.0"?>
<hallo>Hallo Welt!</hallo>
<?xml version="1.0"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="hallo" type="xsd:string"/>
</xsd:schema>
54
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
27
Schema-Instance
<?xml version="1.0"?>
<hallo xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="hallo.xsd">
Hallo Welt!
</hallo>
55
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Komplexe Typen
<!ELEMENT Adresse (Vorname,Nachname,Strasse,Wohnort,PLZ)>
<xsd:element name="Adresse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Vorname" type="xsd:string"/>
<xsd:element name="Nachname" type="xsd:string"/>
<xsd:element name="Strasse" type="xsd:string"/>
<xsd:element name="Wohnort" type="xsd:string"/>
<xsd:element name="PLZ" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
56
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
28
Einfache Typen
10000 <= PLZ < 99999
...
<xsd:element name="PLZ">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:minInclusive value="10000"/>
<xsd:maxExclusive value="99999"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
...
57
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Komplexe vs. Einfache Typen
•
Einfache Typen:
beschreiben den Inhalt von Textknoten und Attributwerten
(? Primitive)
Beispiel: xsd:string oder Postleitzahl
•
Komplexe Typen:
beschreiben den Inhalt von Elementen
(? Klassen)
Beispiel: Adresse
58
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
29
Anonyme vs. Benannte Typen
•
Benannte Typen: "flacher Entwurf"
– Aufbau wie DTD: Elementname ? Inhaltsmodell
– erlauben Wiederverwendung von Modellen
•
Anonyme Typen: "Puppe in der Puppe"
– erlauben kontextabhängige Inhaltsmodelle:
person
firma
name
vorname
name
Text
nachname
59
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Attributdeklaration
<!ATTLIST adresse art CDATA #REQUIRED>
<xsd:element name="adresse">
<xsd:complexTyp>
<xsd:sequence>
<xsd:element name="Vorname" type="xsd:string"/>
...
...
</xsd:sequence>
<xsd:attribute name="art"
use="required"
type="xsd:string"/>
</xsd:complexType>
</xsd:element>
60
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
30
Attributdeklaration
<!ATTLIST adresse art (geschäftlich|privat) #REQUIRED>
<xsd:attribute name="art" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="geschäftlich"/>
<xsd:enumeration value="privat"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
61
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Gliederung
•
•
•
eXtensible Markup Language
•
DTD
Verarbeitung von XML
Datenbeständen
XML Datenbestände
•
•
W3C XML Schema
XML APIs
•
•
Xpath
XSLT
62
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
31
XML - Databinding
Schema
Klasse
Dokument
Objekt
63
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Was ist SAX? (1)
•
Simple API for XML (SAX2)
– aktuelle Version ist SAX2
– defacto Standard der XML-DEV Mailingliste
– ursprünglich reine Java API
•
Event basierte Parser API
– Events lösen bestimmte Callback Methoden aus
– Parser „pusht“ (drückt) Events in die Callback Methoden der Handler
– Parser kann dabei auch Validierung durchführen
•
Dokumente werden einmal (!) von Anfang bis Ende durchlaufen
– Schnell und ohne großen Speicherverbrauch
– Kein Random Access auf XML - Dokumente
64
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
32
Was ist SAX? (2)
•
Verarbeitung geschieht über Handler
– Handler für Content- und Fehlerverarbeitung
– Aufbauen von Verarbeitungspipelines mittels Filterketten möglich
•
Integration in Java durch Sun
– Teil der Java API for XML Processing (JAXP)
– Fester Teil von J2SE seit JDK 1.4
•
Homepage und Informationen
– http://www.saxproject.org
– http://sourceforge.net/projects/sax/
65
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Übersicht JAXP Architektur
JAXP
SAX
Implementierung
(Crimson, Xerces, ...)
66
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
33
Gesamtübersicht SAX2 inklusive JAXP
Content
Handler
SAXParser
Factory
Error
Handler
SAXParser
Default
Handler
XML
Reader
DTD
Handler
XML
Entity
Resolver
67
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Simple API for XML
startElement(
„kunde“)
<warenkorb >
<kunde>5873</kunde>
<position nr="1“>
<artikel nr="4501">
<beschreibung>Ltscher </beschreibung>
</artikel>
</position>
<position nr="2" menge="2">
<artikel nr="5860">
<beschreibung>Earl Grey</beschreibung>
</artikel>
</position>
</warenkorb>
Handler
endElement(
„kunde“)
68
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
34
Selbst XML Dokumente erzeugen
•
Zum Erzeugen von eigenen XML Dokumenten bietet sich eine
Baum Struktur an
Document
DocumentType
Element
Element
Text
Attribut
Element
Attribut
EntityReference
Attribut
Element
Text
Text
Comment
Element
Text
69
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Composite Design Pattern
70
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
35
Document Object Model
71
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Was ist DOM? (1)
•
Document Object Model (DOM)
– aktuelle Version ist DOM Level 2 (DOM Level 3 ist in Arbeit)
– Standard des W3C (World Wide Web Consortium)
– Interface Definition Language (IDL) Standard
•
Baum basierte Document API
– Schwerpunkt liegt auf Erzeugung und Manipulation des Inhalt und der
Struktur von Dokumenten
•
Dokumente stehen vollständig zur Verfügung
– Random Access auf sämtlich Dokument Teile
– Erhöhter Speicherbedarf und eventuell Performancenachteile
72
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
36
Was ist DOM? (2)
•
DOM ist aufgeteilt in verschiedene Module
– Kernfunktionalität im „DOM Level 2 Core“
– Weitere Module verfügbar (Events, Traversal, etc.)
•
Integration in Java durch Sun
– Teil der Java API for XML Processing (JAXP)
– Fester Teil von J2SE seit JDK 1.4
•
Homepage und Informationen
– http://www.w3.org/DOM/
73
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Übersicht Architektur
JAXP
TrAX
DOM
SAX
Implementierung
(Crimson, Xerces, Xalan, ...)
74
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
37
Gliederung
•
•
•
eXtensible Markup Language
•
DTD
Verarbeitung von XML
Datenbeständen
XML Datenbestände
•
•
W3C XML Schema
XML APIs
•
•
XPath
XSLT
75
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
XPath
•
Spezifiziert Adressierung eines XML-Dokumentes
•
Enthält 13 Achsenbezeichner (AxisName)
•
Es existieren Kurz- und Langformen zur Adressierung
•
W3C Recommendation seit 16. November 1999
76
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
38
Axis Names - eine kleine “Baumschule”
<cdliste >
<erstelldatum >14.01.2001</erstelldatum>
<listentitel>OIO CD-Liste </listentitel>
<beschreibung >Diese CD-Liste ist...
</beschreibung>
<cd id="65" jahr="2000">
<titel >Music</titel>
<interpret>Madonna </interpret>
<hersteller >BMG</hersteller>
<preis >19.99</preis>
<track id="01“>
<titel >Music</titel>
<laenge>4:35</laenge>
</track>
...
</cd>
...
77
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Achsen (Auszug)
cdliste
parent
preceding-sibling
cd
following-sibling
cd
child
tracks
track
track
cd
titel
titel
interpret
preis
track
78
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
39
Location step 1
Ein Step besteht aus Achsennamen und Knotentest
AxisName::NodeTest
cdliste
parent::cdliste
parent::node()
cd
cd
tracks
track
track
cd
titel
titel
interpret
preis
track
79
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Location step 2
Ein Step besteht aus Achsennamen und Knotentest
AxisName::NodeTest
cdliste
following-sibling::cd
following-sibling::node()
cd
dvd
tracks
track
track
cd
titel
titel
interpret
preis
track
80
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
40
Location step und Location path
Location step
Location path
Location step
<xsl:value-of select="/cdliste/cd/hersteller"/>
<xsl:value-of select="/cdliste/child::cd/child::hersteller"/>
<xsl:value-of select="/descendant::hersteller"/>
81
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Location Paths
•
Relative Location Paths
– Geht vom Context Node aus
– Besteht aus einer oder mehreren Teilwegbeschreibungen
(Location Step)
– Location Steps werden mit „/“ getrennt
•
Absolute Location Paths
– Geht vom Root-Knoten aus
– Wird mit „/“ eingeleitet
– Darauf folgt ein relativer Location-Path ausgehend vom Root-Knoten
82
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
41
NodeSet
•
Eine Menge von Knoten des Dokumentes
•
Listet Knoten eines XPath-Ausdruckes auf
node set
<xsl:for-each select="cd">
83
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Context Node
Node
Namespace
Text
Attribute1
Attribute3
Attribute2
<seminar von="1" bis="2" mit="3">Das Sem...</seminar>
84
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
42
Prädikate
Gefiltertes Node Set
Menge aller CD Elemente
mit Interpret Madonna
cd[interpret=‘Madonna‘]
Menge aller CD Elemente
Node Set des NodeTestes
85
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Kontext in einem Prädikat
//cd[interpret=‘Madonna‘]
Context
=
gesamter
Baum
Context = aktuelle cd
86
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
43
Kurzschreibweisen
Short Version
//
ElementName
@AttName
.
..
[n]
Long Version
/descendant-or-self::node()/
child::ElementName
attribute::AttName
self::node()
parent::node()
[position()=n]
87
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Gliederung
•
•
•
eXtensible Markup Language
•
DTD
Verarbeitung von XML
Datenbeständen
XML Datenbestände
•
•
W3C XML Schema
XML APIs
•
•
XPath
XSLT
88
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
44
Motivation XSL
•
Trennung von Daten und ihrer Darstellung
•
Austausch zwischen XML Anwendungen
•
Viele andere Standards: HTML, CSV, PostScript, PDF
•
Gibt es eine Möglichkeit all dies miteinander zu verbinden?
89
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Von XSL zu XSLT
XSL
XSL
XSL
21.04.99
XSLT
XSLT
Formatierung
XSL 1.0
Transformation
XSLT 1.0 Rec =>
XSLT 2.0 WD =>
16.11.99
4.04.05
09.07.99
XPATH
Selektion:
XQuery
Selektion:
XPATH 1.0 Rec => 16.11.99
XPATH 2.0 WD => 04.04.05
XQuery 1.0 WD => 04.04.05
90
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
45
Von XSL zu XSLT
•
Durch neue Working Draft im April 1999 erfolgt Aufgliederung:
– XSLT spezifiziert den Transformationsmechanismus
– XSL spezifiziert die reinen Formatierungsobjekte
•
Adressierung im XML-Baum muß möglich sein:
– XPath beschreibt Syntax zur Adressierung eines XML-Dokument
– XSLT beschreibt die Transformationsanweisungen
•
Status der Spezifikationen:
– XSLT 1.0 und XPath seit November 1999 als Recommendation
– XSL seit 16.10.2001 final Recommendation
•
Neu: XSLT 2.0, XPath 2.0 und XQuery 1.0 kurz vor der
Verabschiedung ?
91
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
XSL – Familie
Spezifikationen: www.w3c.org
3 Teile:
• Transformationssprache XSLT
– Ändern der Struktur
– Hinzufügen von Formatierungsanweisungen
•
Navigationssprache XPATH
•
Präsentationssprache XSL-Fo
– Adressieren von XML-Elementen
XSLT
XPATH
XSL
– auf den Millimeter genaue
Formatierung von Dokumenten
XSL Transformation
XSL Formatierer
(Xalan, Saxon, MSXML)
(FOP, RenderX)
Quellbaum
PDF
...
Zielbaum
92
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
46
XSLT
•
eXtensible Stylesheet Language: Transformations
•
ist eine XML-Anwendung
•
ist eine Sprache zur Transformation von XML-Dokumenten
•
Da ein XML-Dokumente ein Baum darstellt, ist XSLT eine
Sprache zur Transformation von Bäumen
•
Die Transformation geschieht durch einen XSLT-Prozessor
93
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
XSLT im Detail
•
Was ist XSLT (nicht)?
– XSLT ist eine funktionale Sprache, um XML-Dokumente zu
transformieren
– XSLT ist erweiterbar
– „XSLT makes XML useful for non-programmers“ (James Clark)
•
Ein XSLT-Dokument ist
– selbst ein XML-Dokument
– Eine Anleitung (Stylesheet), wie ein XML-Quelldokument in ein
Ergebnisdokument zu transformieren ist
94
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
47
XSLT Processoren (1)
•
SAXON von Michael Kay
–
–
–
–
•
„The XSLT and XQuery Processor“
Unterstützt XSLT 2.0 und XPath 2.0
Autor von XSLT 2nd Edition (Wrox Press)
Maßgeblich beteiligt an XSLT, XPath, XQuery ...
saxon.sourceforge.net
– 2 Versionen
• Basic XSLT Processor (frei)
• Schema Aware XSLT Processor (kommerziell)
95
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
XSLT Processoren (2)
•
XML Spy (Altowa)
– „Eingebaut“ im XML Spy
– XSLT Prozessor auch einzeln und kostenlos erhältlich
– Unterstützt XSLT 2.0 und XPath 2.0 (Version 2005)
•
Xalan
–
–
–
–
http://xml.apache.org/xalan-j/
XSLT 1.0
frei
Der populärste Prozessor (Verbreitung)
96
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
48
XSLT Baumtransformation
Stylesheet
Stylesheet
Serialisierung
XSLT
Processor
XML Dokument
Output File
Source
Result
97
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
XSLT Transformations-Pipeline
news.xml
include .xsl
page.xsl
news.htm
kontakt.xml
XSLT
Processor
XSLT
Processor
site.xml
kontakt.htm
*.xml
*.htm
sitemap.xml
98
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
49
Das Grundgerüst von XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-Hier stehen die Regeln bzw. Templates
-->
</xsl:stylesheet>
99
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
XSLT Namespace
•
•
•
Deklariert einen Namensraum für Elemente
Wird durch URI gekennzeichnet (ausschlaggebend)
Dienen der Zuordnung Element => Anwendung
– XSLT-Prozessor wertet nur Elemente diesen Namespaces aus
<... xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Der Präfix (hier xsl) spielt keine Rolle, die URI ist ausschlaggebend
100
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
50
Regelbasiert
•
•
Verarbeitung basiert auf Regeln, so genannte Templates
Beispielregel:
Triffst du auf Element XYZ erzeuge ein FOO Block Element
mit den angegebenen Attributen und fahre mit der
Bearbeitung aller Kindknoten fort.
<xsl:template match="XYZ">
<fo:block
font-family="Arial"
font-size="24pt"
break-after="page">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
101
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Muster + Schablone
<xsl:template match=“[Muster]">
<fo:block
font-family="Arial"
font-size=“48pt"
break-after="page">
e
n
o
l
b
a
h
Sc
Hello Formatting Objects!
</fo:block>
</xsl:template>
102
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
51
Transformationsmodel
•
Der Prozessor geht den Eingabebaum durch und sucht für alle
Knoten eine passende Regel
•
Bei mehreren passenden Regeln wird die "am besten passende"
Regel ausgesucht
•
Ist eine Regel gefunden, wird sie ausgeführt
103
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Ablauf des Processing Model
•
Liste von Knoten wird der Reihenfolge nach verarbeitet
•
Für den Knoten werden passende Template Rules gesucht
•
Die beste (genaueste) Regel wird ausgewählt
Stichwort Prädikate
•
Der entsprechende Knoten wird zum Context Knoten
•
Schablone wird instanziiert und
•
Bearbeitung wird an den Kind-Knoten fort gesetzt.
104
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
52
<xsl:template match=“xyz” >
•
Kindelement von <xsl:stylesheet> auf
•
Besteht aus zwei Bestandteilen
– Ein Pattern, ein Muster, welches auf Knoten des Sourcetrees
angewandt wird
– Ein Template, eine Schablone, welches instanziiert werden kann,
damit es Bestandteil des Resulttrees wird
Matchpattern
<xsl:template match=“/">
<b>CD-Liste</b>
</xsl:template>
Ausgabe
105
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
<xsl:template match="foo|bar">
Sollen mehrere Elemente genau gleich verarbeitet werden?
•
•
Eine Regel kann auch auf mehrere Elemente angewandt
werden
Die Trennung erfolgt durch das Pipe-Symbol
Matchpattern
<xsl:template match=“interpret | titel">
<b>
<xsl:value-of select="."/>
</b>
</xsl:template>
Ausgabe
106
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
53
Vordefinierte Regeln
<xsl:template match="* | /">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="text() | @*">
<xsl:value-of select="."/>
</xsl:template>
107
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Build-In Template Rules
Eher lästig:
/
<xsl:template match="* | /">
<xsl:apply-templates/>
</xsl:template>
Ganz nett:
<xsl:template match="text() | @*">
<xsl:value-of select="."/>
</xsl:template>
108
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
54
Build In Template Rules überschreiben
•
Den XSLT Prozessor unter Kontrolle bringen:
– Die „Main“-Methode:
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
– Die Bearbeitung aller anderen Knoten stoppen
<xsl:template match="*"/>
– Text und Attributwerte weiterhin ausgeben
<xsl:template match=“text() | @*">
<xsl:value-of select=“."/>
</xsl:template>
109
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Document Order - Leserichtung
/
1
2
9
3
4
5
6
8
10
11
12
7
110
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
55
<xsl:value-of select=“xyz”>
•
Gibt den Wert eines Knoten zurück
<xsl:template match="cd">
<p>
<xsl:value-of select="Interpret"/>
</p>
</xsl:template>
111
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
<xsl:apply-templates/>
•
Anweisung für Prozessor mit Transformation bei den
Kindelementen fortzufahren
•
•
Alle Regeln für Kindelemente werden gesucht und abgearbeitet
Keine Regel = Keine Verarbeitung
/
<xsl:template match="cd">
<p>
<xsl:apply-templates/>
</p>
</xsl:template>
<xsl:template match="hersteller">
<b>Ein Hersteller</b>
</xsl:template>
112
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
56
<xsl:apply-templates select="foo"/>
•
Problem:
– Immer alle Kind-Knoten bearbeiten?!
– Wie steuere ich den XSLT Prozessor?
•
Anweisung für Prozessor mit Transformation fortzufahren
•
Attribut select=“...” wählt die Child-Knoten aus
<xsl:template match=“cdliste">
<h1>
<xsl:apply-templates select=“interpret"/>
</h1>
<xsl:apply-templates select=“tracks"/>
</xsl:template>
113
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
<xsl:value-of select=“xyz”>
•
<xsl:value-of select="..."/> gibt den Wert (value) eines Knotens
zurück
•
•
Wert = alle Text-Knoten des Elements
Mit dem Attribut “select” wird der Knoten ausgewählt
•
•
text()
@*
•
.
=> Text-Knoten
=> Jeden Attribut-Knoten
=> Der aktuelle Knoten
<xsl:template match=“text() | @*">
<xsl:value-of select=“."/>
</xsl:template>
Text
114
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
57
<xsl:for-each select=“xyz”>
•
Über Mengen von Knoten kann mit for-each iteriert werden
<xsl:for-each select="cd">
mach dies
mach das
</xsl:for-each>
115
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
<xsl:if test=“xyz”>
•
<xsl:if> ist analog zum if-Ausdruck in Programmiersprachen
<xsl:if test="position()=last()">
mach dies
mach das
</xsl:if>
116
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
58
<xsl:choose>
•
Mehrere Bedingungen können mit choose abgefragt werden
<xsl:choose>
<xsl:when test="test1"> mach dies </xsl:when>
<xsl:when test="test2"> mach das </xsl:when>
<xsl:otherwise> mach was anderes </xsl:otherwise>
</xsl:choose>
117
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Gliederung
•
•
•
eXtensible Markup Language
•
Architekturelles Umfeld
Verarbeitung von XML
Datenbeständen
XML Datenbestände
•
•
Datenexport
Datenimport
118
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
59
XML Dateien als DBMS?
Pro:
•
•
•
•
Speicherung von Daten im XML-Format
XML-Schemas
Abfragesprachen
APIs
Contra:
•
•
•
•
Indizierung
Sicherheit
Transaktionen und Integrität
Multi-user Zugriff
119
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
XML als Datenformat
•
Vorteile:
– selbstbeschreibend
– Portabilität (Unicode)
– Daten liegen als Baumstruktur vor
•
Nachteile:
– sehr textlastig
– langsamer Zugriff (Parsen und Textumwandlung)
120
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
60
XML Dateien als DBMS?
Schlussfolgerung:
In Umgebungen mit kleinen Datenmengen, wenigen Benutzern
und geringern Anforderungen an die Performance ist der Einsatz
von XML als DBMS sinnvoll.
?
Warum soll man dann überhaupt XML als Datenbasis in
Betracht ziehen?
121
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Sinnvoller Einsatz von XML
•
XML als Austauschformat für e-commerce Anwendungen
•
Struktur der Daten sehr regelmäßig
•
Entities und Encodings von Bedeutung
? Herkömmliche DB sind hier deutlich unterlegen.
122
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
61
Sinnvoller Einsatz von XML
•
Vorteile gegenüber herkömmlichen DB:
– Bewahrung der physischen Struktur des Dokuments
– Transaktionen auf Dokumentebene
– Spezielle Abfragesprache für XML-Daten
123
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Typen von XML Dokumenten
Es gibt zwei Typen von XML-Dokumenten:
– data-centric
– document-centric
124
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
62
Beispiel: Data-centric document
<SalesOrder SONumber=„42“>
<Customer CNumber=„42-2“>
<Name>Adams</Name>
<Street>Nostreet 10</Street>
...
</Customer>
<OrderDate>10.10.1998</OrderDate>
<Item number=„1“>
<Part number=„2802“>
...
</SalesOrder>
125
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Beispiel: Document-centric document
<Product>
<Name>Turkey Wrench</Name>
<Developer>Full Fabrication Labs, Inc.</Developer>
<Summary>Like a monkey wrench, but not as big.</Summary>
<Description>
<Para>The turkey wrench,... </Para>
<Para>You can:</Para>
<List>
...
<Item><Link URL="Order.html">Order your own
wrench</Link></Item>
</List>
...
</Product>
turkey
126
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
63
Unterscheidung der Dokumenttypen
•
Unterscheidung zwischen den beiden Dokumenttypen ist nicht
immer klar und eindeutig
– Data-centric Dokumente können auch grobkörnige Daten (z.B.
Bauteilbeschreibungen)
– Document-centric Dokumente können auch strukturierte Daten
enthalten (z.B. die Autor- oder Erscheinungsdaten eines Buches)
•
Unterscheidung der Dokumenttypen hilft bei der Auswahl der
Datenbank
127
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
XML Datenbanken
•
Unterscheidung:
– Native XML Datenbanken
– XML - aware / enabled Datenbanken
•
Beide werden als XML Datenbanken bezeichnet, aber nicht immer
ist die zu Grunde liegende Struktur XML
128
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
64
Definitionsversuch: native XML Datenbank
•
Zu Grunde liegende logische Einheit ist ein XML Dokument (bei
„traditionellen DB“ sind das Spalten)
•
Definition eines logischen Modells für XML Dokumente sowie
Speicherung und Abfrage von Dokumenten diesem Modell
entsprechend
129
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Definitionsversuch: XML-enabled Datenbank
•
Zu Grunde liegt eine relationale Datenbank wie MS SQL Server,
Oracle oder IBM DB/2
•
Erweiterung um die Fähigkeit, XML Dokumente einzulesen und zu
speichern ( eigene Funktionen und Datentypen )
•
Geschieht durch sogenanntes Mapping von XML Dateien
•
Teilweise auch die Möglichkeit der Abfrage über gespeicherte
XML Dokumente
130
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
65
Gliederung
•
•
•
eXtensible Markup Language
•
Architekturelles Umfeld
Verarbeitung von XML
Datenbeständen
XML Datenbestände
•
•
Datenexport
Datenimport
131
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Interorganisationaler Datentransfer mit XML
XML-Struktur
XML
XML-Struktur
DBMS
ort
exp
n
te
Da
XML
output
Datenimport
DTD
validieren
validieren
Da
ten
exp
ort
DTD-Austausch
validieren
DBMS
DTD
XML
TRANSFORMATOR
XSL
132
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
66
XML Generationstechniken
Generierung aus
RDBMS
Vollständiger
DB-inhalt
Individuelle
Transformation
Anfrageinhalte
133
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Vollständiger DB-Inhalt
Artikel-Nr
Artikelname
1 Chai
2 Chang
Aniseed
3 Syrup
Lieferant
Exotic
Liquids
Exotic
Liquids
Exotic
Liquids
Kategorie
Getränke
Getränke
Gewürze
Liefereinheit Einzelpreis Lagerbestand
Bestellte Einheiten
Mindestbestand Auslaufartikel
10 Kartons x
20 Beutel
18,00 DM
39
0
10
FALSCH
24 x 12-oz19,00 DM
17
40
25
FALSCH
Flaschen
12 x 550-mlFlaschen
10,00 DM
13
70
25
FALSCH
Chef Anton's New Orleans
Cajun
Cajun
4 Seasoning
Delights
Gewürze
48 x 6-ozGläser
New Orleans
Chef Anton's Cajun
5 Gumbo Mix Delights
Gewürze
Grandma's Grandma
Boysenberry Kelly's
6 Spread
Homestead Gewürze
36 Kartons
12 x 8-ozGläser
22,00 DM
53
0
21,35 DM
0
0
0
WAHR
25,00 DM
120
0
25
FALSCH
Datenbank: betrachtet als dreistufige Hierarchie von
•
Datenbank - Relation - Attributen
Darstellung im XML-Dokument
durch Elemente und Attribute
0
FALSCH
<Import>
- <Row>
<Artikel-Nr>1</Artikel-Nr>
<Artikelname>Chai</Artikelname>
<Lieferanten-Nr>1</Lieferanten-Nr>
<Kategorie-Nr>1</Kategorie-Nr>
<Liefereinheit>10 Kartons x 20 Beutel</Liefereinheit>
<Einzelpreis>18</Einzelpreis>
<Lagerbestand>39</Lagerbestand>
<BestellteEinheiten>0</BestellteEinheiten>
<Mindestbestand>10</Mindestbestand>
<Auslaufartikel>0</Auslaufartikel>
</Row>
- <Row>
<Artikel-Nr>2</Artikel-Nr>
<Artikelname>Chang</Artikelname>
...
134
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
67
Anfrage-inhalte
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Chai
18
Chang
19
Aniseed Syrup
10
Chef Anton's Cajun Seasoning
22
Chef Anton's Gumbo Mix
21,35
Grandma's Boysenberry Spread
25
Uncle Bob's Organic Dried Pears
30
Northwoods Cranberry Sauce
40
Mishi Kobe Niku
97
Ikura
31
Queso Cabrales
21
Queso Manchego La Pastora
38
Konbu
6
Tofu
23,25
Genen Shouyu
15,5
Pavlova
17,45
Alice Mutton
39
<Import>
<Artikel>
<Einzelpreis>18</Einzelpreis>
<Artikelname>Chai</Artikelname>
</Artikel>
<Artikel>
<Einzelpreis>19</Einzelpreis>
<Artikelname>Chang</Artikelname>
</Artikel>
<Artikel>
<Einzelpreis>10</Einzelpreis>
<Artikelname>Aniseed Syrup</Artikelname>
</Artikel>
...
SELECT Einzelpreis,Artikelname FROM
[Artikel]
135
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Individuelle Transformation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Chai
18
Chang
19
Aniseed Syrup
10
Chef Anton's Cajun Seasoning
22
Chef Anton's Gumbo Mix
21,35
Grandma's Boysenberry Spread
25
Uncle Bob's Organic Dried Pears
30
Northwoods Cranberry Sauce
40
Mishi Kobe Niku
97
Ikura
31
Queso Cabrales
21
Queso Manchego La Pastora
38
Konbu
6
Tofu
23,25
Genen Shouyu
15,5
Pavlova
17,45
Alice Mutton
39
<Import>
<Artikel>
<Einzelpreis>18</Einzelpreis>
<Artikelname>Chai</Artikelname>
</Artikel>
<Artikel>
<Einzelpreis>19</Einzelpreis>
<Artikelname>Chang</Artikelname>
</Artikel>
<Artikel>
<Einzelpreis>10</Einzelpreis>
<Artikelname>Aniseed Syrup</Artikelname>
</Artikel>
...
Diese meist zweigeteilt:
•
SQL-Anfrage zur Auswahl der dazustellenden Daten (=relevanten Anteile)
•
XML-QL oder X-Query-ähnliche Darstellung zur Bestimmung der Syntax des Zielformates
(CONSTRUCT)
Spezifikation der Syntax des entstehenden XML-Dokumentes
•
136
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
68
Comma Separated Values CSV
CSV Export
Nr;Bezeichnung;Menge;Preis
1;Dauerlutscher;10;1,99
2;Kaffee;2;3,8
3;Kuli;100;0,8
137
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Konverter (XMLSpy)
138
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
69
Gliederung
•
•
•
eXtensible Markup Language
•
Architekturelles Umfeld
Verarbeitung von XML
Datenbeständen
XML Datenbestände
•
•
Datenexport
Datenimport
139
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
XML Persistenztechniken
Files/CLOB
Volltextindizierung
Datenbanken
Volltext und XML Indizierung
Verwendung der
Baumstruktur
Strukturelles
Mapping
Graphen
Vollständig
DOM-Modell
individuell
140
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
70
Volltextindizierung
TERM
REFERENZ
cdliste
erstelldatum
cd
Madonna
Music
preis
track
<cdliste>
<erstelldatum>14.01.2001</erstelldatum>
<listentitel>OIO CD-Liste</listentitel>
<beschreibung>Diese CD-Liste ist...
</beschreibung>
<cd id="65" jahr="2000">
<titel>Music</titel>
<interpret>Madonna</interpret>
<hersteller>BMG</hersteller>
<preis>19.99</preis>
<track id="01“>
<titel>Music</titel>
<laenge>4:35</laenge>
</track>
...
</cd>
...
141
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Volltext und XML-Indizierung
TERM
REFERENZ
cdliste
erstelldatum
cd
Madonna
Music
preis
track
ELEMENT REFERENZ
cdliste
erstelldatum
cd
preis
track
interpret
titel
PARENT
/
cdliste
cdliste
cd
cd
cd
track
<cdliste>
<erstelldatum>14.01.2001</erstelldatum>
<listentitel>OIO CD-Liste</listentitel>
<beschreibung>Diese CD-Liste ist...
</beschreibung>
<cd id="65" jahr="2000">
<titel>Music</titel>
<interpret>Madonna</interpret>
<hersteller>BMG</hersteller>
<preis>19.99</preis>
<track id="01“>
<titel>Music</titel>
<laenge>4:35</laenge>
</track>
...
</cd>
...
142
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
71
Vollständiges Mapping RDBMS
pk fk beschreibung
erstelldatum tistentitel
1 0 Diese CD-Liste ist... 14.01.2001 OIO CD-Liste
pk
1
2
3
fk
1
1
1
id jahr
65 2000
215 1998
26 1988
cd_fk tracks_fk
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
hersteller
BMG
BMG
BMG
pk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
interpret
Madonna
U2
R.E.M
fk number
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
10
1
11
1
12
2
1
2
2
2
4
2
5
laenge
04:35
05:10
04:20
03:50
04:15
03:56
04:57
06:20
03:25
04:47
04:29
04:15
03:01
05:58
03:45
preis
19.99
21.49
19.49
titel
Music
The Best Of 1980-1990
Green
titel
Music
Impressive Instant
Runaway Lover
I Deserve It
Amazing
Nobody's Perfect
Don't Tell Me
What It Feels Like For A Girl
Paradise (Not For Me)
Gone
American Pie
Pride (In The Name Of Love)
New Year's Day
With Or Without You
With Or Without You
<cdliste>
<erstelldatum>14.01.2001</erstelldatum>
<listentitel>OIO CD-Liste</listentitel>
<beschreibung>Diese CD-Liste ist...
</beschreibung>
<cd id="65" jahr="2000">
<titel>Music</titel>
<interpret>Madonna</interpret>
<hersteller>BMG</hersteller>
<preis>19.99</preis>
<track id="01“>
<titel>Music</titel>
<laenge>4:35</laenge>
</track>
...
</cd>
...
143
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Vollständiges Mapping OODBMS
listentitel erstelldatum beschreibung
cd
id jahr titel interpret hersteller preis
tracks
track
number titel laenge
144
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
72
Individuelles Mapping
id interpret
65 Madonna
215 U2
26 R.E.M
cd_id number
65
1
65
2
65
3
<cdliste>
<erstelldatum>14.01.2001</erstelldatum>
<listentitel>OIO CD-Liste</listentitel>
<beschreibung>Diese CD-Liste ist...
</beschreibung>
<cd id="65" jahr="2000">
<titel>Music</titel>
<interpret>Madonna</interpret>
<hersteller>BMG</hersteller>
<preis>19.99</preis>
<track id="01“>
<titel>Music</titel>
<laenge>4:35</laenge>
</track>
...
</cd>
titel
Music
The Best Of 1980-1990
Green
laenge
04:35
05:10
04:20
titel
Music
Impressive Instant
Runaway Lover
...
145
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Baumstruktur als Graphen I
ELEMENT
cdliste
erstelldatum
cd
preis
track
interpret
titel
Type
VALUE
PARENT
String
19.99
String
String
Madonna
Music
14.01.2001
ELEMENT
ATTRIBUTE
id
jahr
id
VALUE
65
2000
1
<cdliste>
<erstelldatum>14.01.2001</erstelldatum>
<listentitel>OIO CD-Liste</listentitel>
<beschreibung>Diese CD-Liste ist...
</beschreibung>
<cd id="65" jahr="2000">
<titel>Music</titel>
<interpret>Madonna</interpret>
<hersteller>BMG</hersteller>
<preis>19.99</preis>
<track id="01“>
<titel>Music</titel>
<laenge>4:35</laenge>
</track>
...
</cd>
...
146
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
73
Baumstruktur als Graphen II
ELEMENT
Type
String
String
String
String
VALUE
14.01.2001
19.99
Madonna
Music
<cdliste>
<erstelldatum>14.01.2001</erstelldatum>
<listentitel>OIO CD-Liste</listentitel>
<beschreibung>Diese CD-Liste ist...
</beschreibung>
<cd id="65" jahr="2000">
<titel>Music</titel>
<interpret>Madonna</interpret>
<hersteller>BMG</hersteller>
<preis>19.99</preis>
<track id="01“>
<titel>Music</titel>
<laenge>4:35</laenge>
</track>
...
</cd>
ELEMENT
PARENT
cdliste
erstelldatum
cd
preis
track
interpret
titel
ELEMENT
ATTRIBUTE
id
jahr
id
VALUE
65
2000
1
...
147
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
XML Persistenztechniken
Files/CLOB
Volltextindizierung
Datenbanken
Volltext und XML Indizierung
Verwendung der
Baumstruktur
Strukturelles
Mapping
Graphen
Vollständig
Dokumentenzentriert
DOM-Modell
Unvollständig
Datenzentriert
148
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
74
Datentypen
•
XML unterstützt keine Datentypen
•
Sämtliche Daten eines XML Dokumentes, ausgenommen
„unparsed entities“, sind Text
•
Datenübertragungssoftware konvertiert Daten von Text zu
anderen Datentypen und umgekehrt
149
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Binärdaten
•
Zwei Möglichkeiten Binärdaten zu speichern:
– unparsed Entities
– Base64 encoding
•
Regeln für das Senden von Binärdaten an und Empfangen aus
Datenbanken sind sehr strikt
•
Es gibt keine XML Notation, die anzeigt, dass Base64 encoded
Data enthalten ist im Dokument
? Probleme mit der Software sind vorprogrammiert
150
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
75
Character Sets
•
XML Dokumente können jeglichen Unicode darstellen mit
Ausnahme einiger Kontrollzeichen
•
Viele DB bieten keine oder nur ungenügende Unterstützung bei
der Behandlung von nicht-ASCII Zeichen
151
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
Processing Instructions und Kommentare
•
Nicht Teil der XML Daten
•
Werden von Datentransfersoftware meistens nicht behandelt
•
Nur schwer in ein Tabellenschema zu mappen
152
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
76
Markup - Entities
•
Beim Speichern von mixed content wird markup mitspeichert
•
Wie unterscheidet man markup von nicht-markup ?
•
Nicht-Markup wird gespeichert durch lt, gt, amp, quot und apos
Entitäten
•
nicht XML-Abfragesprachen (SQL) können nicht zwischen markup
und Entities unterscheiden
153
Datenintegration und Datenaustausch mit XML-Techniken
© 2005 Orientation in Objects GmbH
? ?
? ??
?
? ?
?
Fragen ?
Orientation in Objects GmbH
Weinheimer Str. 68
68309 Mannheim
Version: 1.1
www.oio.de
[email protected]
77
Vielen Dank für Ihre
Aufmerksamkeit !
Orientation in Objects GmbH
Weinheimer Str. 68
68309 Mannheim
Version: 1.1
www.oio.de
[email protected]
78
Herunterladen