Einführung XML XML Einführung Andreas Leicht
Gliederung Geschichte Einordnung Grundlagen XML DTD XSL XML Einführung Andreas Leicht
Geschichte Grundidee „generic coding“ - Trennung Information/Form formal definierter Dokumenttyp verschachtelte Strukturen Hypertext XML Einführung Andreas Leicht
Was ist XML ? XML = EXtensible Markup Language Spezifikation zur Sprachentwicklung entwickelt um Daten zu beschreiben Tags im Vergleich zu HTML nicht vordefiniert „Design“ von eigenen XML ist Teilmenge von SGML Standard ist frei und erweiterbar XML Einführung Andreas Leicht
Wozu XML ? Um Informationen zu Datenaustausch im Web (auch B2B) strukturieren speichern senden Datenaustausch im Web (auch B2B) Daten werden „nützlicher“ zukünftiges universelles Datenformat XML Einführung Andreas Leicht
XML Dokument 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, ... XML Einführung Andreas Leicht
XML Syntax Ein Beispiel <?xml version="1.0"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> XML Einführung Andreas Leicht
XML Elemente Erweiterbar und in Beziehung untereinander XML Element = alles zwischen Start- und Endtag inklusive dieser Namensregeln Buchstaben, Zahlen und andere Zeichen nicht Zahl, „_“ bzw. „xml“ am Anfang keine Leerzeichen XML Einführung Andreas Leicht
XML Attribute Im Starttag (z.B.: <note date="12/11/99">) eingeschlossen zwischen ‚‘ oder „“ Elemente oder Attribute ? <person sex="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person> oder <sex>female</sex> XML Einführung Andreas Leicht
XML Namespaces Elementnamenkonflikte vermeiden Präfix (kein Namespace) <prefix:element> Namespace <element xmlns:namespace-prefix="namespace"> alternative: Default Namespace <element xmlns="namespace"> Attributwert "namespace" sollte URI sein XML Einführung Andreas Leicht
XML PCDATA und CDATA XML Parser behandeln alle Daten außer CDATA-Blöcke als PCDATA ungültige Zeichen „<“ und „&“ Zeichenersetzungen: < < less than > > greater than & & ampersand ' ' apostrophe " " quotation mark CDATA Abschnitt: <![CDATA[ ... ]]> XML Einführung Andreas Leicht
Was fehlt ? Kommentare <!-- ... --> Processing Instructions <? ... ?> leere Elemente (2 Varianten) <img src="foto.jpg"/> <img src="foto.jpg"></img> Multimedia (in DTD definiert) <!ENTITY bild SYSTEM "foto.jpg" NDATA JPEG> als Instanz verwendet: &bild; XML Einführung Andreas Leicht
Was ist eine DTD ? Document Type Definition beschreibt XML Struktur XML-Dokument gültig ? 2 Möglichkeiten diese einzubinden interne DOCTYPE Deklaration <!DOCTYPE root-element [element-declarations]> externe DOCTYPE Deklaration <!DOCTYPE root-element SYSTEM "filename"> XML Einführung Andreas Leicht
Wozu eine DTD ? XML auch ohne DTD möglich Vorteile der DTD Gültigkeitsprüfung (Struktur) eigene Daten fremde Daten (aus Web ?) Beschreibung zur XML wird mitgeliefert einfacherer Datenaustausch XML Einführung Andreas Leicht
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> XML Einführung Andreas Leicht
DTD Beispiel (extern) Externe DTD zu XML Beispiel (note) <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> Einbindung in note.xml <!DOCTYPE note SYSTEM "note.dtd"> XML Einführung Andreas Leicht
DTD Elemente (1) Sequenz-Operator Oder-Operator <!ELEMENT element-name (child1,child2)> Oder-Operator <!ELEMENT element-name (child1|child2)> optionales Element (child?) mindestens ein Vorkommen (child+) beliebig oft (child*) nur Text <!ELEMENT element-name (#PCDATA)> XML Einführung Andreas Leicht
DTD Elemente (2) Gemischter Inhalt 2 reservierte Schlüsselwörter ANY <!ELEMENT element-name (#PCDATA|child)*> 2 reservierte Schlüsselwörter ANY <!ELEMENT element-name ANY> EMPTY <!ELEMENT element-name EMPTY> XML Einführung Andreas Leicht
DTD Attribute (1) mit !ATTLIST definiert (Default) Beispiel <!ATTLIST ename aname atype adefault-value> e = element a = attribute Beispiel <!ELEMENT payment (#PCDATA)> <!ATTLIST payment type CDATA "check"> Anwendung in XML <payment type="check">100 €</payment> XML Einführung Andreas Leicht
DTD Attribute (2) nicht explizit benötigt (implied) <!ATTLIST ename aname atype #IMPLIED> notwendig (required) <!ATTLIST ename aname atype #REQIRED> festgelegt (fixed) <!ATTLIST ename aname atype #FIXED default> Auswahlliste <!ATTLIST ename aname (en1|en2|...) default> XML Einführung Andreas Leicht
DTD Entities Variablen in XML gültig Deklaration in XML: &entity-name; intern <!ENTITY entity-name "entity-value"> extern <!ENTITY entity-name SYSTEM "URI/URL"> in XML: &entity-name; XML Einführung Andreas Leicht
DTD PEReference Parameter Entity Reference innerhalb DTD Deklaration intern <!ENTITY % entity-name "entity-value"> extern <!ENTITY % entity-name SYSTEM "URI/URL"> in DTD: %entity-name; XML Einführung Andreas Leicht
DTD Notation Definition von z.B. Grafikformaten Entity <!ENTITY bild SYSTEM "foto.jpg" NDATA JPEG> 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--> XML Einführung Andreas Leicht
Was ist XSL ? eXtensible Stylesheet Language Stylesheet Sprache für XML ausgeklügelter als CSS aber auch CSS verwendbar 3 Teile XSLT, Xpath, XSL Formatting Objects größte Bedeutung XSLT XML Einführung Andreas Leicht
Quellen World Wide Web Consortium (W3C) W3Schools (http://www.w3.org) W3Schools (http://www.w3schools.com) XML in der Praxis (Henning Behme, Stefan Minert) (http://www.mintert.com/xml/buch) XML Einführung Andreas Leicht