die extensible markup language - mario-jeckle.de · xhtml xml-schema xslt...

36
GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09 Die Extensible Markup Language (XML) Idee und praktische Anwendung Prof. Mario Jeckle Fachhochschule Furtwangen [email protected] http://www.jeckle.de

Upload: others

Post on 08-Sep-2019

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

Die Extensible Markup Language (XML)

Idee und praktische Anwendung

Prof. Mario Jeckle

Fachhochschule [email protected]

http://www.jeckle.de

Page 2: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

2M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

e

Extensible

Markup

Language

(XML)XML-Technik

PraktischerEinsatz

SGML

HerkunftundIdee

generischeAuszeichnung

dasWeb

XHTML

XML-Schema XSLT

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Page 3: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

7M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eMotivation und Einführung:

Auszeichnungssprachen

Herrn

Dr. Max Mustermann

Musterstr. 42

12345 Musterstadt

Ihre Nachricht vom 2003-07-01

Unsere Zeichen ab/cd

Unsere Nachricht vom 2003-07-09

Ihre Zeichen xy/-

Sehr geehrte Damen und Herren,

Maior pars mortalium, Pauline, de naturae malignitate conqueritur, quod in

exiguum aevi gignimur, quod haec tam velociter, tam rapide dati nobis temporis

spatia decurrunt, adeo ut exceptis admodum paucis ceteros in ipso vitae

apparatu vita destituat.

Nec huic publico, ut opinantur, malo turba tantum et inprudens volgus ingemuit.

Mit freundlichen Grüßen

Mario Jeckle

PräsentationsEigenschaften

EditorielleEigenschaften

Kleinschreibung

Unterstreichung

Fettdruck

Einrückung

Anschrift

Anrede

Brieftext

Grußformel

SGML

HerkunftundIdee

generischeAuszeichnung

dasWeb

Page 4: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

9M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eMotivation und Einführung:Dokument(ations-)sprachen

strukturelleKomplexität

LayoutKomplexität

Erweiterbarkeitder Sprache

SGMLXML

HTML

PDF

WinWord

SGML

HerkunftundIdee

generischeAuszeichnung

dasWeb

Page 5: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

21M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

e

HypertextMemex

Generic Coding,Editorial Structure Tags

Generalized markup language

StandardizedGeneralized markup language

Extensible Markup Language

XML Schema

Semantic Web

ResourceDescriptionFramework

SGML

HerkunftundIdee

generischeAuszeichnung

dasWeb

Motivation und Einführung:Historische Entwicklung hin zu XML

Dokumentenorientiert1950-1990

Datenorientiertseit 1990

Page 6: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

25M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

e

<?xml version="1.0" encoding="UTF-8"?><Vortrag xmlns:xhtml="http://www.w3.org/1999/xhtml">

<Titel>Die Extensible Markup Language (XML)</Titel><Untertitel>Idee und praktische Anwendung</Untertitel><Abstract>Seit ihrer Veröffentlichung durch das <xhtml:a href="http://www.w3.org">World Wide Web Konsortium</xhtml:a> ist der <xhtml:b>Extensible Markup Language</xhmtl:b>...</Abstract><Veranstaltung datum="2003-07-09">

<Name>GI Regionalgruppe Südbaden</Name></Veranstaltung><Referent>

<Name>Mario Jeckle</Name><Institution>Fachhochschule Furtwangen</Institution><URL>http://www.jeckle.de</URL><E-Mail>[email protected]</E-Mail>

</Referent></Vortrag>

<?xml version="1.0" encoding="UTF-8"?><Vortrag xmlns:xhtml="http://www.w3.org/1999/xhtml">

<Titel>Die Extensible Markup Language (XML)</Titel><Untertitel>Idee und praktische Anwendung</Untertitel><Abstract>Seit ihrer Veröffentlichung durch das <xhtml:a href="http://www.w3.org">World Wide Web Konsortium</xhtml:a> ist der <xhtml:b>Extensible Markup Language</xhmtl:b>...</Abstract><Veranstaltung datum="2003-07-09">

