XML - XML: Das Sprachkonzept Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente...

32
XML - XML: Das Sprachkonzept • Basics • Wohlgeformte XML-Dokumente (ohne DTD) • Gültige XML-Dokumente (mit DTD) • Attribute, Style Sheets - XML und EDI: Vision u. Initiativen - XML/EDI: Eine Anwendung

Transcript of XML - XML: Das Sprachkonzept Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente...

XML

- XML: Das Sprachkonzept• Basics• Wohlgeformte XML-Dokumente (ohne DTD)• Gültige XML-Dokumente (mit DTD)• Attribute, Style Sheets

- XML und EDI: Vision u. Initiativen- XML/EDI: Eine Anwendung

Das HTML-Dilemma

HTML - eine Sprache zur Auszeichnung von Dokumenten

<H1>Überschrift 1</H1><H2>Überschrift 2</H2><p>Absatz<p>...

Das HTML-Dilemma

HTML ist ...

einfach

...aber leider...

Erweiterbarkeit: Semantische Auszeichnung unmöglich Struktur: Komplexere Strukturen nicht abbildbar Validierung: Strukturelle Schwächen

XML: Das Sprachkonzept

Was ist XML ?

Die eXtensible Markup Language XML ist eine textbasierte Meta-Auszeichnungssprache, die die Beschreibung, den Austausch, die Darstellung und die Manipulation von strukturierten Daten erlaubt, so daß diese von einer Vielzahl von Anwendungen genutzt werden können.

XML: Das Sprachkonzept

• Tags können individuell definiert und benannt werden.• Dokumentenstrukturen können in beliebiger Komplexität abgebildet

werden.• XML-Dokumente können - müssen aber nicht – eine formale

Beschreibung ihrer Grammatik enthalten.

XML: Das Sprachkonzept

XML besteht also aus Tags <TAG>Inhalt</TAG>

...die ineinander geschachtelt sind <TAG><NochEinTag>Inhalt</NochEinTag></TAG>

...und zusammen mit einer XML-Deklaration bereits ein vollständiges XML-Dokumentergeben. Dabei müssen nur wenige „Wohlgeformtheits-Regeln“ beachtet werden.

<?xml version="1.0"?>

Wohlgeformte Dokumente

• Jeder geöffnete Tag muß explizit geschlossen werden

• Tags ohne Inhalt (<IMG> in HTML) werden in XML als <IMG/> geschrieben oder geschlossen

• Attribut-Werte in doppelte Anführungszeichen, z. B.: <?xml version=”1.0”?>

• Das Markup muß, wie bei SGML, streng hierarchisch gegliedert sein

• Keine Markup-Zeichen (< oder &) im Text, alle Attribute – die für alle Elemente verwendet werden können – müssen Default-Typ CDATA sein.

• Am Anfang des Dokumentes sollte der Hinweis auf die XML-Version erfolgen: <?xml version=”1.0”?>

Wohlgeformtes Dokument „Bestellung“

<?xml version="1.0" ?> <BESTELLUNG>

<AUFTRAGSKOPF> <NAME>Mustermann</NAME> <DATUM>02.10.1998</DATUM> <E-MAIL>[email protected]</E-MAIL>

</AUFTRAGSKOPF> <AUFTRAGSPOSITIONEN>

<POSITION> <BEZEICHNUNG>Festplatte</BEZEICHNUNG> <ARTIKELNUMMER>123456</ARTIKELNUMMER> <ANZAHL>5</ANZAHL>

</POSITION> <POSITION>

<BEZEICHNUNG>Monitor</BEZEICHNUNG> <ARTIKELNUMMER>9876</ARTIKELNUMMER> <ANZAHL>1</ANZAHL>

</POSITION> </AUFTRAGSPOSITIONEN>

</BESTELLUNG>

XML Grundlagen

Sind die grundlegenden Anforderungen an die XML-

Syntax erfüllt, spricht man von wohlgeformten (well-formed)

Dokumenten

XML stellt die Regeln bereit, um Auszeichnungssprachen zu definieren. Es gibt zwei Arten, diese Regeln (also die Grammatik der konkreten

Auszeichnungssprache) zu spezifizieren:

