330 likes | 448 Views
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.
E N D
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-Dokument ergeben. 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>mustermann@anywhere.com</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 XML stellt die Regeln bereit, um Auszeichnungssprachen zu definieren. Es gibt zwei Arten, diese Regeln (also die Grammatik der konkreten Auszeichnungssprache) zu spezifizieren: Sind die grundlegenden Anforderungen an die XML-Syntax erfüllt, spricht man von wohlgeformten (well-formed) Dokumenten 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>mustermann@anywhere.com</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 als sequentiell, optional etc. definiert werden • <!ELEMENT a (b, c?, (d|e)+, f*) • <!ELEMENT e-mail (adresse, cc*, message, signature?) • Elemente können auch gemischten Inhalt haben • <!ELEMENT a (#PCDATA | b | c)*>
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 #REQUIRED abbildung 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>mustermann@anywhere.com</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 EDI-Standards definieren Syntax und Elemente von Geschäftsdokumenten. Es gibt Bemühungen, traditionelles EDI in XML-Syntax zu formulieren. XML Vorteil Nachteil Eigene Beschreibung und Strukturdefinition möglich
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 UNH+ELFE0000001+INVOIC:D:95A:UN:ETEB+1:C’ <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 + ELFE0000001 + INVOIC:D... ... <UNH D0062=" ELFE0000001” S009D0065=" INVOIC” S009D0052=“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 authentisiert • 3a) 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 ExtranetDirectory Service EDIFACT XDI XML WWW- Browser + Java-Applet XML XML EDIFACT2XML Converter database WWW-Server + Java-Servlets
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 Das „Competence Center XML“ am Institut für Wirtschaftsinformatik der J. W. Goethe-Universität in Frankfurt http://xml.cnec.org