die extensible markup language - mario-jeckle.de · xhtml xml-schema xslt...
TRANSCRIPT
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
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
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
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
WinWord
SGML
HerkunftundIdee
generischeAuszeichnung
dasWeb
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
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
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
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
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
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/>
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
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.
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
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 ...
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
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
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
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
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
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
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, ...
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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