<Name>GI Regionalgruppe Südbaden</Name></Veranstaltung><Referent>

<Name>Mario Jeckle</Name><Institution>Fachhochschule Furtwangen</Institution><URL>http://www.jeckle.de</URL><E-Mail>[email protected]</E-Mail>

</Referent></Vortrag>

Motivation und Einführung:Ein erstes XML-Dokument

Page 7: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

26M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eMotivation und Einführung:

XML in 10 Punkten

I. XML steht für strukturierte Daten

II. XML sieht ein wenig wie HTML aus

III. XML ist Text, aber nicht zum Lesen

IV. XML ist vom Design her ausführlich

V. XML ist eine Familie von Techniken

VI. XML ist neu, aber nicht so neu

VII.XML überführt HTML in XHTML

VIII.XML ist modular

IX. XML ist die Basis für RDF und das Semantic Web

X. XML ist lizenzfrei, plattformunabhängig und gut unterstützt

SGML

HerkunftundIdee

generischeAuszeichnung

dasWeb

Page 8: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

28M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eXML-Technik: (X)HTML XML-

Technik

XHTML

XML-Schema

XSLT

Standard Generalized Markup Language

(SGML)

Extensible MarkupLanguage(XML)

Untermenge

Anwendung

HyperTextMarkup

Language(HTML)

1989

eXtensible HyperTextMarkup

Language(XHTML)

Anwendung2000

Page 9: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

29M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eXML-Technik: (X)HTML XML-

Technik

XHTML

XML-Schema

XSLT•Keine überlappenden Elemente<p>here is an emphasized <em>paragraph</em>.</p>

•Korrekte Terminierung

<p>here is an emphasized <em>paragraph</p>.</em>

<p>here is a paragraph.<p>here is another paragraph.

<p>here is a paragraph.</p><p>here is another paragraph.</p>

•Attributdarstellung

table rows="3" table rows=3

Page 10: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

30M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eXML-Technik: (X)HTML XML-

Technik

XHTML

XML-Schema

XSLT

•Attributminimierung

<dl compact>

<dl compact="compact“>

•Leere Elemente

<br><hr>

<br/><hr/>

Page 11: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

31M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eXML-Technik: XML-Schema XML-

Technik

XHTML

XML-Schema

XSLT

<?xml version="1.0" encoding="UTF-8"?><Vortrag xmlns:xhtml="http://www.w3.org/1999/xhtml">

<Titel>Die Extensible Markup Language (XML)</Titel><Untertitel>Idee und praktische Anwendung</Untertitel><Abstract>Seit ihrer Veröffentlichung durch das <xhtml:a href="http://www.w3.org">World Wide Web Konsortium</xhtml:a> ist der <xhtml:b>Extensible Markup Language</xhmtl:b>...</Abstract><Veranstaltung datum="2003-07-09">

<Name>GI Regionalgruppe Südbaden</Name></Veranstaltung><Referent>

<Name>Mario Jeckle</Name><Institution>Fachhochschule Furtwangen</Institution><URL>http://www.jeckle.de</URL><E-Mail>[email protected]</E-Mail>

</Referent></Vortrag>

<?xml version="1.0" encoding="UTF-8"?><Vortrag xmlns:xhtml="http://www.w3.org/1999/xhtml">

<Titel>Die Extensible Markup Language (XML)</Titel><Untertitel>Idee und praktische Anwendung</Untertitel><Abstract>Seit ihrer Veröffentlichung durch das <xhtml:a href="http://www.w3.org">World Wide Web Konsortium</xhtml:a> ist der <xhtml:b>Extensible Markup Language</xhmtl:b>...</Abstract><Veranstaltung datum="2003-07-09">

<Name>GI Regionalgruppe Südbaden</Name></Veranstaltung><Referent>

