XML-Übersicht Nutzen von XML (extensible Markup Language) Aufbau von XML-Dokumenten Definition von Grammatiken: DTD und XML Schema XML-Nutzung: Parser und Stylesheets mit schwarz-roter Linie aus: Vorlesung von Prof. Fischer (TU Braunschweig): http://www.ibr.cs.tu-bs.de/lehre/ss02/web/ Dort auch (Kap. 8) ausführliche Darstellung des Stoffes XML (Puppe) 1 Beschränkungen von HTML Von HTML zu XML gut für darstellungsorientierte Elemente (z.b. <I>.. </I>) schlecht für inhaltsorientierte Tags (z.b. <ADRESS>..) HTML nicht wirklich inhaltsorientiert ausbaubar Versuch in HTML-4-Standard, z.b. für <PERSON> aber: Wünsche bzgl. Umfang und Granularität zu heterogen Umfang: z.b. für Geschäftsanwendungen spezielle Tags nötig Granularität: z.b. bei <PERSON>: Vornamen? (wie viele?, Intials?), Nachname (auch Geburtsname?), Titel?, Anrede? XML erlaubt die Definition beliebiger inhaltsorientierter Tags und ist daher logische Ergänzung zu HTML HTML: wie stelle ich einen Text da? XML: Was ist die Bedeutung eines Textes? XML (Puppe) 2 1
Geschichte von XML 1996 wurde XML als Diskussionsvorschlag verabschiedet. 1998 wurde XML als Standard vom W3-Konsortium in der Version 1.0 beschlossen. XML ist eine Teilmenge von SGML; das WWW und HTML hatten auf die Entstehung von XML einen großen Einfluss. 1997 1992 XML HTML WWW 1986 SGML 1960 Generalized Markup Internet XML (Puppe) 3 Nutzen von XML Trennung von Inhalt, Struktur und Layout: verschiedene Präsentationen (z.b. Webauftritte, Broschüren, Preiskataloge usw.) aus derselben Datenquelle Single Source Prinzip: write once, read everytime Content Management Systeme Automatische Extraktion von Inhalten: Daten werden nicht nur für Menschen präsentiert (wie in HTML) sondern können auch von Programmen weiterverarbeitet werden. (B2B) Business to Business Applications Informationsagenten im Netz (z.b. Preisvergleiche) XML (Puppe) 4 2
Eigenschaften von XML Markierungssprache (Auszeichnungssprache) Meta-Markierungssprache keine festen Marken Sprachgenerator Syntax überprüfbar, XML Parser wohlgeformt gültig Markierung von Inhalt gemäß Struktur, nicht Darstellung Ausnahme XSL-FO allgemeines textuelles Datenaustauschformat XML ist keine Programmiersprache oder Datenbank XML (Puppe) 5 type XML (Puppe) 6 3
Vorspann: Bestandteile von XML Version: z.b. <?xml version = "1.0"> DTD: Verweis auf Grammatik: <!DOCTYPE > (Verarbeitungsvorschrift) Elemente (Tags): z.b. <offer>, <store>, <book> usw. ähnlich wie in HTML, aber selbstdefiniert Attribute: z.b. bei <price>: type = "retail" ähnlich wie in HTML, aber selbstdefiniert Entitäten: (nicht im Beispiel vorhanden) zur Wiederverwendung und Modularisierung von Texten XML (Puppe) 7 XML (Puppe) 8 4
XML (Puppe) 9 XML (Puppe) 10 5
XML (Puppe) 11 XML (Puppe) 12 6
XML (Puppe) 13 XML (Puppe) 14 7
Definition einer DTD Formulierung der Terminale: Elemente: <!ELEMENT Name Wert> Name: nur Buchstaben, Ziffern und "." "-" "_" sind erlaubt; Groß- / Kleinschreibung relevant; darf nicht mit "xml" beginnen Wert: (#PCDATA) ANY EMPTY Elemente (#PCDATA Elemente)*> Formulierung der Regeln für Elemente (a, b, c, = Elemente): - Gruppierung: (a b) oder (a b c) - Alternative: a b oder a b c - Sequenz: a, b oder a, b,c - Wiederholung 0.. n: a * - Wiederholung 1.. n: a + - Wiederholung 0.. 1: a? Attribute: <!ATTLIST Elementname Attributliste> Elementname: Name eines definierten Elementes Attributliste: Name Typ Bedeutung Typ: CDATA ID IDREF IDREFS Entity ( (Name Name )* ) Bedeutung: #IMPLIED #REQUIRED Name #FIXED Name Entitäten: <!entity "kuerzel" "Ersetzungstext"> <!entity "kuerzel" system "Verweis"> XML (Puppe) 15 Erlaubte Typen bei Attributen (meist "CDATA") XML (Puppe) 16 8
Bedeutung bei Attributen XML (Puppe) 17 Typen von Elementen XML (Puppe) 18 9
(nachname, vorname) XML (Puppe) 19 15 XML (Puppe) 20 10
XML (Puppe) 21 XML (Puppe) 22 11
Vorteile von XML-Schemata Jedes XML Schema ist selbst ein XML-Dokument (im Gegensatz zu DTD keine spezielle Syntax mit speziellen Verarbeitungswerkzeugen erforderlich) Auch komplexe Integritätsbedingungen formulierbar. XML Schema enthält vordefinierte und eigendefinierbare Datentypen, wodurch Typprüfung möglich wird. Bei Datentypen werden Vererbung und Substitution unterstützt. Nullwerte sind wie bei Referenzen und in Datenbanken darstellbar. Modularisieren & Wiederverwenden von XML Schemata ist möglich Benennungskonflikte können durch Verwendung von XML- Namensräumen vermieden werden. XML (Puppe) 23 Beispiel: XML-Dokument für ein Buch <?xml version="1.0" encoding="utf-8"?> <book isbn="0836217462"> <title> Being a Dog Is a Full-Time Job </title> <author>charles M. Schulz</author> <character> <name>snoopy</name> <friend-of>peppermint Patty</friend-of> <since>1950-10-04</since> <qualification> extroverted beagle </qualification> </character> <character> <name>peppermint Patty</name> <since>1966-08-22</since> <qualification>bold, brash and tomboyish</qualification> </character> </book> XML (Puppe) 24 12
Definition der Struktur mit XML-Schema 1. Öffnung eines xs-schema Elementes: <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema">.../... </xs:schema> 2. Definitionsstruktur der Elemente: <xs:element name="book"> <xs:complextype> <xs:sequence>.../... </xs:sequence>.../... </xs:complextype> </xs:element> Ein Buch ist ein "complextype", da es Attribute und andere Elemente enthält (Alternative: "simpletype" für Strings). Die Nachfolger werden durch ein "sequence"-element zusammengefasst (andere Kompositoren: "choice" und "all") XML (Puppe) 25 Definition der Elemente 3. Titel und Autor sind einfache Typen: <xs:element name="title" type="xs:string"/> <xs:element name="author" type="xs:string"/> 4. Character hat eine Kardinalität (0.. ) und ist komplex: <xs:element name="character" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <xs:sequence>.../... </xs:sequence> </xs:complextype> </xs:element> 5. Elemente von Character: <xs:element name="name" type="xs:string"/> <xs:element name="friend-of" type="xs:string" minoccurs="0" maxoccurs="unbounded"/> <xs:element name="since" type="xs:date"/> <xs:element name="qualification" type="xs:string"/> XML (Puppe) 26 13
Definition des Attributes 6. Attribute werden immer am Ende definiert, hier die ISBN zum Buch: <xs:attribute name="isbn" type="xs:string"/> XML (Puppe) 27 Die komplette Definition des Beispiels: <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="book"> <xs:complextype> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="author" type="xs:string"/> <xs:element name="character" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="friend-of" type="xs:string" minoccurs="0" maxoccurs="unbounded"/> <xs:element name="since" type="xs:date"/> <xs:element name="qualification" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> </xs:sequence> <xs:attribute name="isbn" type="xs:string"/> </xs:complextype> </xs:element> </xs:schema> XML (Puppe) 28 14
2. Beispiel für XML-Schema <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <element name="paper" type="papertype" /> <xsd:complextype name="papertype"> <xsd:sequence> <xsd:element name="autor" type="xsd:string"/> <xsd:element name="titel" type="xsd:string"/> <xsd:element name="datum" type="xsd:gyearmonth"/> <xsd:element name="link" type="xsd:anyuri minoccurs="0"/> </xsd:sequence> <xsd:attribute name="typ" type="art"/> </xsd:complextype> XML (Puppe) 29 2. Beispiel für XML-Schema (2) <xsd:simpletype name="art"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="proc"/> <xsd:enumeration value="report"/> <xsd:enumeration value="journal"/> <!-- and so on... --> </xsd:restriction> </xsd:simpletype> XML (Puppe) 30 15
(1) XML (Puppe) 31 XML (Puppe) 32 16
(2) XML (Puppe) 33 XML (Puppe) 34 17
XSLT XML Applikation :Transformation von XML Dokumenten Umwandeln des Input-Baums in Output-Baum Durchlauf Preorder Anwenden von Templates (Filtern) auf ausgewählte Knoten Datenstrombasierte (funktionale) Programmierung Input wohlgeformt output nicht notwendig XML (Puppe) 35 XML (Puppe) 36 18
XML (Puppe) 37 XML (Puppe) 38 19
XML (Puppe) 39 XML (Puppe) 40 20
XML (Puppe) 41 XML (Puppe) 42 21
XLink XML Anwendungen CSS: Cascading Style Sheets (einfache Formatierung) DSSSL: Document Style Semantics & Specification Language(komplexe Formatierung; SGML-basiert) XLink: Einbinden von externem XML Text XHTML: XML-kompatibles HTML XSL-FO: formatted objects layout Beschreibung XSLT: extensible Stylesheet Language Transformation Sprache zur Beschreibung von Regeln zur Transformation zwischen XML Dokumenten XPointer: Verweis auf XML Dokumente XPath: Verweis auf Elemente in einem XML Dokument XHTML XSL-FO XSLT XPointer CSS DSSSL XML XPath XML (Puppe) 43 Kooperation XSLT - Transform wohlgeformt XML - Inhalt - Element * 1 DTD gültig - Struktur - Elementdef darstellen stylesheet - Darstellung css dsssl xsl-fo XML (Puppe) 44 22
Ablauf XML Text DTD XML Parser DOM Format XSLT Templates XSLT Prozessor XML Text XSL-FO Objekte XHTML Text HTML-Browser FO Prozessor PDF Text XML (Puppe) 45 WWW Links zu XML Spezifikationen: Kommerziell: e-business: http://www.w3.org/ http://www.xml.org/ http://www.ebxml.org/ public domain tools: http://www.garshol.priv.no/download/xmltools/ XML (Puppe) 46 23
XML (Puppe) 47 24