Datenintegration und Datenaustausch mit XML …...1 Orientation in Objects GmbH Weinheimer Str. 68...

78
1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] Version: 1.1 Datenintegration und Datenaustausch mit XML-Techniken 2 © 2005 Orientation in Objects GmbH Datenintegration und Datenaustausch mit XML-Techniken Gliederung eXtensible Markup Language Verarbeitung von XML Datenbeständen XML Datenbestände Motivation und Ziele Syntaktische Grundlagen Namensräume

Transcript of Datenintegration und Datenaustausch mit XML …...1 Orientation in Objects GmbH Weinheimer Str. 68...

1

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]: 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: &#169;&#x00A9;&#xA9;

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

&amp; &&lt; <&gt; >&quot; "&apos; '

• 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) ...

PDF

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&apos;s Cajun Seasoning 225 0 Chef Anton&apos;s Gumbo Mix 21,356 0 Grandma&apos;s Boysenberry Spread 257 0 Uncle Bob&apos;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&apos;s Cajun Seasoning 225 0 Chef Anton&apos;s Gumbo Mix 21,356 0 Grandma&apos;s Boysenberry Spread 257 0 Uncle Bob&apos;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

[email protected]: 1.1

???

? ?

????

Fragen ?

78

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]: 1.1

Vielen Dank für IhreAufmerksamkeit !