<Name>Mario Jeckle</Name><Institution>Fachhochschule Furtwangen</Institution><URL>http://www.jeckle.de</URL><E-Mail>[email protected]</E-Mail>

</Referent></Vortrag>

URI

Datum

Text

Page 12: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

32M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

e

Typ

Unicode-Ze ichen(ke t te )

IEEE754

{t r u e ,fa lse,0,1}

XML -Sc

hema

b y t eu n s i g n e d B y t e

s h o r ti n t

l o n gs t r i n g

f l o a td o u b l e

b o o l e a nd e c i m a l

Micros

oft

CLS

-b y t es h o r t

in tl o n g

s t r i n gf l o a t

d o u b l eb o o l

d e c i m a l

Java

b y t e-

s h o r tin t

l o n gS t r i n gf l o a t

d o u b l eb o o l e a n

B i g D e c i m a l

SQL9

2/SQ

L3

t i n y i n t

i n t , in t e g e rs m a l l i n t

n u m e r i c (p ,s),d e c , d e c i m a l( p , s )

f l o a t , r e a l ,d o u b l e

b y t e

b o o l e a n

XML-Technik: XML-Schema XML-Technik

XHTML

XML-Schema

XSLT

XML Schema Part 2 definiert ein an die gängigen Programmier- und Datenbanksprachen angelehntes Typsystem zur Validierung von XML-Dokumenten und zur plattformunabhängigen lexikalischenReprä-sentation typisierter Inhalte.

Page 13: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

33M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

e

<?xml version="1.0" encoding="UTF-8"?><Vortrag xmlns:xhtml="http://www.w3.org/1999/xhtml">

<Titel>Die Extensible Markup Language (XML)</Titel><Untertitel>Idee und praktische Anwendung</Untertitel><Abstract>Seit ihrer Veröffentlichung durch das <xhtml:a href="http://www.w3.org">World Wide Web Konsortium</xhtml:a> ist der <xhtml:b>Extensible Markup Language</xhmtl:b>...</Abstract><Veranstaltung datum="2003-07-09">

<Name>GI Regionalgruppe Südbaden</Name></Veranstaltung><Referent>

<Name>Mario Jeckle</Name><Institution>Fachhochschule Furtwangen</Institution><URL>http://www.jeckle.de</URL><E-Mail>[email protected]</E-Mail>

</Referent></Vortrag>

<?xml version="1.0" encoding="UTF-8"?><Vortrag xmlns:xhtml="http://www.w3.org/1999/xhtml">

<Titel>Die Extensible Markup Language (XML)</Titel><Untertitel>Idee und praktische Anwendung</Untertitel><Abstract>Seit ihrer Veröffentlichung durch das <xhtml:a href="http://www.w3.org">World Wide Web Konsortium</xhtml:a> ist der <xhtml:b>Extensible Markup Language</xhmtl:b>...</Abstract><Veranstaltung datum="2003-07-09">

<Name>GI Regionalgruppe Südbaden</Name></Veranstaltung><Referent>

<Name>Mario Jeckle</Name><Institution>Fachhochschule Furtwangen</Institution><URL>http://www.jeckle.de</URL><E-Mail>[email protected]</E-Mail>

</Referent></Vortrag>

XML-Technik: XML-Schema XML-Technik

XHTML

XML-Schema

XSLT

Vortrag

Titel Untertitel Abstract Veranstaltung

Namedatum

Page 14: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

34M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eXML-Technik: XML-Schema XML-

Technik

XHTML

XML-Schema

XSLT

• Grammatik für beliebige XML-Vokabulare• Part 1 beschreibt Strukturen und

Inhaltseinschränkungen• Part 2 definiert Datentypdefinition für Schema Part 1

und weitere XML-Vokabulare• Signifikante Erweiterung der DTD-Mächtigkeit, wird

diese langfristig ersetzen• Ist eine XML-Sprache• Integriert die wichtigsten konkurrierenden

