XML Das „Competence Center XML“ am Institut für Wirtschaftsinformatik der J. W....

Preview:

Citation preview

XML

http://xml.cnec.org

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

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

XML

Tim WeitzelTim Weitzel

Institut für WirtschaftsinformatikInstitut für Wirtschaftsinformatik

J. W. Goethe-Universität, Frankfurt am MainJ. W. Goethe-Universität, Frankfurt am MainMertonstr.17, 60054 FrankfurtMertonstr.17, 60054 Frankfurt

Telefon: +49 69 798-28804Telefon: +49 69 798-28804Fax: +49 69 798-28585Fax: +49 69 798-28585

http://www.wiwi.uni-frankfurt.de/~tweitzel/

Email: tweitzel@wiwi.uni-frankfurt.deEmail: 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 WebUnterschiedliche XML-AutorenNutzung 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

Erweiterte Links– Mehrfache Zielverweise– Traversierungspfade (Arcs)– Out-of-Line-Links, Extended Link Groups

XLink

XLink-Namespace: http://www.w3.org/1999/xlink

<Beispiel xmlns:xlink="http://www.w3.org/1999/xlink"> ...</Beispiel>

See <a xml:link="simple" href="http://www.arbortext.com">our home page</a> for more cool information.

Linking in XML

Einfacher Link Erweiterter Link(XLink)

Link auf Element innerhalb einer Instanz (XPointer)

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)

href="http://www.foo.com/bar.xml#id(interesting-list).child(3,item)"

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 = Element PRICE)

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>

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

datenorientiert vs. dokumentorientiert

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

<Schema xmlns="schemas-microsoft-com:xml-data"> <ElementType name=“artikel" model="closed"/> <element type=“titel" /> <element type=“autor" />

</ElementType> </Schema>

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:

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 NotepadEinfach: XML-NotepadKomplexer: XML writer

Editor: Notepad

Editor: Java IDE

Editor: Amaya

Editor: MS XML Notepad

Editor: MS XML Notepad

Einfacher Editor von Microsoftkostenlosvalidiert mit XML-Parser aus MS IE (mind. IE4.0 SP1)Suche - ErsetzeReplikation von Unterbäumen etc.

keine PIskeine DTDs (aber natürlich Schemata)

Editor: XEENA

Editor: XML writer

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

XMetaLXMetaL von SoftSquad Software: Umgebung ähnlich traditioneller Textverarbeitung, kann keine DTDs editieren (Win 9x/2000/NT; $ 495)

Visual XMLVisual 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 AuthorityXML Authority von Extensibility: DTDs und Schemata (XML-Schema, XDR, DCD, SOX) (Win 9x/2000/NT; $ 99,95)

XML InstanceXML Instance von Extensibility: Schemata, DTDs, XDR, SOX 2.0, XSDL XML SpyXML 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)

XMLProXMLPro 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 verwendenParser z. B. in MS IE 5Online Parsing

Validieren

Validieren

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 im E-Business

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

Wer hat das E-Business-Vokabular?

Gliederung der Technologien

FrameworksFrameworks: Basistechnologien, "overall message structure")

BizTalkBizTalk, eCo Framework, OAGIS, ebXML, cXML, RosettaNet

FunctionsFunctions: Vorlagen für spezifische Geschäftsoperationen über Branchengrenzen, ähneln häufig EDI-Nachrichtentypen (z.B. Purchase Order, Invoice)

ICEICE, xCBL, XML/EDI Repositories, gXML

Verticals: 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 FrameworkXML Framework zur konsistenten Verwendung von XML-Schemata und Messaging Tags für die Integration unterschiedlicher Applikationen und Electronic Commerce

PortalPortal (Schema Library, Repository) für XML-Schemata, die Geschäftsdokumente beschreiben

BizTalk ServerBizTalk Server organisiert Workflow

BizTalk Portal

BizTalk.org

XDR-konforme SchemataJeder kann einstellen und herunterladenSteering Committee für Library

BizTalk Message und BizTalk Document

BizTalk Document

BizTalk Message

Transport Envelope

BizTalk Header

Delivery Information Document Manifest

Document BodyBusiness Document Business data

