Ein Überblick für PB-Entwickler XML eXtensible Markup Language Ein Überblick für PB-Entwickler
Vortragsziel XML soll stärker in das Blickfeld der PB-Gemeinde gerückt werden!
Agenda 1. Vorstellung der innobis GmbH 2. Verallgemeinerte Markupsprachen 3. Warum XML als ein neuer Internet-Standard? 4. Das W3-Consortium und die Standardisierung von XML 5. Die Dokumenttypdefinition 6. Parser und deren API‘s ( SAX & DOM) 7. Persistenz 8. Formatvorlagen 9. Einsatzmöglichkeiten 10. PowerBuilder und XML 11. XML-Smarty: Ein kleiner XML-Editor für PB 12. Tips zu Web-Ressourcen & Downloads
Unternehmensberatung und Software GmbH
... Fakten Gegründet: 1990 Mitarbeiter: 80 Bilanzsumme: 7,3 Mio. DM Stammkapital: 1 Mio. DM Umsatz: 1999: 18 Mio. DM 2000: > 20 Mio. DM
... Beratung New Dimension Individuelle Internetlösungen @INNloan: Erfassung von Kredit- und Förderanträgen via Internet @INNbetween: Datenaustausch zwischen Geschäftspartnern via XML @innorder / @innplan: SAP-Planung und SAP-Bestellung im Intranet
... Produkt-Partnerschaften SAP® EURO-Partner Business-Warehouse Partner Implementierungs-Partner BROKAT® Strategischer Partner Internet- / Sicherheitslösungen Oracle® Value Service Partner
Wir beraten „vor Ort“ und entwickeln „zentral“. Standorte Wir beraten „vor Ort“ und entwickeln „zentral“. ... Hamburg Münster Düsseldorf Frankfurt* Walldorf (bei Heidelberg) München* *in Planung
http://www.innobis.de Jobs Wir suchen dringend OO-Entwickler! Java, C++ UML ODBMS http://www.innobis.de
Austausch von Dokumenten über Anwendungs- und Systemgrenzen hinweg Die Ausgangsproblematik: Austausch von Dokumenten über Anwendungs- und Systemgrenzen hinweg
X X Beispiel:Dokumentenaustausch Client Client Doc-File Word Konvertieren Word Word Perfect X X Anwendung A Anwendung B
Verallgemeinerter Markup Kennzeichen: Trennung von Struktur, Inhalt und Layout Dokument Daten Formatvorlage Dokumenttyp definition
SGML app HTML XML app XHTML SGML XML Die GML Familie SGML app HTML XML app XHTML SGML XML Untermenge von SGML
HTML Eigenschaften einfach, verallgemeinert (keine Formatkonstrukte), mit Texteditor zu erzeugen kompatibel mit fast jedem Computer-System fester Satz von Elementtypen nur standardisierte Darstellung von Dokumenten aus SGML übernommen
Struktur eines HTML-Dokuments
Probleme mit HTML HTML ist nicht erweiterbar, keine Eignung zum Austausch von komplexen Datenformaten Standardisierung wurde lange vernachlässigt. Eine öffentliche Dokumenttypdefinition erst seit HTML 4.0 HTML heute ist darstellungsorientiert. Trennung von Format und Daten oft nicht vorhanden. Keine verschachtelte Dokumentstruktur
XML als HTML ergänzender Standard Die Lösung: XML als HTML ergänzender Standard Bewahrung der Hauptvorzüge von SGML Berücksichtigung der Webethik der minimalistischen Einfachheit XML ist datenorientiert, HTML ist darstellungsorientiert
XML 1.0: Die Spezifikation 89 'Production Rules' Regeln für ‚wohlgeformtes‘ und ‚gültiges‘ XML http://www.w3.org/TR/REC-xml
Die Spezifikation: XML Ziele XML soll über das Internet nutzbar sein. XML soll eine Vielzahl von Anwendungen unterstützen. XML soll kompatibel zu SGML sein. Einfache Programmierung von XML-Anwendungen. XML-Dokumente sollen lesbar und verständlich sein. XML-Dokumente sollen einfach zu erstellen sein. Kompaktheit von XML-Dokumenten ist zweitrangig.
Die Spezifikation: Inhalt Definition eigener Dokumenttypen wie in SGML möglich Wohlgeformtheit: Alle XML-Dokumente müssen verschachtelt sein und dem Sprachstandard genügen. Gültigkeit: Alle Dokumente mit einer DTD müssen dieser DTD genügen. strikte Normierung der Sprache und der Arbeitsweise des auswertenden Parsers Keine vorgefertigten Elemente vorgesehen für Anzeige, dies geschieht im Browser durch Umformung zu HTML.
begleitende W3C-Standards Formatierung und Transformation (XSL/ XSLT) (Extensible Stylesheet Language) erweiterbares HTML ( XHTML) Metadaten (XML Schema, RDF) erweiterte Links und Adressierung (XLink, XPointer ) Adressierung in Dokumenten (Xpath) Eine API für XML (Document Object Model) Namensräume in Dokumenten (XML Namespaces) Abfragesprache (XQL) = noch nicht standardisiert
Standardisierung im W3C Mitglied Jedermann Vorschlag Industrie Working Draft Working Draft Vorschau Proposed Recommendation Arbeitsgruppe Abbruch Recommendation Mitglieder Produkt
XML Dokument Daten XSL oder CSS DTD
Die Dokumenttypdefinition (DTD) Ein Schema für Dokumente
Logische Struktur der XML-Datei: Aus welchen Elementen setzt sich das Dokument zusammen? Abbildung der Geschäftsregeln. Physikalische Struktur: Wo sind die verschiedenen Elemente, Elementblöcke physisch gespeichert? (Datenbank, Dateisystem)
Die Logische Struktur (optional festgelegt in DTD)
Beispiel: XMLBOOK.DTD book body back front + + glossary frontpage table of contents chapter appmat biblist + + citation index titlegrp Section appendix + authorgrp etc Section
Die Logische Struktur
Die Physikalische Struktur „one fact in one place“
Von der DTD zu XML Schema In einer DTD kann man nur sehr eingeschränkt Datentypen für Attribute festlegen. Eine DTD hat einen eigenen Sprachsyntax. Keine Vererbung/Import von anderen DTD's möglich Vision: Weltweit genormte Geschäftsprozess-Schemata für den globalen Datenaustausch.
Zugriff auf die XML-Daten
XML-Prozessoren (Parser) 1. Prüfen auf Wohlgeformtheit 2. Prüfen auf Gültigkeit anhand der DTD 3. Bereitstellen der Datenstrukturen
Die DOM-API (XML-) Document Object Model
Die DOM-API DOM API (sprachneutral) Definition von Objekten, aus denen ein XML/HTML-Dokument aufgebaut ist, zugehöriger Zugriffs- und Manipulationsmethoden sowie von Hilfsklassen Klassen: Document Node Element Text Attribut Processing Instruction Comment Hilfsklassen: Nodelist EditableNodelist NodeEnumerator Attributelist Document context DOM DOMFactory DOM API (sprachspezifisch) Java binding (‚interfaces)‘ COM binding (VB,C++) Object Management Group IDL Herstellerspezifisch: Implementation der Methoden XML4J, XERCES MSXML
Die SAX-API SAX = Simple API for XML
SAX oder DOM? SAX: DOM: schneller später Zugriff auf Daten eigener Doc-Handler eignener Listener DOM: später Zugriff auf Daten eigener Tree-Walker fertiges Objektmodell gut bei einfach strukturierten oder generierten Daten (XQL, OQL, SQL) gut bei komplexen Dokumenten (Datenaustausch, Dokumentenmanagement)
Kombination SAX und DOM moderne Parser verfügen über beide API‘s
Persistenz: XML und Datenbanken RDBMS SQL Mapping XML Parser Document ODBMS OQL Serialisierung XQL hierachisch objektorientiert Dateien
Formatvorlagen mit der Extensible Stylesheet Language (XSLT) erstellen
Formatierung RTF PDF
Mapping zwischen Dokumenttypen DTD 1 DTD 2 XML
1 2 XML im Browser darstellen Client Server XSL XML HTML Anfrage XSL Proz. Browser ASP/JSP/Servlet 1 XML Parser HTML Antwort XSL XML 2 XML Parser XSL Proz.
Beispielcode:Active Server Page (ASP) <%@ LANGUAGE = JScript %> <% Response.ContentType = "text/html" %> <% // Set the source and style sheet locations here var sourceFile = Server.MapPath(”myxml.xml"); var styleFile = Server.MapPath(”myxml.xsl"); // Load the XML var source = Server.CreateObject("Microsoft.XMLDOM"); source.async = false; source.load(sourceFile); // Load the XSL var style = Server.CreateObject("Microsoft.XMLDOM"); style.async = false; style.load(styleFile); Response.Write(source.transformNode(style)); %>
Wie kann man XML einsetzen? Wo wird XML schon verwendet?
Dokumentenmanagement Verwaltung / Versionierung von z.B. Dokumentationen eine Datenbasis und viele Anzeige- /Ausgabeformate Datenaustausch / EDI Datenaustausch in heterogenen Systemlandschaften Geschäftsprozesse über das Internet (B2C, B2B) Anwendungsintegration Anwendungskommunikation Internet Nachrichtenformate (Protokolle) Unternehmensportale
Technischer Wert von XML Mittel, um Anwendungs-Metadaten zu beschreiben (Daten über Daten) spezialisierte XML-Anwendungen Benutzereinstellungen, Anwendungskonfigurationen ablegen Datenintegration zwischen vielen Umgebungen Datenaustausch zwischen Systemen (Datentypen), Applikationen (Datenstrukturen), Datenbanken & Dateien Plattformunabhängig Überbrückt Sprach- und Schriftbarrieren durch Unicode- Unterstützung
Technischer Wert von XML Flexibel und erweiterbar für zukünftige Anforderungen Verbessert Funktionalität von existierenden Systemen XML kann durch bestehende Anwendungen verarbeitet werden Bessere Suchmöglichkeiten im Web Nur in bestimmten Feldern suchen ( name ="Meier", firstname="Frank") Verschieden formatierte Quellen in einem XML-Format strukturiert aufbereitet anzeigen
spezialisierte XML-Anwendungen SMIL VRML (Video Rendering) XMI (XML Metadata Interchange) Voice XML WIDL Web IDL WML ->WAP Wireless Application Protocoll SOAP XHTML diverse XML-Katalogformate zum Datenaustausch MathML, BioML, CML XML-RPC XMI XUL CDF (Channel Definition Format)
Beispiel: Anwendungsintegration mit XMI Rational Rose IBM Visual Age UML XMI Java - Klassen Andere Applikationen
Beispielcode XMI [UML model in an XMI document] <XMI xmi.version="1.1" xmlns:UML="org.omg/standards/UML"> <XMI.header> <XMI.metamodel name="UML" version="1.3" href="UML.xml"/> <XMI.model name="example" version="1" href="example.xml"/> </XMI.header> <XMI.content> <UML:Class name="C1"> <UML:Classifier.feature> <UML:Attribute name="a1" visibility="private"/> </UML:Classifier.feature> </UML:Class> </XMI.content> </XMI>
XML-Protokolle (XML-RPC) [in a POST parameter] <methodCall> <methodName>examples.getStateName</methodName> <params> <param> <value><i4>41</i4></value> </param> </params> </methodCall>
traditioneller EDI-Ablauf Mehrwertdienst (VAN) Partner A Partner B feste Transaktionssätze mit implementierten Geschäftsregeln Geschäftsregel- Repository Geschäftsregel- Repository
EDI traditionell Vorteile: Nachteile: Vermeidung von manueller Datenerfassung hohe Transaktionssicherheit hohes Datenvolumen kann übertragen werden Nachteile: Hohe Einführungs- und Betriebskosten geringe Verbreitung -> kaum Einsparungen bei manueller Erfassung starre Transaktionssätze -> unflexibel bei Änderungen in den Geschäftsprozessen Sehr lange Projektlaufzeit bis zur Einführung weil Geschäftsprozesse in Einklang gebracht werden müssen.
Was geht mit XML besser? Trennung der Daten von den Geschäftsregeln Austausch über das Internet billiger als VAN’s Die Standardisierung der XML-Formate wird global sein. XML verarbeitende Standardsoftware wird sehr viel günstiger sein als die von bisherigen EDI-Anbietern. Über Konverter wird es Schnittstellen zu herkömmlichen EDI-Systemen geben => Datenaustausch wird auch mit kleinen Partnern möglich
XEDI: Konvertierung EDI->XML
@innbetween Materialstammdaten Lieferant Kunde XML SAP SAP Preisänderungen ProductCat DTD XML Loader Extractor PriceCat DTD Loader PurchaseOrder DTD Extractor XML Bestellungen
PowerBuilder und XML - Kein Thema ? "XML shall support a wide variety of applications" PowerBuilder und XML - Kein Thema ?
Den Parser selber schreiben externe Ressourcen nutzen? oder externe Ressourcen nutzen? OLE Automation Global External Functions ......? Msxml.dll n_cst_dom Xml4j.jar
// Oleobject iole_dom, iole_doctype, iole_domroot iole_dom = create oleobject ll_result =iole_dom.ConnectToNewObject("Microsoft.XMLDOM") if ll_result <> 0 then messagebox(a_editor.displayname+": Connect to object failed!", & string(ll_result)) return -1 end if iole_dom.async = False iole_dom.validateOnParse(ib_validateonparse) lb_result = iole_dom.load(as_pathname) if not lb_result then this.of_showerrormessage(iole_dom.parseError) else iole_doctype = iole_dom.doctype iole_domroot = iole_dom.documentElement return 1
Demo XML-Smarty XML-Editor, entwickelt mit PowerBuilder 6.5.1: XML Parser: Microsoft msxml / msxml3 Zugriff über DOM-API und OLE Automation optionales Validieren von Dokumenten Generieren von HTML mittels XSLT-Stylesheet
XML-Ressourcen & Downloads (I) www.alphaworks.ibm.com www.msdn.microsoft.com/xml/default.asp www.ibm.com/developerWorks/xml www.oasis-open.org www.ucc.ie/xml www.w3.org/xml www.xml.com www.xml.org http://xml.apache.org
XML-Ressourcen & Downloads (II) www.xml-zone.com www.xmlinfo.com www.xmlsoftware.com www.sun.com/xml http://metalab.unc.edu/xml www.oracle.com/xml www.commerceone.com www.ariba.com