Vorgängeransätze• Seit 2001-05-02 W3C Recommendation• Basis aller W3C-Standards der zweiten Generation

(XPath v2.0, XSLT v2.0, XHTML v2.0, SOAP v1.2, ...)• Werkzeugunterstützung verfügbar• Erster Schritt der Schema-Bestrebungen, weitere

werden folgen ...

Page 15: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

35M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eXML-Technik: XSLT XML-

Technik

XHTML

XML-Schema

XSLT

<?xml version = "1.0" encoding = "UTF-8"?><document>

<invoice><day>23</day><month>August</month><year>2001</year><deliveryTo>

</invoice><BOM>

<position no="1"><record id="42">

<prdRef qty="..." prd="..."/> <prdRef ...

</position><productCat>

<article><belongsTo><catRef catID="..."/>...

</document>

<?xml version = "1.0" encoding = "UTF-8"?><document>

<invoice><day>23</day><month>August</month><year>2001</year><deliveryTo>

</invoice><BOM>

<position no="1"><record id="42">

<prdRef qty="..." prd="..."/> <prdRef ...

</position><productCat>

<article><belongsTo><catRef catID="..."/>...

</document>

<?xml version = "1.0" encoding = "UTF-8"?><document>

<invoice issueDate="2001-08-23"><customer>

<id>101</id>...

</invoice><billOfMaterial>

<product name="..." quantity="..."><product ...</product>

...<catalog>

<category name="...<product id="...">

<description xml:lang="en">...

</document>

<?xml version = "1.0" encoding = "UTF-8"?><document>

<invoice issueDate="2001-08-23"><customer>

<id>101</id>...

</invoice><billOfMaterial>

<product name="..." quantity="..."><product ...</product>

...<catalog>

<category name="...<product id="...">

<description xml:lang="en">...

</document>

• Problem: Menge existierender XML-Vokabulare• Ursache: XML Vokabularerstellung ist einfach ...• Lösung:

• Standardisierung• Transformationen

Page 16: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

36M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eXML-Technik: XSLT XML-

Technik

XHTML

XML-Schema

XSLT

• Wandlung zwischen verschiedenen XML-Vokabularen mit der W3C-standardisierten Sprache XSL Transformations

<?xml version="1.0" encoding="UTF-8"?><xsl:transform version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform" extension-element-prefixes="">

<xsl:output method="xml" encoding="ISO-8859-1" omit-xml-declaration="no" indent="yes" />

<xsl:template match="document"><document>

<xsl:apply-templates/></document>

</xsl:template>

<xsl:template match="invoice"><invoice>

<day><xsl:value-of select="substring(@issueDate,9,2)"/></day><month>

<xsl:choose><xsl:when test="substring(@issueDate,6,2) = '01'">January</xsl:when><xsl:when test="substring(@issueDate,6,2) = '02'">February</xsl:when><xsl:when test="substring(@issueDate,6,2) = '03'">March</xsl:when><xsl:when test="substring(@issueDate,6,2) = '04'">April</xsl:when><xsl:when test="substring(@issueDate,6,2) = '05'">May</xsl:when><xsl:when test="substring(@issueDate,6,2) = '06'">June</xsl:when><xsl:when test="substring(@issueDate,6,2) = '07'">July</xsl:when><xsl:when test="substring(@issueDate,6,2) = '08'">August</xsl:when><xsl:when test="substring(@issueDate,6,2) = '09'">September</xsl:when><xsl:when test="substring(@issueDate,6,2) = '10'">October</xsl:when><xsl:when test="substring(@issueDate,6,2) = '11'">November</xsl:when><xsl:when test="substring(@issueDate,6,2) = '12'">December</xsl:when>

</xsl:choose></month><year><xsl:value-of select="substring(@issueDate,1,4)"/></year> <xsl:variable name="curCustID"><xsl:value-of select="customer/id"/></xsl:variable>

