XML (Puppe) 1
•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-Übersicht
XML (Puppe) 2
Von HTML zu XML
•Beschränkungen von HTML
–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) 3
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
1960 1986
XML
HTML
SGML
WWW
Internet Markup
Generalized
XML (Puppe) 4
•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)
Nutzen von XML
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
type
XML (Puppe) 7
Bestandteile von XML
•Vorspann:
–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) 8
XML (Puppe) 9 XML (Puppe) 10
XML (Puppe) 13 XML (Puppe) 14
XML (Puppe) 15
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) 16
Erlaubte Typen bei Attributen (meist "CDATA")
Bedeutung bei Attributen Typen von Elementen
XML (Puppe) 19 (nachname, vorname)
XML (Puppe) 20
15
XML (Puppe) 21 XML (Puppe) 22
• 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.
Vorteile von XML-Schemata 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) 25
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 "se- quence"-Element zusammengefasst (andere Kompositoren: "choice" und "all")
XML (Puppe) 26
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) 27
Definition des Attributes
6. Attribute werden immer am Ende definiert, hier die ISBN zum Buch:
<xs:attribute name="isbn" type="xs:string"/>
XML (Puppe) 28
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>
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>
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) 31
(1)
XML (Puppe) 32
XML (Puppe) 33
(2)
XML (Puppe) 34
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) 37 XML (Puppe) 38
XML (Puppe) 39 XML (Puppe) 40
XML (Puppe) 43
XML Anwendungen
XML XPath
XHTML XSL-FO XSLT XPointer XLink
CSS
DSSSL
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
XML (Puppe) 44
Kooperation
XML - Inhalt - Element
DTD - Struktur - Elementdef
*
1 wohlgeformt
gültig
stylesheet - Darstellung
css dsssl xsl-fo
darstellen
XSLT - Transform
XML (Puppe) 45
Ablauf
PDF Text
XHTML Text XML Parser
XML Text DTD
DOM Format XSLT
Templates
XML Text
HTML-Browser XSL-FO
Objekte FO Prozessor XSLT Prozessor
XML (Puppe) 46
WWW Links zu XML
• Spezifikationen: http://www.w3.org/
• Kommerziell: http://www.xml.org/
• e-Business: http://www.ebxml.org/
• public domain tools:
http://www.garshol.priv.no/download/xmltools/