Encloses Business Doc., DocType*

MsgID, timestamp, subjectDestination (from/to)

Version of XML

Well-formed, Doc. Root

Transport-Specific envelope

Dokumentenaustausch mit BizTalk

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

BizTalk-Mapper mit EDIFACT-Nachricht

BizTalk Server Application Designer

Process Tracking mit BizTalk Server

Information and Content Exchange Protocol (ICE)

Protokoll zum Austausch webbasierter Informationen

(Inhalte von Webseiten)

ausschließlich B2B

Teilnehmer:

Syndicator (Informationslieferant)

Subscriber (Informationskunde)

Beispiel zu ICE

Online News.de

Syndicator

Subscriber

Börse.de Wetter.de PC Hersteller

ICEICEICE

K K K K K K K K

WWW

Das request/response Modell

• jede Operation beruht auf request/response Modell

• im Ruhezustand immer gerade Anzahl von Nachrichten

<?xml version="1.0"?><!DOCTYPE ice-payload SYSTEM http://www.coolstandards.org/ICE.dtd"><ice-payload payload-id="2000-06-04T11:10:23@xyz.com"

timestamp="11:10:23,449" ice.version="1.0">

<ice-header><ice-sender sender-id="0815-0815-0815-0815" name="Online-News.de" role="subscriber"/>

<ice-user-agent>Acme Ray Gun ICE System, V0.9beta</ice-user-agent></ice-header> <ice-request request-id="2000-06-04T11:10:23@xyz.com-1">

<ice-nop/> </ice-request>

</ice-payload>

Request Nachricht

<?xml version="1.0"?><!DOCTYPE ice-payload SYSTEM "http://www.coolstandards.org/ICE.dtd"><ice-payload payload-id="2000-06-04T12:32:45@nr3.com"

timestamp="12:32:45,31416” ice.version="1.0"><ice-header>

<ice-sender sender-id="007-007-007-007” name="Wetter.de” role="syndicator"/>

<ice-user-agent>OS X Aqua ICE Processor, V17 patch 9

</ice-user-agent></ice-header>

<ice-response response-id="2000-06-04T12:32:45@nr3.com-1"><ice-code numeric="200” phrase="OK"message-id="2000-06-04T11:10:23@xyz.com-1"></ice-code>

</ice-response></ice-payload>

Response Nachricht

ICE-Operationen

• Subscription Management •Informationen über Häufigkeit, Zeitpunkte, Gültigkeitsdauer für Inf.-Austausch

• Data Delivery•Kernstück, Auslieferung der im Subscription Management festgelegten Daten

• Event Logs•dreistellige HTTP-Meldungen

• Miscellaneous Protocol Operations

•Informationen in ICE-Dokument oder per URL

Die Zukunft

Offene, flexible StandardsEinfache LösungenOutsourcing von KompatibilitätsproblemenStandardisierungsorganisationenCo-opetition... und die langweilige Zukunft von XML

"Low-level and ubiquitous ... essentially the ASCII of the Web"Tim Bray zur Zukunft von XML

Nicht die Stärksten überleben, sondern die Anpassungsfähigsten

Charles Darwin

Anhang

Open Trading Protocol (OTP)

• B2C-Protokoll

• zahlungssystemunabhängig

• Mitglieder des OTP Konsortiums:

IBM, Oracle, Sun Microsystems, Cyber Cash etc.

• aktuelle Version: 1.0

OTP Teilnehmer

Kunde

Händler

Lieferant

Finanzdienstleister

Kundendienstleister

OTP Transactions

OTP Transactions, Trading Exchanges, Trading Components

Trading Exchanges

Trading Components

Beispiel zu OTP Transactions, Trading Exchanges, Trading Components:

Kauf (Purchase) = Offer Exchange + Payment Exchange

OTP Transaction Trading Exchanges

Trading Exchange Trading Components

Offer Exchange = Order Component + Pay Amount Component

Aufbau einer OTP Nachricht

OTP Message

Trans Ref Block

Trans Id. Comp.

Msg.Id. Comp.

Signature Block

Signature

Certificate

Trading Block

Component

Component

Component

Trading Block

Component

Component

Component

Recommended