xml das „competence center xml“ am institut für wirtschaftsinformatik der j. w....
Post on 06-Apr-2016
215 Views
Preview:
TRANSCRIPT
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
top related