+ All Categories
Home > Documents > Datenintegration und Datenaustausch mit XML …...1 Orientation in Objects GmbH Weinheimer Str. 68...

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

Date post: 27-May-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
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

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 !


Recommended