1
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?
2
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
3
XML (Puppe) 5
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 DatenbankXML (Puppe) 6
type
4
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
5
XML (Puppe) 9
XML (Puppe) 10
6
XML (Puppe) 11
XML (Puppe) 12
7
XML (Puppe) 13
XML (Puppe) 14
8
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")
9
XML (Puppe) 17
Bedeutung bei Attributen
XML (Puppe) 18
Typen von Elementen
10
XML (Puppe) 19
(nachname, vorname)
XML (Puppe) 20
15
11
XML (Puppe) 21
XML (Puppe) 22
12
XML (Puppe) 23
• 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
XML (Puppe) 24
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>
13
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"/>
14
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>
15
XML (Puppe) 29
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) 30
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>
16
XML (Puppe) 31
(1)
XML (Puppe) 32
17
XML (Puppe) 33
(2)
XML (Puppe) 34
18
XML (Puppe) 35
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 notwendigXML (Puppe) 36
19
XML (Puppe) 37
XML (Puppe) 38
20
XML (Puppe) 39
XML (Puppe) 40
21
XML (Puppe) 41
XML (Puppe) 42
22
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
23
XML (Puppe) 45
Ablauf
PDF Text
XHTML Text XML Parser
XML Text DTD
DOM Format TemplatesXSLT
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/
24
XML (Puppe) 47