<?xml version="1.0" encoding="UTF-8"?><xsl:transform version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform" extension-element-prefixes="">

<xsl:output method="xml" encoding="ISO-8859-1" omit-xml-declaration="no" indent="yes" />

<xsl:template match="document"><document>

<xsl:apply-templates/></document>

</xsl:template>

<xsl:template match="invoice"><invoice>

<day><xsl:value-of select="substring(@issueDate,9,2)"/></day><month>

<xsl:choose><xsl:when test="substring(@issueDate,6,2) = '01'">January</xsl:when><xsl:when test="substring(@issueDate,6,2) = '02'">February</xsl:when><xsl:when test="substring(@issueDate,6,2) = '03'">March</xsl:when><xsl:when test="substring(@issueDate,6,2) = '04'">April</xsl:when><xsl:when test="substring(@issueDate,6,2) = '05'">May</xsl:when><xsl:when test="substring(@issueDate,6,2) = '06'">June</xsl:when><xsl:when test="substring(@issueDate,6,2) = '07'">July</xsl:when><xsl:when test="substring(@issueDate,6,2) = '08'">August</xsl:when><xsl:when test="substring(@issueDate,6,2) = '09'">September</xsl:when><xsl:when test="substring(@issueDate,6,2) = '10'">October</xsl:when><xsl:when test="substring(@issueDate,6,2) = '11'">November</xsl:when><xsl:when test="substring(@issueDate,6,2) = '12'">December</xsl:when>

</xsl:choose></month><year><xsl:value-of select="substring(@issueDate,1,4)"/></year> <xsl:variable name="curCustID"><xsl:value-of select="customer/id"/></xsl:variable>

<?xml version = "1.0" encoding = "UTF-8"?><document>

<invoice issueDate="2001-08-23"><customer>

<id>101</id>...

</invoice><billOfMaterial>

<product name="..." quantity="..."><product ...</product>

...<catalog>

<category name="...<product id="...">

<description xml:lang="en">...

</document>

<?xml version = "1.0" encoding = "UTF-8"?><document>

<invoice issueDate="2001-08-23"><customer>

<id>101</id>...

</invoice><billOfMaterial>

<product name="..." quantity="..."><product ...</product>

...<catalog>

<category name="...<product id="...">

<description xml:lang="en">...

</document>

<?xml version = "1.0" encoding = "UTF-8"?><document>

<invoice><day>23</day><month>August</month><year>2001</year><deliveryTo>

</invoice><BOM>

<position no="1"><record id="42">

<prdRef qty="..." prd="..."/> <prdRef ...

</position><productCat>

<article><belongsTo><catRef catID="..."/>...

</document>

<?xml version = "1.0" encoding = "UTF-8"?><document>

<invoice><day>23</day><month>August</month><year>2001</year><deliveryTo>

</invoice><BOM>

<position no="1"><record id="42">

<prdRef qty="..." prd="..."/> <prdRef ...

</position><productCat>

<article><belongsTo><catRef catID="..."/>...

</document>

Quellformat

XSLT-Transformation

Zielformat

Page 17: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

37M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

ePraktischer Einsatz

• XML bietet sich an zur Speicherung von ...– Konfigurationsdaten– Export-/Importdaten– Übermittlung von Dokumenten und entfernten

Funktionsaufrufen

• XML-Technik bietet:– generische programmiersprachenunabhängige

Verarbeitungsschnittstellen (Parser und Speichermodell)

– Sprach- und applikationsunabhängiges Typsystem (XML Schema Part 2)

– Encodierungs- und Aufrufkonventionen(Web Services)

PraktischerEinsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Page 18: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

38M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

ePraktischer Einsatz:

ApplikationsdatenhaltungPraktischer

Einsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Abstraktionund Generizität Simple API for XML (SAX)

Document Object Model (DOM)

Java Data Binding (JAXB, Castor)Problem-spezifität

