640 likes | 836 Views
XML. Das „Competence Center XML“ am Institut für Wirtschaftsinformatik der J. W. Goethe-Universität in Frankfurt. http://xml.cnec.org. XML. Tim Weitzel Institut für Wirtschaftsinformatik J. W. Goethe-Universität, Frankfurt am Main Mertonstr.17, 60054 Frankfurt
E N D
XML Das „Competence Center XML“ am Institut für Wirtschaftsinformatik der J. W. Goethe-Universität in Frankfurt http://xml.cnec.org
XML Tim Weitzel Institut für Wirtschaftsinformatik J. W. Goethe-Universität, Frankfurt am Main Mertonstr.17, 60054 Frankfurt Telefon: +49 69 798-28804Fax: +49 69 798-28585 http://www.wiwi.uni-frankfurt.de/~tweitzel/ Email: tweitzel@wiwi.uni-frankfurt.de
Übersicht: Vertiefungsworkshop • 09.00 - 10.30 • Basiswissen für Fortgeschrittene • XML Schemata, Namespaces, XLL, Parsing/Validierung, Tools • 10.45 - 12.15 • XML at work • XQL, DOM, XSL, XSLT • 13.15 - 14.45 • XML-Anwendungen und Trends • E-Business, Anwendungsszenarien und Beispiele: BizTalk etc. • Standardisierungsorganisationen, Zukunft von XML • 15.00 - 16.30 • XML im Praxiseinsatz • ERP-Anwendungen
XML-Technologien • Namespaces • XML Schemata • XLL • Parsing/Validierung • Tools
Namespaces in XML • Verteilte Dokumente im Web • Unterschiedliche XML-Autoren • Nutzung unterschiedlicher DTDs (für eigene Dokumente, Datenaustausch mit anderen und Suchmaschinen) • Namenskollisionen: <Titel> ... <Titel/> • Wie kann die Anwendung wissen, welcher Namensraum gerade gemeint ist: • Personendatenbank (Doktortitel) • Bibliographie (Titel eines Buches). • Damit Element- und Attributnamen nicht kollidieren, wurden Namespaces entwickelt
Namespaces in XML Problem: Wie kann ein System erkennen, welche Semantik gemeint ist? Lösungsidee: Verwendung von - weltweit eindeutigen - Webadressen (URIs) zur Zuweisung eines „Namensraumes“ James Clark: „Local Name + URI = Universal Name“
Namespaces in XML <BEISPIEL xmlns:h="http://www.w3.org/html4" xmlns:b="http://www.mein.server.de/bibliographie" xmlns:p="http://www.mein.server.de/person"> <h:caption>Meine Text</h:caption> <b:titel>Ein Buch</b:titel> <p:autor>No</p:autor> <p:titel>Dr.</p:titel> </BEISPIEL>
Namespaces in XSLT und Schemata • <?xml version="1.0" encoding="UTF-8"?> • <xsl:stylesheet version="1.0" • xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> • <xsl:output method="HTML"/> <xsl:template match="/"> <HTML><xsl:apply-templates/></HTML> </xsl:template> • ...
Namespaces in XSLT und Schemata <?xml version="1.0"?> <Schema name="schema_sample_1" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"> .....
Linking • Linking in HTML: • einfache, unidirektionale Links, Anker in Zieldokument • (Zukünftiges) Linking in XML: • XLink bietet uni-, bi- und multidirektionale Links • XPointer bietet Mechanismen, um (auch ohne Identifier) auf Fragmente von Zieldokumenten zu verweisen: „book.html#section2“ • Erweiterte Link-Beschreibung • xlink:title, • xlink:role • Link-Verhalten • xlink:show (replace|new|parsed) • xlink:actuate (user|auto) • Erweiterte Links • Mehrfache Zielverweise • Traversierungspfade (Arcs) • Out-of-Line-Links, Extended Link Groups
XPointer, XPath • XPointer/XPath zur Beschreibung von Orten oder Bereichen in XML-Instanzen • absoluter Verweis z. B.: root • relativer Verweis z. B.: child, preeding, ancestor • Bereichsbeschreibung: range • Beispiel • xptr(id(„p1“)/child::NAME) • xptr(/child::TREE/child::PERSON[position()=1]/child::NAME)
Die XML Schema Working Group des W3C • Die explizite Grammatik eines Dokumenttyps kann in einer DTD festgelegt werden. Aber DTDs haben auch erhebliche Nachteile. Daher entwickelt das W3C sog. Schemata (Schema Definition Languages). Schemata sind gültige XML-Dokumente. • Spezielle Ziele von Schemata jenseits DTD-Funktionalität sind u.a.: • Beschreibungssprache XML • Offene Inhaltsmodelle („extensibility“, „incomplete constraints“) • Datentypen (>30: Integer, Date...), auch: Binary Data • Vererbungskonzept (geplant) • Erweiterte strukturelle Spezifikationen (z. B. minOccur, maxOccur) • Äquivalente Felddefinitionen (Element PREIS = ElementPRICE)
W3C-Beispiel: Datentypen „for authors and applications“ • <invoice> • <orderDate>1999-01-21</orderDate> • <shipDate>1999-01-25</shipDate> • <billingAddress> • <name>Ashok Malhotra</name> • <street>123 IBM Ave.</street> • <city>Hawthorne</city> • <state>NY</state> • <zip>10532-0000</zip> • </billingAddress> • <voice>555-1234</voice> • <fax>555-4321</fax> • </invoice> datenorientiert vs. dokumentorientiert <memo importance='high' date='1999-03-23'> <from>Paul V. Biron</from> <to>Ashok Malhotra</to> <subject>Latest draft</subject> <body> We need to discuss the latest draft <emph>immediately</emph>. Either email me at <email> mailto:paul.v.biron@kp.org</email> or call <phone>555-9876</phone> </body> </memo>
XML Schemata • Die W3C Schema Working Group hat vier Vorschläge diskutiert • Microsofts XML-Data ([W3C_XMLData 1998], Januar 1998) • DCD von IBM und Microsoft ([W3C_DCD 1998], August 1998) • SOX ([W3C_SOX September 1998, ergänzt Juli 1999], Juli 1999) • DDML ([W3C_DDML 1999], Nachfolger von XML-DEV`s Xschema, Januar 1999) • Die aktuellen Arbeiten an Schemata befinden sich im Stadium eines "Last Calls (Working Draft)"
XML Data • Schema-Beispiel ist angelehnt an an Microsofts XML Data bzw. XDR (XML Data, subset reduced) • Die XML-Schema Implementierung in IE5 ist ein Subset von XML-Data • XDR ist kein W3C-Standard; es gibt derzeit noch keinen W3C-Standard zu Schemata, Teile von XDR werden hier Eingang finden; Microsofts Parser in IE5 (MSXML) implementiert daher XDR
XML Schema • Die Definition eines Schemas erfolgt im Top-Level Element SCHEMA aus dem Namensraum xmlns=„urn:schemas-microsoft-com:xml-data“ • Es ist günstig, den Schema-Namensraum zum default namespace zu machen • Das Schema-Element sollte alle anderen Namensraum-Deklarationen enthalten, z.B. den Namensraum der Datentypen <Schema name=„Mein_Schema" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"> ... <!-- ... --> </Schema>
XML Schemata <!DOCTYPE ARTIKEL [ <!ELEMENT ARTIKEL (AUTOR, TITEL+)> <!ELEMENT AUTOR (#PCDATA)> <!ELEMENT TITEL (#PCDATA)> ]>
XML Schemata <?xml version="1.0"?> <Schema name="schema_sample_1" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"> <ElementType name=“TITEL" content="textOnly" model="closed"/> <ElementType name=“AUTOR" content="textOnly" model="closed"/> <ElementType name=“ARTIKEL" content="eltOnly" model="closed"> <element type=“TITEL" minOccurs="1" maxOccurs="*"/> <element type=“AUTOR" minOccurs="1" maxOccurs="1"/> </ElementType> </Schema>
XML Schemata - content model Das Inhaltsmodell bei Schemata ist per default offen. Damit sind (neben den explizit definierten) zusätzliche Tags möglich Erweiterbarkeit. Das Inhaltsmodell kann durch das model Attribut geschlossen werden: <Schema xmlns="schemas-microsoft-com:xml-data"> <ElementType name=“artikel" model="closed"/> <element type=“titel" /> <element type=“autor" /> </ElementType> </Schema>
XML Schemata - Datentypen Schemata erlauben die Definition von Datentypen ( Typenvalidierung) <ElementType name="pages"> <datatype dt:type="int" /> </ElementType> Während der Validierung wird der Datentyp überprüft. Da Schemata auf einem offenen content model beruhen, können Applikationen darüber hinausgehende Informationen prüfen. <ElementType name="pages" xmlns:myExt="urn:myschema-extensions"> <datatype dt:type="int" /> <myExt:min>50</myExt:min> <myExt:max>100</myExt:max> </ElementType>
Tools • Wie erstellt man XML-Dokumente? • Nur XML schreiben? • Validieren? • DTDs editieren? • XML-Editoren: • Rudimentär: Text-Editoren, IDEs Notepad • Einfach: XML-Notepad • Komplexer: XML writer
Editor: MS XML Notepad • Einfacher Editor von Microsoft • kostenlos • validiert mit XML-Parser aus MS IE (mind. IE4.0 SP1) • Suche - Ersetze • Replikation von Unterbäumen etc. • keine PIs • keine DTDs (aber natürlich Schemata)
Editor: XML writer • Validiert (DTD und Schemata/XSL) mit MSXML, andere Parser/XSL engines möglich • XSL, CSS • Command Line Tool for Server-side Processing • XML Guide erklärt Sprachspezifikation
Andere bekannte Editoren • XMetaL von SoftSquad Software: Umgebung ähnlich traditioneller Textverarbeitung, kann keine DTDs editieren (Win 9x/2000/NT; $ 495) • Visual XML von Bluestone: DTDs, SQL Queries (SQL Editor mit Objektbrowser), Wizards für Database Publishing und Scheduler etc. (Win 9x/2000/NT, Solaris, Linux, OS/400; $ 99) • XML Authority von Extensibility: DTDs und Schemata (XML-Schema, XDR, DCD, SOX) (Win 9x/2000/NT; $ 99,95) • XML Instance von Extensibility: Schemata, DTDs, XDR, SOX 2.0, XSDL • XML Spy von Icon IS: Visualisierung von XML-Dokumenten während des Editierens im MS IE 5, CSS, XSL,CSS, XSL, XHTML, Namespaces, DTDs, XDR, BizTalk, nur MSXML-Parser (läuft auf Win 9x/2000/NT; $ 149) • XMLPro von Vervet Logic: Validiert DTDs, aber kein Editieren, 100% Java (Windows, Solaris, Unix, $175), unterstützt JDK 1.2.1 und IBMs XML4J (jetzt: XercesJ), so dass DOM oder SAX problemlos verwendet werden können.
Validieren: Parser • XML-Parser (auch XML-Prozessoren): Software, die XML-Dokumente liest und deren Inhalt und Struktur verfügbar macht • Parser liest eine XML-Datei, trennt Markup vom Inhalt und gibt den Inhalt an die Softwareanwendung weiter, die ihn benötigt und weiterverarbeiten soll • Die XML 1.0-Sprachspezifikationen beschreiben letztlich nichts anderes als Vorschriften, wie sich XML-Parser verhalten müssen, wie sie also XML-Daten lesen und wie sie diese an Anwendungen weitergeben müssen • Selber parsen: • Einen Parser herunterladen und verwenden • Parser z. B. in MS IE 5 • Online Parsing
XML - Anwendungen • XML-Anwendungen und Trends • Marktdaten und Trends • Standardisierungsorganisationen • E-Business, Anwendungsszenarien und Beispiele • BizTalk etc. • Zukunft von XML, Diskussion
XML im E-Business B2C B2C
XML und E-Business • "By the end of 2001, over 70% of corporations will have failed to plan a coherent approach to e-Business, leading to a significant loss in competitiveness” • Gartner Group
EDI: Eine Mutter des E-Business • EDI, WebEDI, XML/EDI: • EDI bei Fortune 1.000: 70% • EDI bei Nicht-Fortune 1.000: 2% • Anteil Kosten C-Güter 30-60% • Viele Organisationen, viele Standards • Viele verbinden mit XML die Hoffnung auf Kompatibilität (auch: EAI, SCM etc.), ... • ... aber es bleibt das Problem der Semantik: • Wildwuchs der XML-Sprachen („Balkanisierung“) • 250 XML-Sprachen (xCBL, cXML, WML...)
Gliederung der Technologien • Frameworks: Basistechnologien, "overall message structure") • BizTalk, eCo Framework, OAGIS, ebXML, cXML, RosettaNet • Functions: Vorlagen für spezifische Geschäftsoperationen über Branchengrenzen, ähneln häufig EDI-Nachrichtentypen (z.B. Purchase Order, Invoice) • ICE, xCBL, XML/EDI Repositories, gXML • Verticals: Nachrichtenaustausch innerhalb Branche bzw. Supply Chain
Trends bei XML-Sprachen • Verdoppelung innerhalb des Jahres 2000, v.a. Verticals • Aber: Zählweise, tote Sprachen • "XML is very flexible. Everyone can do their own thing, and, by golly, everyone is!" • Steve McVey auf der XML '99 Konferenz
Microsoft BizTalk • XML Framework zur konsistenten Verwendung von XML-Schemata und Messaging Tags für die Integration unterschiedlicher Applikationen und Electronic Commerce • Portal(Schema Library, Repository) für XML-Schemata, die Geschäftsdokumente beschreiben • BizTalk Server organisiert Workflow
BizTalk.org • XDR-konforme Schemata • Jeder kann einstellen und herunterladen • Steering Committee für Library
BizTalkMessage BizTalk Document Transport Envelope BizTalk Header Delivery Information Document Manifest Document Body Business Document BizTalk Message und BizTalk Document Transport-Specific envelope Well-formed, Doc. Root Version of XML Destination (from/to) MsgID, timestamp, subject Encloses Business Doc., DocType* Business data
Vorschau: BizTalk Server • Aufgabe des BizTalk Servers: • Richtige Geschäftsnachricht der richtigen Anwendung an passender Stelle eines Geschäftsprozesses übergeben... • ... und ein beliebiges eingehendes in ein beliebiges ausgehendes Format zu übersetzen • Daten- und Prozessintegrationsserver als XML-Gateway • Beliebige Datenquellformate zu XML zu Zielformat konvertiert (XSLT) und zwischen Sender- und Empfängersystem gerouted • “Business process automation modeling and execution engine": Entwicklung und Ausführung von E-Commerce Geschäftsprozessen, wobei verschiedene Dokumente auf Server verarbeitet, weitergeleitet und zu einem einzigen Prozess zusammengeführt werden können