16.02.20001 xml die “e-lance economy” oder die “digital economy” stellt neue anforderungen...
TRANSCRIPT
16.02.2000 1
XML
• Die “E-Lance Economy” oder die “Digital Economy” stellt neue Anforderungen an Funktionalität im Netz.
• XML wurde vom World Wide Web Consortium (W3C) entwickelt, um diese Anforderungen zu erfüllen.
• W3C: “We are Leading the Evolution of the World Wide Web”
• Diese Evolution ist die Transformation des Web von einem “global information space” zu einem “universal knowledge network” (auf der Basis eines herstellerunabhängigen, plattformunabhängigen und universellen Datenaustauschformates).
16.02.2000 2
XML - neue Wege der Entwicklung von Standards
Das Selbstverständnis der Standardisierungsorganisationen, Softwarehersteller und -nutzer ändert sich. Offene Standards setzen sich zunehmend durch.
Mit der im Februar 1998 vom W3C als Standard verabschiedeten Extensible Markup Language (XML) wurde eine für das Internet optimierte Metasprache etabliert, die beste Aussichten hat, universelles Datenformat im Web zu werden.
16.02.2000 3
XML - neue Wege der Entwicklung von Standards
Dabei, so zwei der Designziele des W3C, solle sich XML im Internet auf einfache Weise nutzen lassen und ein breites Spektrum von Anwendungen unterstützen.
Einfachheit der Entwicklung (Tools) und Nutzung (Dokumente) von XML war eines der wichtigsten Ziele, um eine rasche und weite Verbreitung zu ermöglichen.
16.02.2000 4
Entwurfsziele von XML
1) XML soll sich im Internet auf einfache Weise nutzen lassen
2) XML soll ein breites Spektrum von Anwendungen unterstützen
3) XML soll zu SGML kompatibel sein.
4) Es soll einfach sein, Programme zu schreiben, die XML-
Dokumente verarbeiten.
5) Die Zahl optionaler Merkmale in XML soll minimal sein,
idealerweise Null.
16.02.2000 5
Entwurfsziele von XML
6) XML-Dokumente sollten für Menschen lesbar und angemessen
verständlich sein.
7) Der XML-Entwurf sollte zügig abgefaßt sein.
8) Der Entwurf von XML soll formal und präzise sein.
9) XML-Dokumente sollen leicht zu erstellen sein.
10) Knappheit von XML-Markup ist von minimaler Bedeutung.
16.02.2000 6
Entwurfsziele von XML
Darüber hinaus war man bei der Entwicklung von XML davon
überzeugt, daß die Sprache ihre ganze Mächtigkeit nur im
Zusammenspiel mit anderen - ebenfalls offenen - Standards erreichen
könne.
Daher entwickelt das W3C Zugriffs- Metadaten-, Linkingmodelle u.a.,
um eine maximale Interoperabilität im Netz zu ermöglichen.
DOM
RDF
XLink, XPointer
...
16.02.2000 7
XML öffnet die Netze
Obwohl XML noch sehr jung ist, hat es bereits eine erhebliche Verbreitung erfahren.
XML eröffnet Möglichkeiten zu grundsätzlichen Änderungen im Design von Kommunikationsbeziehungen vor allem im business-to-business Bereich („EDI for the masses“).
Zusammen mit wachsenden Möglichkeiten technischer Kommunikationsnetze können nun offene Schnittstellen definiert und von einer bisher nicht gekannten Menge von Anwendern auch genutzt werden.
Es ist zu erwarten, daß diese neuen technischen Möglichkeiten von XML in Verbindung mit um das Internet entstehenden Netztechnologien letztlich zu neuen Organisations- und Kooperationsformen wie z.B. „Spot-Unternehmen“ führen.
16.02.2000 8
XML öffnet die Netze
Die zunehmende Bedeutung des Internet als Kommunikationsmedium wird vermutlich der Durchsetzung von XML noch weiter Vorschub leisten, da mit XML eine neue Basis für die Integration verschiedener Partner, Prozesse und Anwendungen existiert.
XML ebnet u.a. KMU den Weg in (EDI-) Netzwerke und Zulieferketten und ermöglicht die Entstehung neuer Arten von Märkten („Plug & Play Electronic Commerce“).
Damit lösen neue, offene Märkte traditionellere, geschlossene Geschäftsbeziehungen ab. XML öffnet die Netze.
16.02.2000 9
XML
http://xml.cnec.org
Das „Competence Center XML“ am Institut für Wirtschaftsinformatik
der J. W. Goethe-Universität in Frankfurt
16.02.2000 10
Pause?
16.02.2000 11
XML
- Warum: Das HTML-Dilemma• HTML, SGML, XML
- Wie: Syntax, Konzepte, Sprachelemente• Basics• Wohlgeformte XML-Dokumente (ohne DTD)• Gültige XML-Dokumente (mit DTD)• Attribute, Entities, Style Sheets• Weitere Konzepte aus dem XML Umfeld
16.02.2000 12
Das HTML-Dilemma
HTML - eine Sprache zur Auszeichnung von Dokumenten
<H1>Überschrift 1</H1><H2>Überschrift 2</H2><p>Absatz<p>...
16.02.2000 13
Das HTML-Dilemma
HTML ist ...
einfach
...aber leider...
Erweiterbarkeit: Semantische Auszeichnung unmöglich Struktur: Komplexere Strukturen nicht abbildbar Validierung: Strukturelle Schwächen
16.02.2000 14
Das HTML-Dilemma
Erweiterbarkeit: HTML ist ein reines Präsentationsformat. Ein in HTML codiertes Dokument enthält nur Informationen, wie Inhalte darzustellen sind; weitergehende Informationen über die Semantik des Inhalts sind nicht abbildbar.
Struktur: In HTML können keine Datenstrukturen jenseits von Formatinformationen beschrieben werden. Der Zusammenhang der Daten untereinander ist nicht beschreibbar.
Validierung: HTML fehlen Sprachspezifikationen, die Anwendungen, die HTML-codierte Daten verarbeiten sollen, eine Überprüfung der strukturellen Validität der Daten erlauben, also der Korrektheit der Struktur des Markup in XML-Dokumenten.
16.02.2000 15
SGML
SGML - Vorschriften, eine Auszeichnungssprache zu definieren
+ Metasprache: Beliebig flexibel
+ Architektur, mit der Dokumente für beliebige Medien aufbereitet werden können, ohne die Struktur der Daten zu verlieren
¬ Komplexität (Nutzer, Programmierer)
16.02.2000 16
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.
16.02.2000 17
XML: Das Sprachkonzept
Struktur
Formatierung
Präsentation
Inhalt
XML basiert genau wie SGML auf der Idee des strukturierten Auszeichnens von Daten
16.02.2000 18
XML: Das Sprachkonzept
• Tags und Attribute 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.
16.02.2000 19
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-Dokumentergeben. Dabei müssen nur wenige „Wohlgeformtheits-Regeln“ beachtet werden.
<?xml version="1.0"?>
16.02.2000 20
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”?>
16.02.2000 21
Wohlgeformtes Dokument „Bestellung“
<?xml version="1.0" ?> <BESTELLUNG>
<AUFTRAGSKOPF> <NAME>Mustermann</NAME> <DATUM>02.10.1998</DATUM> <E-MAIL>[email protected]</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>
16.02.2000 22
XML Grundlagen
Sind die grundlegenden Anforderungen an die XML-
Syntax erfüllt, spricht man von wohlgeformten (well-formed)
Dokumenten
XML stellt die Regeln bereit, um Auszeichnungssprachen zu definieren. Es gibt zwei Arten, diese Regeln (also die Grammatik der konkreten
Auszeichnungssprache) zu spezifizieren:
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).
16.02.2000 23
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>[email protected]</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>
16.02.2000 24
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
16.02.2000 25
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 auch gemischten Inhalt haben
<!ELEMENT a (#PCDATA | b | c)*>
Elemente können als sequentiell, optional etc. definiert werden
<!ELEMENT a (b, c?, (d|e)+, f*)<!ELEMENT e-mail (adresse, cc*, message, signature?)
16.02.2000 26
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 #REQUIREDabbildung CDATA #FIXED
„http://meine.bilder.de/hd.htm“status (angebot | normal) „normal“>
16.02.2000 27
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>[email protected]</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>
16.02.2000 28
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)>
16.02.2000 29
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.
16.02.2000 30
Interne DTDs
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE 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>
<AUFTRAGSKOPF> <NAME>Mustermann</NAME>
.............................</BESTELLUNG>
Die DTD kann auch im Dokument selber enthalten sein:
16.02.2000 31
Logische und physische Struktur von XML-Dokumenten
Die logische Struktur wird von der Anordnung der Tags im Dokument bestimmt.
Ein XML-Dokument kann unabhängig von der logischen Struktur in beliebig viele physische Einheiten zerlegt werden.
Hiermit besteht die Möglichkeit, im Netzwerk verteilte XML-Daten in einem XML-Dokument zusammenzutragen.
Sog. Entities erlauben hierbei das Verweisen auf externe Daten.
Referenzen zu Entities stehen zwischen „&“ und „;“
16.02.2000 32
Externe Entity-Referenzen
<!doctype BESTELLUNG
[ <!entity Kopf SYSTEM “Kopfteil.xml"> <!entity PositionenPC SYSTEM “Positionen/PC1.xml"> <!entity PositionenMonitor SYSTEM “http://monitore.de/m2.xml"> ]>
<BESTELLUNG><KUNDENDATEN>𝕂</KUNDENDATEN> <AUFTRAG> &PositionenPC;
&PositionenMonitor; </AUFTRAG>
</ BESTELLUNG >
XML-Dokumente können sich auf verschiedene Dateien verteilen:
16.02.2000 33
XML Entities, Unicode
<!DOCTYPE BEISPIEL
[ <!ENTITY xml "Extensible Markup Language"> ]>
<BEISPIEL>Der neue Standard &xml; unterstützt internationale Zeichensätze; das Beispiel zeigt verschiedene Schreibweisen für die Zahl „1“:
1 (in ASCII), ١ (in Devanagari), १ (in Arabisch) und ൧ (in Malayalam).
</BEISPIEL>
16.02.2000 34
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
16.02.2000 35
Warum 2 Style-Sheet-Sprachen?
1) CSS: Einfach; jedes Element bekommt eine Formatierungsanweisung
2) XSL: Mehr als CSS (Scripting, Transformation), aber komplizierter
BESTELLUNG {background-color:blue}
NAME, DATUM, E-MAIL {Display:Block; font-size:28pt; font-family:Times,serif}
E-MAIL {color:yellow}
<xsl:template match=”Artikel-Nr."> <P>
<xsl:process-children/> </P>
</xsl:template>
16.02.2000 36
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}
+ =
16.02.2000 37
XML
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)DOM (Recommendation, 01.10.1998)RDF (Recommendation, 24.02.1999)XML Schemas (Working Drafts, 06.05.1999) (XML-Data, DCD, SOX, DDML)
16.02.2000 38
Pause?
16.02.2000 39
Linking in XML
XML unterstützt ein wesentlich weitergehendes Linking, als es von HTML bekannt ist
XLink bietet uni-, bi- und multidirektionale Links
XPointer bietet Mechanismen, um (auch ohne Identifier) auf Fragmente von Zieldokumenten zu verweisen: „book.html#section2“
Einfacher Link Erweiterter Link(XLink)
Link auf Element innerhalb einer Instanz (XPointer)
16.02.2000 40
Namespaces in XML
Wie kann bei Nutzung unterschiedlicher DTDs (für eigene Dokumente, Datenaustausch mit anderen und Suchmaschinen) die Anwendung wissen, welcher Namensraum gerade gemeint ist?
Damit Element- und Attributnamen nicht kollidieren, wurden Namespaces entwicklet. Beispiel: „Titel“ (Buch, akad. Grad)
<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>Mein Text</h:caption><b:titel>Ein Buch</b:titel><p:autor>No</p:autor><p:titel>Dr.</p:titel>
</BEISPIEL>
16.02.2000 41
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
16.02.2000 42
Wofür wird XML eingesetzt werden?
• Messaging („database interchange“): XML als standardisiertes Datenaustauschformat (z.B.: XML/EDI)
• Processing („Distributed processing: giving Java something to do“): Verlagerung der Rechenleistung (Logik) vom Server zum Client (z.B.: Electronic Banking, Electronic Commerce)
• Publishing („View selection: letting the user decide“): Variable Darstellung von Informationen
•Aktuelle, kompatible Websites •Publizieren in versch. Formaten mit XSL (FAQ Problem)•Automatisiertes Publizieren (z.B. aus Datenbanken)
• Retrieval („Web agents: data that knows about me“): Intelligentes Suchen nach Informationen in XML-Datenbeständen/Agenten
16.02.2000 43
Anwendungen: XML/EDI
XML als Datenaustauschformat zwischen unterschiedlichen Datenbeständen
• 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
16.02.2000 44
Anwendungen: XML/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
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
16.02.2000 45
Anwendungen: Processing
Durch die Möglichkeit, alle Daten, die zu einem Dokument gehören, in XML zu codieren, können alle zum Verarbeiten des Dokumentes notwendigen Informationen übertragen und beim Client entsprechend ausgeführt werden („server independent documents“).
Verlagerung der Prozessorlast vom Server zum Client
Reduzierung der Netzlast
Kombination von Java und XML!!!
16.02.2000 46
Anwendungen: Publishing
Auf XML-Dokumente können je Anwendungszweck unterschiedliche Sichten genommen werden („Publish once“):
• Softwaredokumentation: Nur für das jeweilige Betriebssystem • unterschiedliche Anzeige/Druck• zur Laufzeit generierte Inhaltsverzeichnisse• verschiedene Behandlung von Fußnoten etc. in Dokumenten• Sortierung von Telefonbüchern nach Name, Nummer, Vorname etc.• Personalisierte Urlaubsprospekte aus verteilten Datenquellen•...
16.02.2000 47
Anwendungen: Retrieval
„Information needs to know about itself, and information needs to know about me” (Jon Bosak)
• Intelligente Softwareagenten können die Bedeutung von in XML codierten Informationen verstehen bessere Indizierung von Webseiten und Produkten
• Problem der Fehltreffer in Suchmaschinen (Homonyme und Synonyme)
• personalisierte Fernsehprogrammzeitungen
• .....
• Allgemein bilden strukturierte Daten eine Grundlage für eine individuelle Nutzung von Massenmedien über Netze
16.02.2000 48
Anwendungen
• OFX/OFE (Open Financial Exchange), (Quicken, MS Money, Banken) • CML (Chemical Markup Language), Austausch u. Beschreibungen von Molekülen etc. • BSML (Bioinformatic Sequence Markup Language)„public domain protocol for Graphic
Genomic Displays“
• OMF (Weather Observation Markup Format) (OMF)• MML (Mathematical Markup Language) • OSD (Open Software Description Format) zur Beschreibung von Software-Modulen und ihrer
Beziehungen im Umfeld heterogener Clients• CDF (Channel Definition Format) für Pushkanäle im MSIE• OTP, Framework für E-Commerce• SpeechML (IBM) „for building distributed network-based conversational applications“• ThML (Theological Markup Language)• .............
Inzwischen sind hunderte in XML definierte Sprachen entwickelt worden, und täglich entstehen neue XML-Anwendungen: http://www.oasis-open.org/cover/xml.html
16.02.2000 49
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. SCHEMAS.
Warum Schemas?
• Beschreibungssprache: XML
• Erweiterte Datentypen (37+)
• Erweiterte Strukturspezifikation (minOccur, maxOccur)
• Feldformatierung (z.B. dd-dd für 11-22)
• Null-Elemente
• Äquivalente Felddefinition (D-ZUG Element = ICE Element)
16.02.2000 50
XML-Data
• XML-Data ist eine von vier Schema-Submissions beim W3C
• Die XML-Schema Implementierung in IE5 ist ein Subset von XML-Data
• 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
• Dateiendung z.B.: xsd (XML-Schema Definition)
<Schema name="myschema"
xmlns="urn:schemas-microsoft-com:xml-data"xmlns:dt="urn:schemas-microsoft-com:datatypes">
<!-- ... --></Schema>
16.02.2000 51
XML Schemas
<!DOCTYPE ARTIKEL [
<!ELEMENT ARTIKEL (AUTOR, TITEL+)>
<!ELEMENT AUTOR (#PCDATA)>
<!ELEMENT TITEL (#PCDATA)>
]>
16.02.2000 52
XML Schemas
<?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>
16.02.2000 53
XML Schemas - 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 Schemas 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:
16.02.2000 54
XML Schemas - Datentypen
Schemas erlauben die Definition von Datentypen ( Typenvalidierung)
<ElementType name="pages">
<datatype dt:type="int" />
</ElementType>
Während der Validierung wird der Datentyp überprüft. Da Schemas 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>
16.02.2000 55
Pause?
16.02.2000 56
• Ein Standarddatenformat wie XML braucht ein standardisiertes Zugriffsmodell
• Der Ursprung des „Document Object Model“ liegt in dem Ziel einen Standard zu schaffen, der Skripte und Java-Programme unabhängig vom verwendeten Browser macht
• Dieses Zugriffsmodell soll einfach in einer Vielzahl von Umgebungen einsetzbar sein
• Der „Wildwuchs“ der Zugriffsmodelle für Webdokumente soll beendet werden
•„Dynamic HTML“ als Ausgangspunkt
Warum ein Document Object Model
16.02.2000 57
Ein Standardinterface für XML-Dokumente
• Das „Document Object Model“ beschreibt eine API für XML/HTML-Dokumente
• Diese API erlaubt Programmen und Skripten den Zugriff und die Bearbeitung des Inhalts von XML/HTML-Dokumenten
• Das DOM ist programmiersprachen- und plattformneutral
• Programme können das DOM anstatt einer proprietären API verwenden
• Das DOM vereinfacht die Verarbeitung von XML/HTML- Dokumenten
16.02.2000 58
Dokumente sind Objekte
• Das DOM basiert auf einer objektorientierten Modellierung von XML/HTML-Dokumenten
• Das Modell definiert:• eine Menge von Objekten, die den Inhalt eines XML/HTML-Dokumentes repräsentieren• Regeln wie diese Objekte interagieren• ein Standardinterface für den Zugriff und die Manipulation dieser Objekte
• Die Manipulation des gesamten Inhalts eines XML/HTML-Dokumentes ist mit dem DOM möglich
16.02.2000 59
Dokumente sind Objekte
• Im DOM wird ein Strukturmodell für XML/HTML-Dokumente beschrieben
• Dieses Strukturmodell bildet die Basis für den Zugriff auf die Inhalte eines XML/HTML-Dokumentes
• Die Inhalte werden in einer Baumstruktur abgebildet
• Die Inhalte sind als Objekte modelliert
• Diese Objekte haben Attribute und Methoden
• Über die Attribute und Methoden kann der Inhalt eines XML/HTML-Dokumentes verarbeitet werden
16.02.2000 60
Das Objektmodell des DOM
<?xml version="1.0" ?> <BESTELLUNG>
<AUFTRAGSKOPF> <NAME>Mustermann</NAME> <DATUM>02.10.1998</DATUM> <E-MAIL>[email protected]</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>
16.02.2000 61
Das Objektmodell des DOM
BESTELLUNG
AUFTRAGSKOPF
AUFTRAGSPOSITIONEN
NAME DATUM E-MAIL
POSITION POSITION
BEZEICHNUNG ARTIKELNUMMER ANZAHL BEZEICHNUNG ARTIKELNUMMER ANZAHL
Mustermann 02.10.1998 [email protected]
Festplatte 123456 5 Monitor 9876 1
16.02.2000 62
Das Objektmodell des DOM
AUFTRAGSKOPF
NAME DATUM E-MAIL
Mustermann 02.10.1998 [email protected]
16.02.2000 63
• Das DOM ist keine Software!
• Es definiert im Rahmen eines allgemeinen Modells Interfaces für den Zugriff auf XML Dokumente
• In einer DOM konformen Software müssen die abstrakten Interfaces des allgemeinen Modells implementiert sein
• Die Implementierung ist unabhängig von der Plattform und der Programmiersprache
Implementierung des DOM
16.02.2000 64
Beispiele für Implementierungen
• XML Parser (z:B. XML for Java oder XML for C++ von IBM)
• XML Datenbanken
• Browser (z.B. Internet Explorer 5)
16.02.2000 65
Pause?
16.02.2000 66
Das DOM in der Praxis
Beispiel in Java unter Verwendung von XML for Java
16.02.2000 67
„ modernes XML im praktischen Einsatz “
- Schnittstellen und Integrationsmöglichkeiten von XML
auf Basis von Konvertierungsproblemen
16.02.2000 68
Gliederung
• XML (Rec 1.0) • DTD - Document Type Definition (Rec 1.0)• XSLT (Rec 1.0)• XSLT - Integration • XSLT - Prozeß • XML - Szenario[1] extern• XML - Szenario[2] intern• Tech. Anforderungen - Konvertierung• XSL Prozessoren• WEB Seiten• XML / XSL Tools
16.02.2000 69
XML (Rec 1.0)
Standardisierte Beschreibungssprache von Datensätzen
<LOOKUP_TABLE InputSystem="NTM"OutputSystem="DXS"InputObject="CounterpartyID"OutputObject="Depot">
Attribute
<FROM>SAO PAOLO FFM</FROM> <TO>0000000001</TO><FROM>RABO LDN</FROM> <TO>0000000006</TO> <FROM>RABO FFM</FROM> <TO>0000000007</TO> <FROM>VOBA BERLIN</FROM> <TO>0000000008</TO> <FROM>VOBA HAMBURG</FROM> <TO>0000000009</TO> <FROM>UNION</FROM> <TO>0000000010</TO></LOOKUP_TABLE>
Elemente
<!--Lookup table which maps counterparty IDs to DXS Depots--> Kommentar
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE LOOKUP_TABLE "./LOOKUP.dtd">
Header
16.02.2000 70
DTD - Document Type Definition (Rec 1.0)
<!ELEMENT LOOKUP_TABLE (FROM,TO)+><!ATTLIST LOOKUP_TABLE
InputSystem (MUREX | NTM | DXS | ALL) #REQUIREDOutputSystem (MUREX | NTM | DXS | ALL) #REQUIREDInputObject CDATA #IMPLIEDOutputObject CDATA #IMPLIED>
<!ELEMENT FROM (#PCDATA)><!ELEMENT TO (#PCDATA)>
Beschreibung der Datenstruktur einer XML Datei
Bestandteile: • Elemente • Attributlisten
16.02.2000 71
XSLT (Rec 1.0)
...<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">
<!--begin template rule--><!--pattern--><xsl:template match="MainHead">
<!--action--><DIV font-size="20pt" color="red">
<xsl:apply-templates/></DIV>
</xsl:template><!--end template rule-->
</xsl:stylesheet>...
Standardisierte Transformationsprache für XML Daten
<MainHead>Welcome to my Home Page!</MainHead>
Welcome.xml
16.02.2000 72
XSL Prozessor
XML File aufBasis von InhouseDTD
XSLT File XSLT File
XML File aufBasis einer
Standard DTD
XSLT - Integration
16.02.2000 73
XSLT - Prozeß
<?xml version=“1.0”?><xsl:stylesheet> <xsl:template match=“/”> [Aktion für Root-Element] </xsl:template> <xsl:template match=“BookCatalogue”> [Aktion für BookCatalogue] </xsl:template> <xsl:template match=“Book”> [Aktion für Book] </xsl:template> ...</xsl:stylesheet>
16.02.2000 74
ZuliefererZuliefererHerstellerHersteller Bestellung
Lieferschein
Zahlungsanweisung
Rechnung
XML_1 XML_2
XML - Szenario[1]
XSLT
16.02.2000 75
XML - Szenario[2]
<A2S>.xsl<S2B>.xsl
<N2S>.xsl<S2M>.xslDB | File
<AS>.xml
<A>.xml <SB>.xml
P1=1P2=B
CORBA ServiceXSLT Service
P1=0P2=A
P1: S-XML(1|0)P2:System(A|B)
16.02.2000 76
<xsl:template match="CCY"> <xsl:variable name="currency">
<xsl:value-of select="."/> </xsl:variable> <xsl:for-each select="document(‘Isocodes.xml')"> <xsl:apply-templates select="//ISO"> <xsl:with-param name="cur"> <xsl:value-of select="$currency"/> </xsl:with-param> </xsl:apply-templates> </xsl:for-each></xsl:template>
<xsl:template match="ISO"> <xsl:param name="cur">default</xsl:param> <xsl:if test="$cur=string(.)"> <CCY> <xsl:value-of select="following-sibling::National"/> </CCY> </xsl:if></xsl:template>
<ISOToNationalCurrencies> <Currency> <ISO>GBP</ISO> <National>P</National> </Currency> <Currency> <ISO>DEM</ISO> <National>DM</National> </Currency></ISOToNationalCurrencies>
<?xml version="1.0" ?><Root> <CCY>GBP</CCY> <CCY>DEM</CCY></Root>
Lookup Tabellen
Isocodes.xml
Daten.xml
Proz
eß
16.02.2000 77
...
<xsl:variable name=“Global” select=’’’Global”’/>
<xsl:template match=”Katalog”>
<xsl:variable name=”VAR_KAT” select=’”Katalog’”/>
...
<xsl:for-each select=”Produkt”>
<xsl:variable name=”VAR_PRO" select=”’Produkt’”/>
...
<xsl:apply-templates select="."/>
</xsl:for-each>
</xsl:template>
...
</xsl:stylesheet>
Global-Variable
Katalog-Variable
Produkt-Variable
Verfügbarkeit von Variablen
Variablen
16.02.2000 78
Tech. Anforderungen - Konvertierung
Schl
eifen
Variablen
Konkatenation
Subs
trin
gs
TemplatesLo
ggin
g
Look
upTa
belle
nKopieren
Formatierungen
Kontrollfluß
Call-
Funk
tion
XSLT
InitialisierenValid
ierung
Debug
Kom
mentar
16.02.2000 79
XSL Prozessoren
• Lotus XSL (Java / Alphaworks) www.alphaworks.com/tech/LotusXSL
• XT (Java / James Clark) www.jclark.com/xml/xt.html
• Koala XSL engine for Java www.inria.fr/koala/XML/xslProcessor
• XSL:P 1.0 Beta www.clc-marketing.com/xslp
• MITRE C++ XSL processor lxr.mozilla.org/mozilla/source/extensions/transfoemiix
• MSXML (C++ / Micosoft) www.microsoft.com
16.02.2000 80
WEB - Sites
• www.w3c.org/TR/XSLT• www.xslt.com• www.oasis-open.org/cover/xsl.html• www.clc-marketing.com/xslp/xsl-slides/• www.cranesoftwrights.com/training/ Google Search 19.12.1999 20.12 Uhr
• Search: XSL Tools ca. 5060 Hits• Search: XSLT ca 2350 Hits
16.02.2000 81
XML / XSL Tools
• XML Spy (Icon)
• Stylus Excelon (ODI)
• VisualXMLTools (Alphaworks)
• XSL Editor (Alphaworks)