Grundlagen von XML Prof T Kudra HTWK Leipzig

  • Slides: 29
Download presentation
Grundlagen von XML

Grundlagen von XML

© Prof. T. Kudraß, HTWK Leipzig Geschichte l l l Grundidee „generic coding“ Trennung

© Prof. T. Kudraß, HTWK Leipzig Geschichte l l l Grundidee „generic coding“ Trennung Information/Form formal definierter Dokumenttyp verschachtelte Strukturen Hypertext Extensible Markup Language (XML): “Erweiterbares HTML” Zusammenwachsen von SGML and HTML: – – Stärke von SGML (Dokumentenbeschreibungssprache) plus Einfachheit von HTML

© Prof. T. Kudraß, HTWK Leipzig HTML vs. XML l HTML beschreibt das Aussehen

© Prof. T. Kudraß, HTWK Leipzig HTML vs. XML l HTML beschreibt das Aussehen eines Web. Dokuments, nicht den Inhalt. Daraus resultieren Beschränkungen des WWW: – – – l Austausch von Informationen Transformation von Dokumentformaten Suche nach Informationen Idee von XML „XML bridges the incompatibilities of computer systems, allowing people to search for and exchange scientific data, commercial products and multilingual documents with greater ease and speed“ (Jon Bosak & Tim Bray, XML and the Second. Generation Web, in: Scientific American, Mai 1999)

© Prof. T. Kudraß, HTWK Leipzig Was ist XML ? l l l XML

© Prof. T. Kudraß, HTWK Leipzig Was ist XML ? l l l XML = EXtensible Markup Language zukünftiges universelles Datenformat (Teilmenge von SGML) XML ist eine Meta-Sprache, also eine Sprache zur Definition von Sprachen Tags im Vergleich zu HTML nicht vordefiniert „Design“ von eigenen Tags Standard ist frei und erweiterbar XML, um Informationen zu – – – l strukturieren speichern senden Datenaustausch im Web (auch B 2 B)

© Prof. T. Kudraß, HTWK Leipzig XML-Beispiel (Bücherliste) <? XML version=“ 1. 0” standalone=“yes”?

© Prof. T. Kudraß, HTWK Leipzig XML-Beispiel (Bücherliste) <? XML version=“ 1. 0” standalone=“yes”? > <!DOCTYPE BOOKLIST SYSTEM “booklist. dtd”> <BOOKLIST> <BOOK genre=“Fiction”> <AUTHOR> <FIRST>Milan</FIRST><LAST>Kundera</LAST> </AUTHOR> <TITLE>Identity</TITLE> <PUBLISHED>1998</PUBLISHED> <BOOK genre=“Science” format=“Hardcover”> <AUTHOR> <FIRST>Richard</FIRST><LAST>Feynman</LAST> </AUTHOR> <TITLE>The Character of Physical Law</TITLE> </BOOK></BOOKLIST>

© Prof. T. Kudraß, HTWK Leipzig XML-Grundbegriffe: Dokument l Dokument – – XML-Dokument impliziert

© Prof. T. Kudraß, HTWK Leipzig XML-Grundbegriffe: Dokument l Dokument – – XML-Dokument impliziert nicht Dokument im herkömmlichen Sinn Ein XML-Dokument besteht aus l l l Prolog (optional) DTD (optional) dem Wurzelelement – l – – l Baum Kommentare und Processing Instructions sind an fast allen Stellen möglich Im Sinne der Spezifikation wohlgeformte Daten XML Dokument gültig, falls DTD vorliegt und Dokument dieser entspricht physikalischer Aufbau aus Entities logischer Aufbau aus Deklarationen, Elementen, Kommentaren, . . . Prolog – <? xml version=“ 1. 0“ encoding=“UTF-8“ standalone=“yes“? >

© Prof. T. Kudraß, HTWK Leipzig XML-Grundbegriffe: Element l XML-Element – – hat ein

© Prof. T. Kudraß, HTWK Leipzig XML-Grundbegriffe: Element l XML-Element – – hat ein Start-Tag und ein End-Tag mit seinem Namen kann Attribute und Inhalt haben (PCDATA oder Elemente) l l – – Attribute optional ein leeres Element hat keinen Inhalt l – <empty. Element></empty. Element> kurz: <empty. Element/> mixed Content: Inhalt besteht aus PCDATA und Elementen l l <my. Element myatt=“ 5“>Inhalt>/my. Element> <your. Element><x>y</x><x>5</x><Z>a</Z></your. Element> <Vortrag>XML-Speicherung mit <Produkt>Oracle</Produkt> von <Professor>Kudrass</Professor></Vortrag> Namensregeln – – – Buchstaben, Zahlen und andere Zeichen nicht Zahl, „_“ bzw. „xml“ am Anfang keine Leerzeichen