Zu XML-Dokumenten kann eine explizite Definition der nötigen/

möglichen Tags und ihrer Struktur gehören. Hierfür verwendet XML eine

formale Grammatik, die Document Type Definition (DTD).

Gültiges Dokument „Bestellung“

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE BESTELLUNG SYSTEM "BESTELLUNG.DTD"><BESTELLUNG>

<AUFTRAGSKOPF> <NAME>Mustermann</NAME> <DATUM>02.10.1998</DATUM> <E-MAIL>[email protected]</E-MAIL>

</AUFTRAGSKOPF> <AUFTRAGSPOSITIONEN>

<POSITION> <BEZEICHNUNG>Festplatte</BEZEICHNUNG> <ARTIKELNUMMER>123456</ARTIKELNUMMER> <ANZAHL>5</ANZAHL>

</POSITION> <POSITION>

<BEZEICHNUNG>Monitor</BEZEICHNUNG> <ARTIKELNUMMER>9876</ARTIKELNUMMER> <ANZAHL>1</ANZAHL>

</POSITION> </AUFTRAGSPOSITIONEN>

</BESTELLUNG>

DTD zu gültigem Dokument „Bestellung“

<!ELEMENT BESTELLUNG (AUFTRAGSKOPF, AUFTRAGSPOSITIONEN)><!ELEMENT AUFTRAGSKOPF (NAME, DATUM, E-MAIL)><!ELEMENT NAME (#PCDATA)><!ELEMENT DATUM (#PCDATA)><!ELEMENT E-MAIL (#PCDATA)><!ELEMENT AUFTRAGSPOSITIONEN (POSITION)+><!ELEMENT POSITION (BEZEICHNUNG, ARTIKELNUMMER, ANZAHL)><!ELEMENT BEZEICHNUNG (#PCDATA)><!ELEMENT ARTIKELNUMMER (#PCDATA)><!ELEMENT ANZAHL (#PCDATA)>

BESTELLUNG.DTD

Deklaration von Elementen in der DTD

Elemente können i. Allg. andere Elemente oder Zeichendaten enthalten

<!ELEMENT AUFTRAGSKOPF (NAME, DATUM, E-MAIL)><!ELEMENT NAME (#PCDATA)>

Elemente können auch gemischten Inhalt haben

<!ELEMENT a (#PCDATA | b | c)*>

Elemente können als sequentiell, optional etc. definiert werden

<!ELEMENT a (b, c?, (d|e)+, f*)<!ELEMENT e-mail (adresse, cc*, message, signature?)

Attribute

Alle Elemente können Attribute haben:

<AUFTRAGSKOPF edifact=„UNH D0062.1“ lala=„123“>

Die Attribute müssen wie Elemente deklariert werden

<!ATTLIST AUFTRAGSKOPF edifact CDATA #REQUIRED>

Attribute können optional, obligatorisch oder „fixed“ sein

<!ATTLIST BEZEICHNUNG ean CDATA #REQUIREDabbildung CDATA #FIXED

„http://meine.bilder.de/hd.htm“status (angebot | normal) „normal“>

Gültiges XML-Dokument

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE BESTELLUNG SYSTEM „bestellung2.dtd“> <BESTELLUNG>

<AUFTRAGSKOPF edifact=„UNH D0062.1“> <NAME>Mustermann</NAME> <DATUM>02.10.1998</DATUM> <E-MAIL>[email protected]</E-MAIL>

</AUFTRAGSKOPF> <AUFTRAGSPOSITIONEN>

<POSITION> <BEZEICHNUNG ean=„3034152204082“

abbildung=„http://meine.bilder.de/hd.htm“status=„angebot“>Festplatte</BEZEICHNUNG>

<ARTIKELNUMMER>123456</ARTIKELNUMMER> <ANZAHL>5</ANZAHL>

</POSITION> <POSITION>

.......</POSITION>

</AUFTRAGSPOSITIONEN> </BESTELLUNG>

DTD

<!ELEMENT BESTELLUNG (AUFTRAGSKOPF, AUFTRAGSPOSITIONEN)><!ELEMENT AUFTRAGSKOPF (NAME, VORNAME*,DATUM, E-MAIL+)><!ATTLIST AUFTRAGSKOPF edifact CDATA #REQUIRED><!ELEMENT NAME (#PCDATA)><!ELEMENT VORNAME (#PCDATA)><!ELEMENT E-MAIL (#PCDATA)><!ELEMENT DATUM (#PCDATA)><!ELEMENT AUFTRAGSPOSITIONEN (POSITION)+><!ELEMENT POSITION (BEZEICHNUNG, ARTIKELNUMMER, ANZAHL)><!ELEMENT BEZEICHNUNG (#PCDATA)><!ATTLIST BEZEICHNUNG ean CDATA #REQUIRED

abbildung CDATA #FIXED „http://meine.bilder.de/hd.htm“status (angebot | normal) „normal“>

<!ELEMENT ARTIKELNUMMER (#PCDATA)><!ELEMENT ANZAHL (#PCDATA)>

Gültige XML-Dokumente

• Ein XML-Dokument ist gültig (valid), wenn es wohlgeformt ist und darüber hinaus den Spezifikationen einer DTD entspricht.

• Ein wohlgeformtes XML-Dokument kann ein gültiges werden, sofern es die Regeln der DTD erfüllt.

• Funktional ist eine DTD dem Relationenschema einer Datenbank oder einer IDL analog

• Programme können mit einer DTD XML-Dokumente auf strukturelle Fehler überprüfen und neue „Instanzen“ dieses Dokument-Typs erstellen.

Präsentation von XML-Dokumenten

Die Darstellung eines XML-Dokumentes erfolgt mit Hilfe einer Formatvorlage, eines Style Sheet.

In diesem Style Sheet wird das Layout des Dokumentes festgelegt.

Auf Style Sheets wird durch entsprechende processing instructions verwiesen, z. B. : <?xml-stylesheet href="style1.css"?>

•Das W3C entwickelt mit (XSL) eigene Style Sheet Sprache für XML

•Daneben ist die Darstellung mit von HTML bekannten CSS möglich

XML mit CSS

<?xml version="1.0" ?><?xml-stylesheet type="text/css" href="style1.css"?> <BESTELLUNG> <AUFTRAGSKOPF>

<NAME>Mustermann</NAME> ..............

</BESTELLUNG>

BESTELLUNG { Display: Block; background-color: blue; float: left; padding: 15pt}

NAME, DATUM, E-MAIL {Display: Block; font-size: 28pt; font-family: Times, serif}

E-MAIL {color:yellow}AUFTRAGSPOSITIONEN {Display: Block;

background-color: green; float: left; padding: 12pt}BEZEICHNUNG {font-size: 28pt; font-family: Times,

sans-serif}

+ =

Die “XML-Familie”

Neben den eigentlichen Sprachspezifikationen von XML (seit 10.02.1998 eine Recommendation), gibt es weitere Initiativen des W3C aus dem XML-Umfeld. Die wichtigsten sind:

XLink (Working Draft, 26.07.1999)XPointer (Working Draft, 09.07.1999)XML Namespaces (Recommendation, 14.01.1999)XSL (Working Draft 21.04.1999)XSLT, XPath (Recommendation, 16.11.1999)DOM (Recommendation, 01.10.1998)RDF (Recommendation, 24.02.1999)XML Schemas (Working Drafts, 06.05.1999) (XML-Data, DCD, SOX, DDML)

Vorteile von XML

• Die installed base von HTML, HTTP und Webbrowsern

• XML ist einfach und portabel

• XML kann Dokumente beliebiger Komplexität abbilden

• XML ist mehr als nur eine Auszeichnungssprache

• Internationalität

Daten, die mit XML ausgezeichnet sind, können prinzipiell von allen Anwendungen weiterverarbeitet und auf verschiedensten Medien ausgegeben werden

XML und EDI

klassische EDI-Beziehungen: Langfristig, nur für hochvolumige Transaktionen vor einem langen Zeithorizont lohnenswert

XML/EDI: Investitionsbereitschaft in kompatible, offene IT-Infrastrukturen v.a. für KMU an jeder Stelle der Value Chain wesentlich größer („Investitionsruinen“)

Datenstrom, den der XML-Parser den verschiedensten Anwendungen übergibt, ist einfach zu verarbeiten (Manipulation, Anzeige und Transformation!)

Mit XML ausgezeichnete Daten sind leicht an die Bedürfnisse unterschiedlichster Applikationen und Medien anpaßbar

XML-Basierung ermöglicht die Definition flexibler, offener Schnittstellen

Vorteile der Verwendung von XML (Einfachheit, Flexibilität, Einbindung bestehender Produkte und Legacy-Systeme) ist auch die Grundlage des E-Business-Framework der XML/EDI-Group

Anwendungen: XML/EDI

Die Grundidee:

• XML/EDI Dokumente nutzen eine im Industriestandard spezifizierte DTD

• Diese DTD wird in Repositories zur Verfügung gestellt

• Damit können Dokumente von jeder empfangenden Anwendung validiert und verarbeitet werden

• Andere Möglichkeit: Wohlgeformte XML-Dokumente/Schemas

Anwendungen: XML/EDI

Vorteil Nachteil

Eigene Beschreibung und Strukturdefinition möglich

EDI-Standards definieren Syntax und Elemente von Geschäftsdokumenten.Es gibt Bemühungen, traditionelles EDI in XML-Syntax zu formulieren.

Anwendungen: XML/EDI

• ANSI ASC X12 (Namensvergabe, Hierarchien/Schachtelungen etc.)

• DIN/Nbü und dedig (Norm-Entwurf DIN 16557-4)

• UN/CEFACT (EC XML Initiative mit OASIS, simpl-EDI, oo-EDI)

• ebXML (seit Nov. 1999, UN/CEFACT, OASIS...)

• CEN/ISSS und EBES

• XML/EDI-Group (Migration mit 100% Rückwärtskompatibilität)

• OASIS, commerceNet, cXML, rosettaNet...

• ...

2 Beispiele für eine EDIFACT-Nachricht in XML-Syntax

<elfe_segment name="message header" zweck="Beginn der Telekom-Rechnung" elfe="UNH">

<elfe_0062>ELFE0000001</elfe_0062> <elfe_S009>

<elfe_0065>INVOIC</elfe_0065><elfe_0052>D</elfe_0052>........

</elfe_S009> .................</elfe_segment>

<UNH D0062=" ELFE0000001” S009D0065=" INVOIC” S009D0052=“D”............/>

UNH+ELFE0000001+INVOIC:D:95A:UN:ETEB+1:C’

UNH+

ELFE0000001+

INVOIC:D...

...

XML/EDI

• Austausch von Geschäftsdokumenten via HTTP• Grundlage ist Extranet Plattform von Lufthansa AirPlus

1) XML-Generator konvertiert Inhouse-Daten zu XML basiert auf XML Template (dictionary)

2) Kunde kontaktiert Webseite und wird authentisiert3a) Der Kunde sieht/druckt XML-Datei im Browser oder...3b) speichert XML-Datei aus dem Browser und verarbeitet die

Daten mit eigenen Tools oder...3c) ...nutzt ein signiertes Java-Applet zum automatischen

Import der Rechnungsdaten in die eigene Datenbank.

XML/EDI - Architektur

WWW-Browser

+Java-AppletWWW-

Server+

Java-Servlets

database

XDI

XML

XML

EDIFACT

EDIFACT2XMLConverter

XML

ExtranetDirectory Service

EDIFACT-to-XML Konverter

EDIFACT Nachricht und Repräsentation in XML

Mapping Tool

XML/EDI

• Ausschließlich offene Standards• Darstellung durch Style Sheets (XSL!)• Einzige Voraussetzung: SmartCard Lesegerät, Internet-

Zugang• Unterstützung unterschiedlichster Standards • Flexibel und sicher• “custom-size EDI” anstelle von “full-size EDI”• Einfache Integration: XML-Daten sind einfach zu

verarbeiten• Alle größeren Softwareanbieter haben XML-Schnittstellen

angekündigt (Tamino!)

XML

http://xml.cnec.org

Das „Competence Center XML“ am Institut für Wirtschaftsinformatik

der J. W. Goethe-Universität in Frankfurt