undLösungs-optimier-

ung

Page 19: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

39M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

ePraktischer Einsatz:

ApplikationsdatenhaltungPraktischer

Einsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Abstraktionund Generizität

Problem-spezifität

undLösungs-optimier-

ung

Simple API for XML (SAX)•Lineare Verarbeitung•Ereignisbasiert•Programmierparadigmenneutral

Document Object Model (DOM)•Abstrahierte Speicherdarstellung•Baumartige Sichtweise•Objektorientiere Schnittstelle

Java Data Binding (JAXB, Castor)•(aus DTD/XSD) generierte Speicherdarstellung•Java-Speichersicht•Generierte Zugriffsmethoden

Page 20: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

40M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

ePraktischer Einsatz:

ApplikationsdatenhaltungPraktischer

Einsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Abstraktionund Generizität

Problem-spezifität

undLösungs-optimier-

ung

Simple API for XML (SAX)•Lineare Verarbeitung•Ereignisbasiert•Programmierparadigmenneutral

Document Object Model (DOM)•Abstrahierte Speicherdarstellung•Baumartige Sichtweise•Objektorientiere Schnittstelle

Java Data Binding (JAXB, Castor)•(aus DTD/XSD) generierte Speicherdarstellung•Java-Speichersicht•Generierte Zugriffsmethoden

• Simple API for XML (SAX)• Entwickelt durch Mitglieder der Mailingliste xml-dev auf

Initiative von David Megginson• Zusammenstellung sprachunabhängiger Schnittstellen• Leichtgewichtig:

• einfach (in eigenen Programmen) einzusetzen• einfach (in beliebige Programmiersprachen) umzusetzen

• Serieller linearer ereignisbasierter Parsingvorgang• Definiert und erfordert keine Speicherstrukturen• SAX ist eine Schnittstelle für Parser, kein Parser!• Laufzeitverhalten skaliert linear mit Dokumentgröße

Page 21: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

41M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

ePraktischer Einsatz:

ApplikationsdatenhaltungPraktischer

Einsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Abstraktionund Generizität

Problem-spezifität

undLösungs-optimier-

ung

Simple API for XML (SAX)•Lineare Verarbeitung•Ereignisbasiert•Programmierparadigmenneutral

Document Object Model (DOM)•Abstrahierte Speicherdarstellung•Baumartige Sichtweise•Objektorientiere Schnittstelle

Java Data Binding (JAXB, Castor)•(aus DTD/XSD) generierte Speicherdarstellung•Java-Speichersicht•Generierte Zugriffsmethoden

• Document Object Model (DOM)• W3C standardisierte API für HTML, XML, CSS, etc.• Definiert programmiersprachenunabhängige baumartige

objektorientierte Speicherstruktur für XML mit Operationen zur Navigation und Manipulation

• Speicheraufwand zur Verwaltung des gesamten XML-Dokuments im Hauptspeicher teilweise sehr hoch

• Mit JDOM existiert eine für Java optimierte moderne Implementierung

• Verfügbar: Diverse Implementierungen: Java 1.4, JDOM, DOM4J, ...

Page 22: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

42M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

ePraktischer Einsatz:

ApplikationsdatenhaltungPraktischer

Einsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Abstraktionund Generizität

Problem-spezifität

undLösungs-optimier-

ung

Simple API for XML (SAX)•Lineare Verarbeitung•Ereignisbasiert•Programmierparadigmenneutral

Document Object Model (DOM)•Abstrahierte Speicherdarstellung•Baumartige Sichtweise•Objektorientiere Schnittstelle

Java Data Binding (JAXB, Castor)•(aus DTD/XSD) generierte Speicherdarstellung•Java-Speichersicht•Generierte Zugriffsmethoden

• Java Data Binding• Grundidee: Verringerung des Impedance Mismatch

zwischen Java und XML• Technisch: Generierung von Java-Klassendefinitionen aus