© Prof. T. Kudraß, HTWK Leipzig XML-Grundbegriffe: Entity l Parameter Entity (nur in der

© Prof. T. Kudraß, HTWK Leipzig XML-Grundbegriffe: Entity l Parameter Entity (nur in der DTD verwendet) – nur in der DTD verwendet: % entity-name; l l l <!ENTITY % children “(A, B, C)*“> Referenz: <!ELEMENT parent %children; > Character Entity (referenziert durch &#x 0020; ) Predefined Entity (referenziert durch < > &qout; & &apos; ) Parsed (internal oder external) Entity <!ENTITY entity-name "entity-value"> <!ENTITY Copyright “Copyright Oracle 2001"> <!ENTITY License SYSTEM “http: //www. oracle. com/license. xml“> l Unparsed external Entity <!ENTITY entity-name SYSTEM "URI/URL"> <!ENTITY Bild SYSTEM “. . /grafics/Buntes. Bild. gif“ NDATA gif> Name als Attributwert verwendet

© Prof. T. Kudraß, HTWK Leipzig Weitere XML-Grundbegriffe l Kommentar – – – l

© Prof. T. Kudraß, HTWK Leipzig Weitere XML-Grundbegriffe l Kommentar – – – l <!-- Dies ist ein Kommentar --> kann (außerhalb von Markup) überall im Dokument vorkommen nicht in DTD deklariert Processing Instruction – – – <? xml: stylesheet type=“text/xsl“ href=“stylesheets/print/xsl“ ? > kann (außerhalb von Markup) überall im Dokument vorkommen nicht in DTD deklariert

© Prof. T. Kudraß, HTWK Leipzig XML Namespaces (Namensräume) l l Konflikte zwischen Elementnamen

© Prof. T. Kudraß, HTWK Leipzig XML Namespaces (Namensräume) l l Konflikte zwischen Elementnamen vermeiden Präfix (kein Namespace) – – – l Präfixe für Namespaces – – l <prefix: element> z. B. <mein. EMail. Programm: web> <mein. EMail. Programm: email> Problem: Präfixe nicht immer eindeutig <element xmlns: namespace-prefix="namespace"> <eag: email xmlns: eag=“http: //www. aol. com/Email. App. Guy“> email@machine. com <eag: email> Default Namespaces <element xmlns="namespace"> l Attributwert "namespace" sollte – l URI sein Zweck: weltweit eindeutige Zeichenkette (selbst wenn dort nicht vorhanden)

© Prof. T. Kudraß, HTWK Leipzig XML PCDATA l l l XML Parser behandeln

© Prof. T. Kudraß, HTWK Leipzig XML PCDATA l l l XML Parser behandeln alle Daten außer CDATA-Blöcke als PCDATA (Parsable Character Data) ungültige Zeichen “<“ und “&“ Zeichenersetzungen: < > less than > > greater than & & ampersand &apos; ' apostrophe " " quotation mark

© Prof. T. Kudraß, HTWK Leipzig CDATA-Abschnitte l CDATA Abschnitt: <![CDATA[ ‘ Inhalt ‘]]>

© Prof. T. Kudraß, HTWK Leipzig CDATA-Abschnitte l CDATA Abschnitt: <![CDATA[ ‘ Inhalt ‘]]> – – l Interpretation: “Hände weg! Das hier soll nicht interpretiert werden!“ Textabschnitt wird nicht als mit Markups durchsetzt interpretiert Beispiel: <![CDATA [ <HTML> Dies ist ein Beispiel für HTML für Dummköpfe! <p> Es kann mühsam sein, in HTML ein Buch über XML zu schreiben, aber in XML ist es ganz einfach! </HTML> ]]>

© Prof. T. Kudraß, HTWK Leipzig DTD l l Document Type Definition schematische Beschreibung

© Prof. T. Kudraß, HTWK Leipzig DTD l l Document Type Definition schematische Beschreibung des XML-Dokuments – l l l und Definition von Entities Elemente dürfen verschiedene Eltern haben Schema kann auch rekursiv sein – l <!ELEMENT my. Element (PCDATA)> <!ELEMENT your. Element (x*, y)> <!ATTLIST my. Element myatt CDATA #REQUIRED> <!ELEMENT A (B*)> <!ELEMENT B (A*)> “Offenes“ Schema ist möglich (Kinder müssen aber deklariert sein) – <!ELEMENT X (ANY)>

© Prof. T. Kudraß, HTWK Leipzig DTD (Forts. ) l DTD kann – extern

© Prof. T. Kudraß, HTWK Leipzig DTD (Forts. ) l DTD kann – extern sein l – und/oder intern l l – l l <!DOCTYPE root-element SYSTEM "filename"> externe Definitionen werden überschrieben <!DOCTYPE root-element [element-declarations]> oder fehlen Gültig: Dokumente, für die eine DTD definiert ist, heißen gültig (valid), wenn sie der in der DTD definierten Struktur entsprechen Wohlgeformt: Dokumente, die gemäß XML Empfehlung syntaktisch korrekt sind, heißen wohlgeformt (well-formed)

© Prof. T. Kudraß, HTWK Leipzig DTD Beispiel (intern) <? xml version="1. 0"? >

© Prof. T. Kudraß, HTWK Leipzig DTD Beispiel (intern) <? xml version="1. 0"? > <!DOCTYPE note [ <!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend</body> </note>

© Prof. T. Kudraß, HTWK Leipzig DTD Beispiel (extern) l Externe DTD zu XML

© Prof. T. Kudraß, HTWK Leipzig DTD Beispiel (extern) l Externe DTD zu XML Beispiel (note) <!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> l Einbindung in note. xml <!DOCTYPE note SYSTEM "note. dtd">

© Prof. T. Kudraß, HTWK Leipzig DTD Elemente l Sequenz-Operator <!ELEMENT element-name (child 1,

© Prof. T. Kudraß, HTWK Leipzig DTD Elemente l Sequenz-Operator <!ELEMENT element-name (child 1, child 2)> l Oder-Operator <!ELEMENT element-name (child 1 | child 2)> l optionales Element (child? ) l mindestens ein Vorkommen (child+) l beliebig oft (child*) nur Text <!ELEMENT element-name (#PCDATA)> Gemischter Inhalt l l <!ELEMENT element-name (#PCDATA | child)*> l Beliebiger Inhalt (ANY) <!ELEMENT element-name ANY> l Kein Inhalt (leeres Element) <!ELEMENT element-name EMPTY>

© Prof. T. Kudraß, HTWK Leipzig DTD Attribute l mit !ATTLIST definiert (Default) <!ATTLIST

© Prof. T. Kudraß, HTWK Leipzig DTD Attribute l mit !ATTLIST definiert (Default) <!ATTLIST ename atype adefault-value> e = element, a = attribute l Beispiel-Definition <!ELEMENT payment (#PCDATA)> <!ATTLIST payment type CDATA "check"> <payment type="check">100 €</payment> l nicht explizit benötigt (implied) <!ATTLIST ename atype #IMPLIED> l notwendig (required) <!ATTLIST ename atype #REQIRED> l festgelegt (fixed) <!ATTLIST ename atype #FIXED default> l Auswahlliste <!ATTLIST ename aname (en 1|en 2|. . . ) default>

© Prof. T. Kudraß, HTWK Leipzig DTD Notation Definition von z. B. Grafikformaten l

© Prof. T. Kudraß, HTWK Leipzig DTD Notation Definition von z. B. Grafikformaten l Entity l <!ENTITY bild SYSTEM "foto. jpg" NDATA JPEG> l zugehörige Notation <!NOTATION JPEG PUBLIC "ISO/IEC 10918: 1993//NOTATION Digital Compression and Coding of Continuous-tone Still Images (JPEG)//EN"> <!--Internationaler JPEG-Standard-->

© Prof. T. Kudraß, HTWK Leipzig DTD Weiteres Beispiel <!DOCTYPE BOOKLIST [ <!ELEMENT BOOKLIST

© Prof. T. Kudraß, HTWK Leipzig DTD Weiteres Beispiel <!DOCTYPE BOOKLIST [ <!ELEMENT BOOKLIST (BOOK)*> <!ELEMENT BOOK (AUTHOR, TITLE, PUBLISHED? )> <!ELEMENT AUTHOR (FIRST, LAST)> <!ELEMENT FIRST (#PCDATA)> <!ELEMENT LAST (#PCDATA)> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT PUBLISHED (#PCDATA)> <!ATTLIST BOOK genre (Science | Fiction) #REQUIRED> <!ATTLIST BOOK format (Paperback | Hardcover) “Paperback”> ]>

© Prof. T. Kudraß, HTWK Leipzig XML-Parser / <tag> XML-Dokument XML-Parser attr <tag> data

© Prof. T. Kudraß, HTWK Leipzig XML-Parser / <tag> XML-Dokument XML-Parser attr <tag> data

© Prof. T. Kudraß, HTWK Leipzig Document Object Model (DOM) l l l HTML

© Prof. T. Kudraß, HTWK Leipzig Document Object Model (DOM) l l l HTML und XML Plattform- und sprachunabhängig Dynamischer Zugriff und Manipulation von – – l Eigenes Strukturmodell – – l Inhalt Struktur repräsentiert die Baumstruktur eines XMLDokumentes einschließlich Kommentaren und Processing Instructions Schnittstelle – nicht Implementierung

© Prof. T. Kudraß, HTWK Leipzig Spezifische Markup-Sprachen l Entwicklung standardisierter DTDs für spezialisierte

© Prof. T. Kudraß, HTWK Leipzig Spezifische Markup-Sprachen l Entwicklung standardisierter DTDs für spezialisierte Domains erlaubt Datenaustausch zwischen heterogenen Quellen l DTD definiert Markup-Sprache für branchen- und anwendungsspezifische Semantik l Beispiel: Mathematische Markup Language (Math. ML) – – – Mathematische Sachverhalte im Web In HTML: <IMG SRC=“xysq. gif” ALT=“(x+y)^2”> Nachteil: Mangelnde Flexibilität bei der Präsentation (Font. Größe, Hintergrund-Farbe) In Math. ML Presentation Elements, Content Elements Beispiel: <apply> <power/> <apply> <plus/> <ci>x</ci> <ci>y</ci> </apply> <cn>2</cn> </apply>

© Prof. T. Kudraß, HTWK Leipzig XML-basierte Markup-Sprachen l l l ECML - Electronic

© Prof. T. Kudraß, HTWK Leipzig XML-basierte Markup-Sprachen l l l ECML - Electronic Commerce Modeling Language Fp. ML - Financial Products Markup Language Chemical Markup Language (CML) Music Markup Language (Musik. ML) Weather Observation Definition Format Encoded Archival Description (EAD) Tutorial Markup Language (TML) Channnel Definition Format (CDF) Web. DAV: Distributed Authoring and Versioning on the WWW Wireless Application Protocol (WAP). . .

© Prof. T. Kudraß, HTWK Leipzig XML in Anwendungen XML Standards, Sprachen und Anwendungen:

© Prof. T. Kudraß, HTWK Leipzig XML in Anwendungen XML Standards, Sprachen und Anwendungen: l Web Publishing l Electronic Commerce – – – l l Application-to-Application (A 2 A) Business-to-Business (B 2 B) Business-to-Consumer (B 2 C) Elektronic Data Interchange (EDI) Enterprise Application Integration (EAI)

© Prof. T. Kudraß, HTWK Leipzig XML in Anwendungen Vokabulare und Frameworks für XML-Entwicklung

© Prof. T. Kudraß, HTWK Leipzig XML in Anwendungen Vokabulare und Frameworks für XML-Entwicklung l Electronic Business XML (eb. XML) http: //wwww. ebxml. org l XML initiative (OASIS) l Biz. Talk (Microsoft) http: //www. biztalk. org l c. XML (Ariba) l Rosetta Net http: //www. rosettanet. org l XML/EDI Group http: //www. xmledi. com

Datenaustausch - Schlüssel zum e-Commerce © Prof. T. Kudraß, HTWK Leipzig Company to Company

Datenaustausch - Schlüssel zum e-Commerce © Prof. T. Kudraß, HTWK Leipzig Company to Company (Supply Chain) Kunde Lieferant Order Tracking • EDI • • Punkt-zu-Punkt Lösung hoher Investitionsaufwand • für Mittelstand ungeeignet • Ablösung durch XML • Standardisierte DTDs • Können auch unilateral erweitert werden • Standardwerkzeuge

. . . und integriertes Content Management © Prof. T. Kudraß, HTWK Leipzig Kunde

. . . und integriertes Content Management © Prof. T. Kudraß, HTWK Leipzig Kunde l l XML impliziert keine bestimmte Präsentationsform Unterschiedliche Präsentationen von XML-Dokumenten wird durch Style. Sheets ermöglicht Hohe Flexibilität Generischer Ansatz Lieferant Internet Suche Katalog. Management CD/DVD Print on Demand

© Prof. T. Kudraß, HTWK Leipzig Was ist XSL ? l l l e.

© Prof. T. Kudraß, HTWK Leipzig Was ist XSL ? l l l e. Xtensible Stylesheet Language Stylesheet Sprache für XML, sieht aus wie XML! ausgeklügelter als CSS (aber auch CSS verwendbar) XSL noch im Entwicklungsstadium 2 Teile – – l Transformation von XML in eine andere Art von XML (Transformationssprache XSLT) Vokabular für Formatierugsobjekte (Formatting Objects) Formatierungsobjekte – aus Textverarbeitung bekannte Konstrukte l – – l Blöcke, Grafiken, Linien, Tabellen FOs formen einen Baum = “Formatierungsobjektbaum“ als XML-Dokument Vokabular z. Zt. noch in Entwicklung XPATH als Anfragesprache zum Zugriff auf Bestandteile des Dokuments