Post on 27-May-2020
1
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
www.oio.deinfo@oio.deVersion: 1.1
Datenintegration undDatenaustausch mit
XML-Techniken
2
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Gliederung
• eXtensible MarkupLanguage
• Verarbeitung von XMLDatenbeständen
• XML Datenbestände
• Motivation und Ziele
• Syntaktische Grundlagen• Namensräume
2
3
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Markup
• Markup bezeichnet jede Menge von Tags (Auszeichner), die zumInhalt eines Text-Dokuments hinzugefügt werden, um dieBedeutung oder die Darstellung der Daten anzuzeigen.
• RTF• LaTeX• HTML• SGML (Standard Generalized Markup Language, ISO, 1970)
4
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
HTML Tags
• Physisch: <i>Das ist in italics</i>
• Logisch: <em>Das ist wichtig</em>
• Die Bedeutung (Semantik) wird durch die Spezifikation bestimmt
3
5
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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 denAnforderungen nach und nach angepaßt worden
Versionen: 2.0 (1995)3.2 (1997)4.0 (1998)
• Die geringe Strenge der Regeln macht automatische Verarbeitungschwierig
6
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Unterschiede HTML - XML
HTML XML
Flache Struktur Hierarchien sind möglich
Kann nicht erweitertwerden
Definition eigener Tagsmöglich
Kaum maschinellverarbeitbar
Leichte maschinellVerarbeitung
Layout steht imVordergrund
Daten und Strukturstehen im Vordergrund
4
7
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Semantische Tags
• Semantische Tags beschreiben den Inhalt eines Elementes
• Semantische Tags sind frei wählbar und können jede Art vonDaten beschreiben
<der-darzustellende-text>Hallo
</der-darzustellende-text>
8
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Semantische Tags Beispiele
<artikel>Dauerlutscher</artikel>
<telefonnummer>0495556666777</telefonnummer>
<komponist>Johann Sebastian Bach</komponist>
<noten>bach</noten>
5
9
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XML Definitionen
• eXtensible Markup Language
• ist eine verallgemeinerte Markupsprache
• ist eine Metasprache zur Beschreibung von Markupsprachen
• ist eine Untermenge von SGML
10
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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 XMLdocuments.
• The number of optional features in XML is to be kept to theabsolute 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.
6
11
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XML
XSL
XPath
XLink
XPointer
XSLT
Schema
Namespaces
Co-Standards
XML-Vokabulare
Voice-ML
DocBook XML
XML-EDI
XHTML
SVG
WMLSMIL
XBRL
MathML
CML
XForms
SOAP
XML Standards
12
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
W3C Recommendation Track
Recommendation
ProposedRecommendation
CandidateRecommendation
Last Call Working Draft
Working Draft
7
13
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Einfachstes XML-Dokument
<?xml version="1.0"?>
<hallo>
Hallo Welt!
</hallo>
14
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Gliederung
• eXtensible MarkupLanguage
• Verarbeitung von XMLDatenbeständen
• XML Datenbestände
• Motivation und Ziele
• Syntaktische Grundlagen• Namensräume
8
15
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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 referenziertwerden: &#code; oder &#xhexcode;
• Beispiel: ©-Symbol: ©©©
16
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XML Markup
• <? ... ?> Processing Instruction
• <!-- ... --> Kommentar
• <! ... > Document Type Definition
• < ... > Element Anfang
• </ ... > Element Ende
• < ... /> Leeres Element
9
17
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
NMTOKEN
• NMTOKEN (name token) sind Kombinationen aus Buchstaben,Zahlen, Punkten, Doppelpunkten, Minuszeichen und Unterstrichen
• Elementnamen sind NMTOKEN und beginnen mit einemBuchstaben, einem Doppelpunkt oder einem Unterstrich
<_hallo> <:hallo> <Mein-Element:Hallo.Welt>
18
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Verschachtelung
• Elemente dürfen verschachtelt werden
• Die Verschachtelung muß vollständig sein, und es darf keineÜberschneidungen geben
• Richtig: Falsch:
<a>
<b></b>
</a>
<a>
<b></a>
</b>
10
19
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Baumstruktur
• Durch die Verschachtelung der Elemente kommt eineBaumstruktur zustande
<cdkatalog>
<cd>
<titel>Ray of Light</titel>
<interpret>Madonna</interpret>
</cd>
</cdkatalog>
cdkatalogcdkatalog
cdcd
titeltitel
interpretinterpret
20
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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 jedemStartelement genau ein Endelement und umgekehrt
• Ist ein Dokument nicht wohlgeformt, ist es nicht XML
11
21
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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ürElementnamen
• Attribute müssen in Anführungszeichen stehen
<text farbe="rot" groesse="14pt">Hallo</text>
<text farbe='rot' groesse='14pt'>Hallo</text>
22
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Entity References und CDATA
• Für besondere Zeichen werden Ersetzungen benutzt
& &< <> >" "' '
• In einem CDATA-Bereich werden keine Ersetzungenvorgenommen
<![CDATA[ Hier kann alles stehen & < > " ' ]]>
12
23
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Attribute
• Durch Attribute können Varianten von Elementen beschriebenwerden
<element_A></element_A>
<element_B></element_B>
<element typ="A"> </element>
<element typ="B"> </element>
Beispiel:
<mitarbeiter geschlecht="weiblich">Schmidt</mitarbeiter>
24
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Attribute
• Attribute können Kennzeichner- („Flag“- )Elemente ersetzen
<element> <flag/> </element>
<element flag="true"> </element>
Beispiel:
<mitarbeiter wichtig="ja">Thorsten Beyer</mitarbeiter>
13
25
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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>
26
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Gliederung
• eXtensible MarkupLanguage
• XML Datenbestände• Verarbeitung von XML
Datenbeständen• Aspekte der Integration• Web Services• The Big Picture
• Motivation
• Syntaktische Grundlagen• Namensräume
14
27
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Motivation
• Jeder kann seine eigenen Elemente definieren
• Mischen von Elementen aus verschiedenen Anwendungen?
<artikel>How to use XML</artikel>
<artikel>Dauerlutscher</artikel>
28
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
URI
• Uniform Resource Identifiers bezeichnen jede adressierbareResource
• 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>
15
29
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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>
30
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Lokaler Name und QName
• Man unterscheidet den lokalen Elementnamen vom qualifiziertenElementnamen
• Der qualifizierte Name (QName) ist durch ein Präfix mit einemNamensraum verbunden
Präfix lokaler Name
qualifizierter Name
<oio:artikel>
16
31
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Noname-Namespace
• Es kann auch ein präfixloser "Noname-Namespace" oder "Default-Namespace" definiert werden
<?xml version="1.0"?>
<katalog xmlns="http://www.sweets.com/ns">
<artikel>Dauerlutscher</artikel>
</katalog>
32
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Gliederung
• eXtensible Markup Language
• Verarbeitung von XMLDatenbeständen
• XML Datenbestände
• DTD
• W3C XML Schema• XML APIs
• Xpath• XSLT
17
33
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Document Type Definition (DTD)
• Die Document Type Definition beschreibt die Struktur desDokuments 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>
34
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Beispiel
<?xml version="1.0"?>
<!DOCTYPE goodbye [
<!ELEMENT goodbye (text)>
<!ELEMENT text (#PCDATA)>
]>
<goodbye>
<text>Tschuess!</text>
</goodbye>
18
35
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Deklaration von Elementen
• <!ELEMENT Name Inhalt>
• Der Inhalt kann zusammengesetzt werden
(a, b) a gefolgt von b(a | b) a oder b(a?) optionales a(a+) mindestens ein a(a*) kein, ein oder mehrere a
<!ELEMENT name (vorname+, nachname)>
36
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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>
19
37
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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>
38
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Attributtypen
• Für Attribute gibt es eine beschränkte Zahl von Typen
CDATA TextID Im Dokument eindeutiger SchlüsselIDREF Referenz auf eine IDIDREFS Liste von ID-ReferenzenNMTOKEN NametokenNMTOKENS Liste von NametokensENTITY EntitätENTITIES Liste von Entitäten
• Aufzählung von Nametokens: (mann|frau)
20
39
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Attribut-Default
• Für ein Attribut kann ein Default-Wert angegeben werden
• Das Attribut kann weiter eingeschränkt werden
#REQUIRED Der Wert muß angegeben werden#FIXED Das Attribut hat einen festen Wert#IMPLIED Der Wert ist implizit
• <!ATTLIST katalog id ID #REQUIRED
jahr CDATA #IMPLIEDbesitzer CDATA "Orientation in Objects"version CDATA #FIXED "1.0">
40
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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>
21
41
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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">
42
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Entitäten
EntityEntity
XML: General &XML: General &DTD: Parameter %DTD: Parameter %
ParsedParsed UnparsedUnparsed
extern / internextern / intern
extern / internextern / intern nur externnur extern
22
43
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Pseudotypen
• Parameterentitäten können dazu benutzt werden, Pseudotypen zudefinieren
<!ENTITY % string "#PCDATA">
<!ENTITY % date "#PCDATA">
<!ELEMENT name (%string;)>
<!ELEMENT ankunft (%date;)>
44
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Einfache Ersetzung
• Mit generellen Entitäten können einfache Textersetzungenvorgenommen werden
<!ENTITY text "Hallo Welt!">
<hallo> &text; </hallo>
<hallo> Hallo Welt! </hallo>
23
45
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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>
46
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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>
24
47
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Namensräume und DTD
• DTDs unterstützen Namespaces nicht, da es in DTDs keineUnterscheidung zwischen lokalen und qualifizierten Namen gibt
• Workaround:
<!ELEMENT oio:katalog (...)>
<!ATTLIST oio:katalog xmlns:oio #FIXED "http://www.oio.de/names">
48
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Nachteile von DTD
• Unhandliche (auf Maschinenlesbarkeit gerichtete) Syntax
• Reine Strukturbeschreibung
• "Flacher" Aufbau
• Keine Typen
• Keine Objektorientierung
25
49
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Eigenschaften von XML-Dokumenten
• Wohlgeformtheit– Dokument syntaktisch korrekt?
• Konformität– Dokument entspricht der DTD?
• Gültigkeit– Wohlgeformtheit und Konformität gegeben?
50
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Gliederung
• eXtensible Markup Language
• Verarbeitung von XMLDatenbeständen
• XML Datenbestände
• DTD
• W3C XML Schema• XML APIs
• Xpath• XSLT
26
51
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Motivation
• Überwinden der Schwächen von DTD
• XML Syntax
• Datentypen
• Objektorientierung
52
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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
27
53
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Hierarchie der Datentypen
54
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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>
28
55
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Schema-Instance
<?xml version="1.0"?><hallo xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="hallo.xsd">
Hallo Welt!</hallo>
56
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Komplexe Typen
<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>
<!ELEMENT Adresse (Vorname,Nachname,Strasse,Wohnort,PLZ)>
29
57
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Einfache Typen
...<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>...
10000 <= PLZ < 99999
58
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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
30
59
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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:
namename
personperson
nachnamenachname
vornamevornamenamename
firmafirma
TextText
60
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Attributdeklaration
<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>
<!ATTLIST adresse art CDATA #REQUIRED>
31
61
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
<!ATTLIST adresse art (geschäftlich|privat) #REQUIRED>
Attributdeklaration
<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>
62
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Gliederung
• eXtensible Markup Language
• Verarbeitung von XMLDatenbeständen
• XML Datenbestände
• DTD
• W3C XML Schema• XML APIs
• Xpath• XSLT
32
63
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XML - Databinding
Schema
Dokument Objekt
Klasse
64
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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
33
65
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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/
66
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Übersicht JAXP Architektur
JAXP
Implementierung(Crimson, Xerces, ...)
SAX
34
67
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Gesamtübersicht SAX2 inklusive JAXP
SAXParserFactory
SAXParser
XML
DefaultHandler
XMLReader
ContentHandler
ErrorHandler
DTDHandler
EntityResolver
68
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Simple API for XML
<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
startElement(„kunde“)
endElement(„kunde“)
35
69
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Selbst XML Dokumente erzeugen
• Zum Erzeugen von eigenen XML Dokumenten bietet sich eineBaum Struktur an
Document
DocumentType Element
Element Element Attribut Text
Text EntityReference Text
ElementAttribut Attribut Element
Text
Comment
70
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Composite Design Pattern
36
71
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Document Object Model
72
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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
37
73
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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/
74
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Übersicht Architektur
JAXP
Implementierung(Crimson, Xerces, Xalan, ...)
TrAX
DOM
SAX
38
75
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Gliederung
• eXtensible Markup Language
• Verarbeitung von XMLDatenbeständen
• XML Datenbestände
• DTD
• W3C XML Schema• XML APIs
• XPath• XSLT
76
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XPath
• Spezifiziert Adressierung eines XML-Dokumentes
• Enthält 13 Achsenbezeichner (AxisName)
• Es existieren Kurz- und Langformen zur Adressierung
• W3C Recommendation seit 16. November 1999
39
77
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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>
...
78
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Achsen (Auszug)
cdliste
cd cd cd
preistitel interprettracks
track tracktrack
titel
parent
following-siblingpreceding-sibling
child
40
79
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Location step 1
Ein Step besteht aus Achsennamen und Knotentest
AxisName::NodeTest cdliste
cd cd cd
preistitel interprettracks
track tracktrack
titel
parent::cdlisteparent::node()
80
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Location step 2
Ein Step besteht aus Achsennamen und Knotentest
AxisName::NodeTest
following-sibling::cdfollowing-sibling::node()
cdliste
cd dvd cd
preistitel interprettracks
track tracktrack
titel
41
81
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Location step und Location path
Location step
Location step
Location path
<xsl:value-of select="/cdliste/cd/hersteller"/>
<xsl:value-of select="/cdliste/child::cd/child::hersteller"/>
<xsl:value-of select="/descendant::hersteller"/>
82
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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
42
83
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
NodeSet
• Eine Menge von Knoten des Dokumentes
• Listet Knoten eines XPath-Ausdruckes auf
node set
<xsl:for-each select="cd">
84
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Context Node
Node
Namespace
Attribute1Attribute2
Attribute3
Text
<seminar von="1" bis="2" mit="3">Das Sem...</seminar>
43
85
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Prädikate
Node Set des NodeTestes
Gefiltertes Node Setcd[interpret=‘Madonna‘]
Menge aller CD Elemente
Menge aller CD Elementemit Interpret Madonna
86
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Kontext in einem Prädikat
//cd[interpret=‘Madonna‘]
Context =
gesamterBaum
Context = aktuelle cd
44
87
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Kurzschreibweisen
Short Version Long Version// /descendant-or-self::node()/
ElementName child::ElementName@AttName attribute::AttName
. self::node().. parent::node()
[n] [position()=n]
88
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Gliederung
• eXtensible Markup Language
• Verarbeitung von XMLDatenbeständen
• XML Datenbestände
• DTD
• W3C XML Schema• XML APIs
• XPath• XSLT
45
89
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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?
90
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XQuery
Von XSL zu XSLT
XSL
XSLXSL
XSLT
XSLT
XPATH
Formatierung
Transformation
Selektion:XPATH 1.0 Rec => 16.11.99XPATH 2.0 WD => 04.04.05
XSL 1.0
XSLT 1.0 Rec => 16.11.99XSLT 2.0 WD => 4.04.05
21.04.99
09.07.99
Selektion:XQuery 1.0 WD => 04.04.05
46
91
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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 derVerabschiedung ?
92
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XSL – Familie
Spezifikationen: www.w3c.org
3 Teile:• Transformationssprache XSLT
– Ändern der Struktur– Hinzufügen von Formatierungsanweisungen
• Navigationssprache XPATH– Adressieren von XML-Elementen
• Präsentationssprache XSL-Fo– auf den Millimeter genaue
Formatierung von Dokumenten
Quellbaum
XSL Transformation
(Xalan, Saxon, MSXML)
Zielbaum
XSL Formatierer
(FOP, RenderX) ...
XPATHXSLT
XSL
47
93
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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 eineSprache zur Transformation von Bäumen
• Die Transformation geschieht durch einen XSLT-Prozessor
94
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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
48
95
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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)
96
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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)
49
97
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XSLTProcessor
XSLT Baumtransformation
Source
Stylesheet
Stylesheet
XML Dokument
ResultOutput File
Serialisierung
98
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XSLTProcessor
XSLTProcessor
site.xml
news.xml
kontakt.xml
*.xml
sitemap.xml
include.xsl news.htm
kontakt.htm
*.htm
page.xsl
XSLT Transformations-Pipeline
50
99
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
<?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>
Das Grundgerüst von XSLT
100
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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
51
101
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Regelbasiert
• Verarbeitung basiert auf Regeln, so genannte Templates• Beispielregel:
Triffst du auf Element XYZ erzeuge ein FOO Block Elementmit den angegebenen Attributen und fahre mit derBearbeitung 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>
102
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Muster + Schablone
<fo:block font-family="Arial"font-size=“48pt"break-after="page">
Hello Formatting Objects!
</fo:block>
</xsl:template>
<xsl:template match=“[Muster]">
Schablone
52
103
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Transformationsmodel
• Der Prozessor geht den Eingabebaum durch und sucht für alleKnoten eine passende Regel
• Bei mehreren passenden Regeln wird die "am besten passende"Regel ausgesucht
• Ist eine Regel gefunden, wird sie ausgeführt
104
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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ähltStichwort Prädikate
• Der entsprechende Knoten wird zum Context Knoten
• Schablone wird instanziiert und
• Bearbeitung wird an den Kind-Knoten fort gesetzt.
53
105
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
<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
106
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
<xsl:template match="foo|bar">
Sollen mehrere Elemente genau gleich verarbeitet werden?
• Eine Regel kann auch auf mehrere Elemente angewandtwerden
• Die Trennung erfolgt durch das Pipe-Symbol
Matchpattern
<xsl:template match=“interpret | titel"> <b> <xsl:value-of select="."/> </b></xsl:template>
Ausgabe
54
107
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Vordefinierte Regeln
<xsl:template match="* | /"> <xsl:apply-templates/></xsl:template>
<xsl:template match="text() | @*"> <xsl:value-of select="."/></xsl:template>
108
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Eher lästig:
<xsl:template match="* | /"> <xsl:apply-templates/></xsl:template>
Ganz nett:
<xsl:template match="text() | @*"> <xsl:value-of select="."/></xsl:template>
Build-In Template Rules
/
55
109
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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>
110
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Document Order - Leserichtung
1
2 3 9
1210 114
5 76
8
/
56
111
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
<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>
112
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
<xsl:template match="cd"> <p> <xsl:apply-templates/> </p></xsl:template>
<xsl:template match="hersteller"> <b>Ein Hersteller</b></xsl:template>
• Anweisung für Prozessor mit Transformation bei denKindelementen fortzufahren
• Alle Regeln für Kindelemente werden gesucht und abgearbeitet• Keine Regel = Keine Verarbeitung
<xsl:apply-templates/>
/
57
113
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
<xsl:template match=“cdliste"> <h1> <xsl:apply-templates select=“interpret"/> </h1> <xsl:apply-templates select=“tracks"/></xsl:template>
• 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:apply-templates select="foo"/>
114
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
<xsl:value-of select=“xyz”>
• <xsl:value-of select="..."/> gibt den Wert (value) eines Knotenszurü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
58
115
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
<xsl:for-each select=“xyz”>
• Über Mengen von Knoten kann mit for-each iteriert werden
<xsl:for-each select="cd">
mach diesmach das
</xsl:for-each>
116
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
<xsl:if test=“xyz”>
• <xsl:if> ist analog zum if-Ausdruck in Programmiersprachen
<xsl:if test="position()=last()">
mach diesmach das
</xsl:if>
59
117
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
<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>
118
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Gliederung
• eXtensible Markup Language
• Verarbeitung von XMLDatenbeständen
• XML Datenbestände
• Architekturelles Umfeld
• Datenexport• Datenimport
60
119
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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
120
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XML als Datenformat
• Vorteile:
– selbstbeschreibend– Portabilität (Unicode)– Daten liegen als Baumstruktur vor
• Nachteile:
– sehr textlastig– langsamer Zugriff (Parsen und Textumwandlung)
61
121
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XML Dateien als DBMS?
Schlussfolgerung:
In Umgebungen mit kleinen Datenmengen, wenigen Benutzernund geringern Anforderungen an die Performance ist der Einsatzvon XML als DBMS sinnvoll.
? Warum soll man dann überhaupt XML als Datenbasis inBetracht ziehen?
122
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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.
62
123
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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
124
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Typen von XML Dokumenten
Es gibt zwei Typen von XML-Dokumenten:
– data-centric
– document-centric
63
125
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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>
126
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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 turkeywrench</Link></Item>
</List> ...
</Product>
64
127
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Unterscheidung der Dokumenttypen
• Unterscheidung zwischen den beiden Dokumenttypen ist nichtimmer klar und eindeutig
– Data-centric Dokumente können auch grobkörnige Daten (z.B.Bauteilbeschreibungen)
– Document-centric Dokumente können auch strukturierte Datenenthalten (z.B. die Autor- oder Erscheinungsdaten eines Buches)
• Unterscheidung der Dokumenttypen hilft bei der Auswahl derDatenbank
128
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XML Datenbanken
• Unterscheidung:
– Native XML Datenbanken– XML - aware / enabled Datenbanken
• Beide werden als XML Datenbanken bezeichnet, aber nicht immerist die zu Grunde liegende Struktur XML
65
129
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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 sowieSpeicherung und Abfrage von Dokumenten diesem Modellentsprechend
130
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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 zuspeichern ( eigene Funktionen und Datentypen )
• Geschieht durch sogenanntes Mapping von XML Dateien
• Teilweise auch die Möglichkeit der Abfrage über gespeicherteXML Dokumente
66
131
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Gliederung
• eXtensible Markup Language
• Verarbeitung von XMLDatenbeständen
• XML Datenbestände
• Architekturelles Umfeld
• Datenexport• Datenimport
132
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Interorganisationaler Datentransfer mit XML
XMLXML
DBMS DBMS
DTD DTD
DatenexportDate
nexpor
t
validieren
validieren
DatenimportXSL
TRANSFORMATOR
XML
validieren
output
DTD-AustauschXML-Struktur XML-Struktur
67
133
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XML Generationstechniken
VollständigerDB-inhalt
IndividuelleTransformation
Generierung ausRDBMS
Anfrage-inhalte
134
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Vollständiger DB-Inhalt
Artikel-Nr Artikelname Lieferant Kategorie Liefereinheit Einzelpreis LagerbestandBestellte EinheitenMindestbestand Auslaufartikel
1 ChaiExotic Liquids Getränke
10 Kartons x 20 Beutel 18,00 DM 39 0 10 FALSCH
2 ChangExotic Liquids Getränke
24 x 12-oz-Flaschen 19,00 DM 17 40 25 FALSCH
3Aniseed Syrup
Exotic Liquids Gewürze
12 x 550-ml-Flaschen 10,00 DM 13 70 25 FALSCH
4
Chef Anton's Cajun Seasoning
New Orleans Cajun Delights Gewürze
48 x 6-oz-Gläser 22,00 DM 53 0 0 FALSCH
5Chef Anton's Gumbo Mix
New Orleans Cajun Delights Gewürze 36 Kartons 21,35 DM 0 0 0 WAHR
6
Grandma's Boysenberry Spread
Grandma Kelly's Homestead Gewürze
12 x 8-oz-Gläser 25,00 DM 120 0 25 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> ...
Datenbank: betrachtet als dreistufige Hierarchie von• Datenbank - Relation - AttributenDarstellung im XML-Dokumentdurch Elemente und Attribute
68
135
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Anfrage-inhalte
1 0 Chai 182 0 Chang 193 0 Aniseed Syrup 104 0 Chef Anton's Cajun Seasoning 225 0 Chef Anton's Gumbo Mix 21,356 0 Grandma's Boysenberry Spread 257 0 Uncle Bob's Organic Dried Pears 308 0 Northwoods Cranberry Sauce 409 0 Mishi Kobe Niku 97
10 0 Ikura 3111 0 Queso Cabrales 2112 0 Queso Manchego La Pastora 3813 0 Konbu 614 0 Tofu 23,2515 0 Genen Shouyu 15,516 0 Pavlova 17,4517 0 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]
136
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Individuelle Transformation
1 0 Chai 182 0 Chang 193 0 Aniseed Syrup 104 0 Chef Anton's Cajun Seasoning 225 0 Chef Anton's Gumbo Mix 21,356 0 Grandma's Boysenberry Spread 257 0 Uncle Bob's Organic Dried Pears 308 0 Northwoods Cranberry Sauce 409 0 Mishi Kobe Niku 97
10 0 Ikura 3111 0 Queso Cabrales 2112 0 Queso Manchego La Pastora 3813 0 Konbu 614 0 Tofu 23,2515 0 Genen Shouyu 15,516 0 Pavlova 17,4517 0 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
69
137
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Comma Separated Values CSV
Nr;Bezeichnung;Menge;Preis1;Dauerlutscher;10;1,992;Kaffee;2;3,83;Kuli;100;0,8
CSV Export
138
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Konverter (XMLSpy)
70
139
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Gliederung
• eXtensible Markup Language
• Verarbeitung von XMLDatenbeständen
• XML Datenbestände
• Architekturelles Umfeld
• Datenexport• Datenimport
140
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XML Persistenztechniken
Volltext und XML -IndizierungVolltextindizierung
Files/CLOB
StrukturellesMapping
Verwendung derBaumstruktur
Datenbanken
Graphen DOM-Modell
individuellVollständig
71
141
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Volltextindizierung
<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>
...
TERM REFERENZcdlisteerstelldatumcdMadonnaMusicpreistrack
142
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Volltext und XML-Indizierung
<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>
...
TERM REFERENZcdlisteerstelldatumcdMadonnaMusicpreistrack
ELEMENT REFERENZ PARENTcdliste /erstelldatum cdlistecd cdlistepreis cdtrack cdinterpret cdtitel track
72
143
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Vollständiges Mapping RDBMS
pk fk beschreibung erstelldatum tistentitel1 0 Diese CD-Liste ist... 14.01.2001 OIO CD-Liste
pk fk id jahr hersteller interpret preis titel1 1 65 2000 BMG Madonna 19.99 Music2 1 215 1998 BMG U2 21.49 The Best Of 1980-19903 1 26 1988 BMG R.E.M 19.49 Green
cd_fk tracks_fk1 12 23 34 45 56 67 78 89 9
10 10
pk fk number laenge titel1 1 1 04:35 Music2 1 2 05:10 Impressive Instant3 1 3 04:20 Runaway Lover4 1 4 03:50 I Deserve It5 1 5 04:15 Amazing6 1 6 03:56 Nobody's Perfect7 1 7 04:57 Don't Tell Me8 1 8 06:20 What It Feels Like For A Girl9 1 10 03:25 Paradise (Not For Me)
10 1 11 04:47 Gone11 1 12 04:29 American Pie12 2 1 04:15 Pride (In The Name Of Love)13 2 2 03:01 New Year's Day14 2 4 05:58 With Or Without You15 2 5 03:45 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>
...
144
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Vollständiges Mapping OODBMS
listentitel erstelldatum beschreibungid jahr titel interpret hersteller preis
number titel laengetrack
trackscd
73
145
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Individuelles Mapping
<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>
...
cd_id number laenge titel65 1 04:35 Music65 2 05:10 Impressive Instant65 3 04:20 Runaway Lover
id interpret titel65 Madonna Music
215 U2 The Best Of 1980-199026 R.E.M Green
146
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Baumstruktur als Graphen I
<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 ATTRIBUTE VALUEid 65jahr 2000id 1
ELEMENT Type VALUE PARENTcdlisteerstelldatum 14.01.2001cdpreis String 19.99trackinterpret String Madonnatitel String Music
74
147
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Baumstruktur als Graphen II
<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 ATTRIBUTE VALUEid 65jahr 2000id 1
ELEMENT Type VALUEString 14.01.2001String 19.99String MadonnaString Music
ELEMENT PARENTcdlisteerstelldatumcdpreistrackinterprettitel
148
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
XML Persistenztechniken
Volltext und XML -IndizierungVolltextindizierung
Files/CLOB
StrukturellesMapping
Verwendung derBaumstruktur
Datenbanken
Graphen DOM-Modell
UnvollständigVollständig
DatenzentriertDokumentenzentriert
75
149
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Datentypen
• XML unterstützt keine Datentypen
• Sämtliche Daten eines XML Dokumentes, ausgenommen„unparsed entities“, sind Text
• Datenübertragungssoftware konvertiert Daten von Text zuanderen Datentypen und umgekehrt
150
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Binärdaten
• Zwei Möglichkeiten Binärdaten zu speichern:
– unparsed Entities– Base64 encoding
• Regeln für das Senden von Binärdaten an und Empfangen ausDatenbanken sind sehr strikt
• Es gibt keine XML Notation, die anzeigt, dass Base64 encodedData enthalten ist im Dokument
? Probleme mit der Software sind vorprogrammiert
76
151
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Character Sets
• XML Dokumente können jeglichen Unicode darstellen mitAusnahme einiger Kontrollzeichen
• Viele DB bieten keine oder nur ungenügende Unterstützung beider Behandlung von nicht-ASCII Zeichen
152
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
Processing Instructions und Kommentare
• Nicht Teil der XML Daten
• Werden von Datentransfersoftware meistens nicht behandelt
• Nur schwer in ein Tabellenschema zu mappen
77
153
© 2005 Orientation in Objects GmbHDatenintegration und Datenaustausch mit XML-Techniken
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 aposEntitäten
• nicht XML-Abfragesprachen (SQL) können nicht zwischen markupund Entities unterscheiden
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
www.oio.deinfo@oio.deVersion: 1.1
???
? ?
????
Fragen ?