Grammatik (DTD/XSD) und optional zusätzlich einer Abbildungsdefinition <?xml version = "1.0" encoding = "ISO-8859-1"?>

<xsd:schema xmlns :xsd = "http:// www.w3.org/2001/XMLSchema"targetNamespace = "schema:www.daimlerchrysler.com"xmlns:dcx = "schema:www.daimlerchrysler.c o m"elementFormDefault = "qualified">

<xsd:complexType name = "radType"><xsd:sequence minOccurs = "4" maxOccurs = "5">

<xsd:element name = "Rad"><xsd:complexType >

< !--...

<?xml version = "1.0" encoding = "ISO-8859-1"?>

<xsd:schema xmlns :xsd = "http:// www.w3.org/2001/XMLSchema"targetNamespace = "schema:www.daimlerchrysler.com"xmlns:dcx = "schema:www.daimlerchrysler.c o m"elementFormDefault = "qualified">

<xsd:complexType name = "radType"><xsd:sequence minOccurs = "4" maxOccurs = "5">

<xsd:element name = "Rad"><xsd:complexType >

< !--...

public class Pkw implements java.io.Serializable {

private java .lang.String _nummer;private org. exolab .castor.types.GYear_ baujahr;private NOD2002Example.types.LineType _line;private java .lang.String _halter;private Raeder_ raeder;private Farbe _farbe;private Gewicht _gewicht;public Pkw() {

super();...

public class Pkw implements java.io.Serializable {

private java .lang.String _nummer;private org. exolab .castor.types.GYear_ baujahr;private NOD2002Example.types.LineType _line;private java .lang.String _halter;private Raeder_raeder;private Farbe _farbe;private Gewicht _gewicht;public Pkw() {

super();...

Abbildung

<?xml version = "1.0" encoding = "UTF -8"?><Pkw

xmlns = "schema:www.daimlerchrysler.com"xmlns:x s i= "http://www.w3. org /2001/XMLSchema-instance"xsi:schemaLocation = "schema:www.daimlerchrysler.com file://nummer = "S-NE 4229" line = "Avantgarde"><Raeder>

<Rad/><Rad/>

...

<?xml version = "1.0" encoding = "UTF -8"?><Pkw

xmlns = "schema:www.daimlerchrysler.com"xmlns:x s i= "http://www.w3. org /2001/XMLSchema-instance"xsi:schemaLocation = "schema:www.daimlerchrysler.com file://nummer = "S-NE 4229" line = "Avantgarde"><Raeder>

<Rad/><Rad/>

...

XML-Schema

Java-Klasse

XML-DokumentKonformität

Java-ObjektAbbildung

Serialisierung

Page 23: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

43M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

ePraktischer Einsatz:

DatenaustauschPraktischer

Einsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

• Ablage von applikationsinternen Daten im XML-Format ...– Datenversand an Clients

(z.B. WML, XHTML, RSS)– Langzeitspeicherung/Archivierung– Kopplungsmodell-neutraler Datentransfer (A2A)– Erleichterung der Systemintegration (B2Bi, EAI)– Unterstützung flexibler ad hoc Kollaboration (B2B)

Page 24: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

44M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

ePraktischer Einsatz:

Web ServicesPraktischer

Einsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Was ist ein Web Service?• Intel: Web Services sind eine Technik zur

Kommunikation zwischen heterogenen Geräten.

• Microsoft: Über das Internet auslieferbare Softwarelösung auf der Basis von XML.

• SUN: Applikationsfunktionalität die über das Web zugreifbar wird.

• ... sowie ca. 50 weitere Definitionen

Page 25: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

45M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

ePraktischer Einsatz:

Web ServicesPraktischer

Einsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Was ist ein Web Service?• Definitionsdimensionen

• Strikt technisch à Gefahr des vorzeitigen Veraltens

• Strikt funktional à Gefahr der mangelnden (technischen)

Trennschärfe

• Einbezug des kulturellen Kontexts:• US-Amerikanische Definitionen: eher funktional• Europäische Definitionen: eher technisch

Page 26: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

46M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

e

Dienstleistung

Inhaltsdarstellung

Datentransport

Beschreibung

Verzeichnisdienst

WebInfrastruktur

Prozeßbeschreibung

Praktischer Einsatz:Web Services

PraktischerEinsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Page 27: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

47M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

e

Dienstleistung

Inhaltsdarstellung

Datentransport

Beschreibung

Verzeichnisdienst

WebInfrastruktur

Prozeßbeschreibung

Web Servicebasaler

Praktischer Einsatz:Web Services

PraktischerEinsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Page 28: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

48M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

e

Dienstleistung

Inhaltsdarstellung

Datentransport

Beschreibung

Verzeichnisdienst

WebInfrastruktur

Prozeßbeschreibung

XML

ASN.1EDI

ASCIICDR

Praktischer Einsatz:Web Services

PraktischerEinsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Page 29: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

49M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

e

Dienstleistung

Inhaltsdarstellung

Datentransport

Beschreibung

Verzeichnisdienst

WebInfrastruktur

Prozeßbeschreibung

XML

SOAP

Msg.

XML-RPCRPC

Praktischer Einsatz:Web Services

PraktischerEinsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Page 30: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

50M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

ePraktischer Einsatz:

Web ServicesPraktischer

Einsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Dienstleistung

Inhaltsdarstellung

Datentransport

Beschreibung

Verzeichnisdienst

WebInfrastruktur

Prozeßbeschreibung

XML

SOAP

WSDL

SCL

NASSLSDL

IDL

Page 31: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

51M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

ePraktischer Einsatz:

Web ServicesPraktischer

Einsatz

Appli-kations-

datenhaltung

Daten-Austausch

WebServices

Dienstleistung

Inhaltsdarstellung

Datentransport

Beschreibung

Verzeichnisdienst

WebInfrastruktur

Prozeßbeschreibung

XML

SOAP

WSDL

UDDI

ADS

namingserviceDISCO

propertyservice

Page 32: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

52M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eWeb Service -- Was ist das?

Dienstleistung

Inhaltsdarstellung

Datentransport

Beschreibung

Verzeichnisdienst

WebInfrastruktur

Prozeßbeschreibung

XML

SOAP

WSDL

UDDI

WSFL

BPEL WSCL

XLANG

Orchestration

Page 33: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

53M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eWeb Service -- Was ist das?

Dienstleistung

Inhaltsdarstellung

Datentransport

Beschreibung

Verzeichnisdienst

WebInfrastruktur

Prozeßbeschreibung

XML

SOAP

WSDL

UDDI

OrchestrationWeb Service

Page 34: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

54M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eWeb Service -- Was ist das?

Technische Sicht

VB C++ C# ...

Common Language Specification

Java ...

Java Bytecode

...

Netzwerk

TCP /IPXML 1.0 + Namespaces

XML Schema HTTP, SMTP, BEEP, ...

SOAP

UDDIWSDLWeb Services

Page 35: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

55M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

e<Werbung>

</Werbung>

Kommentierte Übersetzungender relevanten XML-Basisspezifikationen des W3C:

•XML v1.0 2nd edition•XML Schema•XMLBase•XML Namensräume•XSLT•XPath•InfoSet•XLink

Page 36: Die Extensible Markup Language - mario-jeckle.de · XHTML XML-Schema XSLT Appli-kations-datenhaltung Daten-Austausch Web Services. Die Extensible Markup Language (XML) M. Jeckle:

Die

Ext

ensi

ble

Mar

kup L

anguag

e (X

ML)

56M. Jeckle: Die Extensible Markup Language (XML). GI-Regionalgruppe Südbaden, Freiburg, 2003-07-09

jeck

le.d

eEscaping the Acronym Soup:

XML Acronym Demystifier

xml-acronym-demystifier.org