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
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!)