Daniel Koch
XML für Webentwickler
Ein praktischer Einstieg
Inhalt
6
1 XML – ein Blick zurück und voraus
12
1.1 Die Idee hinter XML
12
1.2 Das Prinzip der Metasprachen
15
1.2.1 Multimedia ist Trumpf mit SMIL
17
1.2.2 Mit WML alles fürs Handy
18
1.2.3 Vektorgrafiken mit SVG
18
1.2.4 Silverlight
19
1.3 Die Einsatzgebiete von XML
20
1.3.1 AJAX
20
1.3.2 Web-Services
22
1.3.3 Druckindustrie
23
1.3.4 Konfigurationsdateien
24
1.4 XML und das semantische Web
25
1.4.1 Was Semantik bringt
25
1.5 XML-Editoren im Einsatz
30
1.5.1 XMLSpy
31
1.5.2 XMLBlueprint
31
2 Die XML-Grundlagen
34
2.1 Hallo, Welt zum Einstieg
34
2.2 Die XML-Deklaration
38
2.2.1 Den verwendeten Zeichensatz angeben
38
2.2.2 Angaben zur Dokumenttypdefinition
40
2.3 Elemente definieren
41
2.3.1 Leere Elemente kennzeichnen
43
2.3.2 Fehlerquelle verschachtelte Elemente
43
2.3.3 Elemente mit Attributen detaillierter beschreiben
45
2.3.4 Was ist besser: Elemente oder Attribute?
48
2.3.5 Reservierte Attribute
49
2.4 XML-eigene Zeichen maskieren: Entitäten
50
2.5 Zeit sparen mit CDATA-Abschnitten
53
2.6 Kommentare für übersichtlichen Code
55
2.7 Verarbeitungsanweisungen (Processing Instructions)
56
2.8 Namensräume definieren
57
2.8.1 Den Standardnamensraum angeben
59
2.8.2 Das Namensraumpräfix
60
2.9 Das Prinzip der Wohlgeformtheit
61
3 Dokumenttypen beschreiben
66
3.1 Dokumenttypdefinitionen
66
3.2 Die Dokumenttypdeklaration
68
3.2.1 Externe DTDs verwenden
69
3.2.2 Bedingte Abschnitte
71
3.3 Elemente beschreiben: Elementtypdeklarationen
72
3.3.1 Ein Beispiel für eine DTD
72
3.3.2 Elemente, die weitere Elemente enthalten
73
3.3.3 Elemente mit Zeichendaten
73
3.3.4 Containerelemente verwenden
74
3.3.5 Leere Elemente
75
3.3.6 Inhaltsalternativen angeben
75
3.3.7 Elemente mit beliebigem Inhalt
77
3.3.8 Elemente mit gemischtem Inhalt
77
3.3.9 Das Inhaltsmodell und die Reihenfolge
78
3.3.10 Kommentare erhöhen die Übersichtlichkeit
79
3.4 Attribute beschreiben: Attributlistendeklarationen
80
3.4.1 Attributtypen und Vorgaberegelungen
81
3.5 Auf andere Elemente verweisen
87
3.6 Entitäten – Kürzel verwenden
87
3.6.1 Interne Entitäten
88
3.6.2 Externe Entitäten
90
3.6.3 Notationen und ungeparste Entitäten
92
3.6.4 Parameterentitäten einsetzen
93
3.7 DTD-Tipps für die Praxis
95
3.7.1 Elemente oder Attribute
95
3.7.2 Parameterentitäten
95
3.7.3 Mögliche Gründe für eine DTD
96
3.7.4 Hier lohnen sich DTDs nicht
96
4 Dokumenttypdefinition reloaded:XML Schema
98
4.1 Die Idee hinter XML Schema
98
4.1.1 Die Nachteile von DTDs
101
4.1.2 Anforderungen an XML Schema
102
4.2 Die Grundstruktur
103
4.2.1 XML Schema validieren
105
4.2.2 Schema und Dokument verknüpfen
106
4.3 Mit Kommentaren arbeiten
107
4.4 Elementnamen und Elementtypen
107
4.4.1 Elementtypen
108
4.4.2 Attributdefinitionen
112
4.5 Datentypen
113
4.5.1 Alle Datentypen in der Übersicht
114
4.5.2 Von Werteräumen, lexikalischen Räumen und Facetten
118
4.5.3 Ableitungen durch Einschränkungen
119
4.5.4 Facetten verwenden
120
4.5.5 Mit regulären Ausdrücken arbeiten
123
4.6 Die Dokumentstruktur definieren
127
4.6.1 Elemente deklarieren
127
4.6.2 Attribute deklarieren
128
4.6.3 Elementvarianten
129
4.6.4 Namensräume verwenden
130
4.6.5 Mit lokalen Elementen und Attributen arbeiten
133
4.6.6 Globale Elemente und Attribute
136
4.7 Häufigkeitsbestimmungen
137
4.8 Kompositoren einsetzen
140
4.8.1 xsd:all
140
4.8.2 xsd:choice
141
4.8.3 xsd:sequence
141
4.8.4 Modellgruppen verschachteln
141
4.9 Mit benannten Modellgruppen arbeiten
142
4.9.1 Attributgruppen definieren
143
4.10 Schlüsselelemente und deren Bezüge
144
4.10.1 Die Eindeutigkeit von Elementen
145
4.10.2 Auf Schlüsselelemente Bezug nehmen
146
4.11 Komplexe Datentypen ableiten
147
4.11.1 Komplexe Elemente erweitern
147
4.11.2 Komplexe Elemente einschränken
148
4.11.3 Datentypen steuern und ableiten
149
4.11.4 Abstraktionen
150
4.11.5 Gemischte Inhalte
151
4.11.6 Leeres Inhaltsmodell
152
4.12 Die Möglichkeiten der Wiederverwendbarkeit
153
4.12.1 Benannte Typen
153
4.12.2 Referenzen verwenden
154
4.13 Schemeta inkludieren und importieren
154
4.13.1 Schemata inkludieren
154
4.13.2 xsd:redefine einsetzen
155
4.13.3 Das xsd:import-Element verwenden
156
4.14 Das Schema dem XML-Dokument zuordnen
156
5 XPath, XPointer und XLink
158
5.1 XPath – alles zum Adressieren
158
5.1.1 Die Idee hinter XPath
159
5.1.2 Mit Knoten arbeiten
164
5.1.3 Achsen – die Richtung der Elementauswahl
167
5.1.4 Adressierung von Knoten
168
5.1.5 Der Unterschied zwischen absoluten und relativen Pfaden
169
5.1.6 Verkürzte Syntaxformen verwenden
174
5.1.7 Variablen einsetzen
177
5.1.8 Auch Funktionen gibt es
177
5.2 Neuerungen in XPath 2.0
182
5.2.1 Die Rückwärtskompatibilität zu XPath 1.0
183
5.2.2 Das erweiterte Datenmodell
183
5.2.3 Kommentare
186
5.2.4 Knotentests
187
5.2.5 Schleifenausdrücke
188
5.2.6 Bedingungen definieren
189
5.2.7 Die erweiterte Funktionsbibliothek
189
5.3 XPointer – mit Zeigern arbeiten
196
5.3.1 URIs und Fragmentbezeichner
196
5.3.2 Die XPointer-Syntax
197
5.3.3 Der XPointer-Sprachschatz
198
5.3.4 XPointer innerhalb von URIs
200
5.3.5 XPointer innerhalb von Hyperlinks
202
5.3.6 XPath-Erweiterungen in XPointer
204
5.3.7 Mit Funktionen arbeiten
205
5.4 XLink – Links in XML definieren
210
5.4.1 Link-Typen und andere Attribute
212
5.4.2 Einfache Links anlegen
214
5.4.3 Erweiterte Links definieren
215
5.4.4 DTDs für XLinks definieren
219
5.5 XML Base – eine Linkbasis schaffen
220
6 Ausgabe mit CSS
224
6.1 Schnelleinstieg in CSS
224
6.1.1 CSS-Maßeinheiten
225
6.1.2 Mit Selektoren arbeiten
227
6.1.3 Das Prinzip der Kaskade
231
6.1.4 Die Spezifität ermitteln
233
6.1.5 Ein Beispiel für das Vererbungsprinzip
234
6.2 XML mit CSS formatieren
236
6.2.1 XML-Elemente formatieren
238
6.3 Die Schwächen von CSS (in Bezug auf XML)
240
7 Transformation mit XSLT
242
7.1 Sprachverwirrung: XSLT, XSL und XSL-FO
242
7.2 Das Grundprinzip der Transformation
244
7.2.1 XSLT-Prozessoren im Einsatz
246
7.3 Der Einstieg in XSLT: Hallo, Welt!
253
7.3.1 Das Element xsl:stylesheet
255
7.3.2 Top-Level-Elemente
256
7.4 Templates definieren
258
7.4.1 Template-Regeln
258
7.4.2 Suchmuster/Pattern einsetzen
259
7.5 Der Ablauf der Transformation
260
7.5.1 Alles beginnt beim Wurzelknoten
260
7.5.2 Anwendung von Templates
260
7.5.3 Verhalten bei Template-Konflikten
261
7.5.4 Stylesheets mit nur einer Template-Regel
262
7.5.5 Überschreiben von Template-Regeln
262
7.5.6 Mit Modi Elemente mehrmals verarbeiten
263
7.5.7 Eingebaute Template-Regeln
264
7.6 Templates aufrufen
265
7.7 Templates einbinden
268
7.8 Stylesheets einfügen, importieren undwiederverwenden
270
7.8.1 Stylesheets einfügen
271
7.8.2 Stylesheets importieren
271
7.8.3 Stylesheets inkludieren
273
7.9 Mit XSLT arbeiten
276
7.9.1 Variablen und Parameter einsetzen
276
7.9.2 Variablen verwenden
280
7.9.3 Bedingte Anweisungen
287
7.9.4 Erweiterte Bedingungen definieren
289
7.9.5 Nummerierungen
292
7.9.6 Sortieren und Gruppieren
294
7.9.7 Elemente und Attribute hinzufügen
304
7.9.8 Mit Funktionen arbeiten
313
7.9.9 HTML- und XML-Ausgaben
318
7.10 Text formatiert ausgeben
322
7.10.1 Hyperlinks und Grafiken
324
7.11 Weitere Neuerungen in XSLT 2.0
326
7.11.1 Neue Elemente
327
7.11.2 Rückwärtskompatibiliät
332
8 Formatierungen mit XSL-FO
334
8.1 Die Idee hinter XSL-FO
334
8.1.1 Eigenschaften der Sprache
335
8.1.2 Einsatzgebiete von XSL-FO
336
8.1.3 Die Spezifikation des Vokabulars
336
8.1.4 Der Verarbeitungsprozess
338
8.1.5 Diese XSL-FO-Werkzeuge gibt es
339
8.1.6 Prozessoren im Einsatz
342
8.1.7 Prozessoren und die Standards
346
8.2 Stylesheet-Design
348
8.2.1 Seitenlayout und Bildschirmdesign
348
8.2.2 Das Wurzelelement
349
8.2.3 Stylesheets aufbauen
349
8.2.4 Attributsätze
351
8.2.5 Parameter und Variablen
352
8.3 Seitenlayouts festlegen
353
8.3.1 Maßeinheiten in XSL-FO
353
8.3.2 Das Seitenlayout definieren
353
8.3.3 Seitenfolgen-Vorlagen definieren
356
8.3.4 Die Seitenfolge festlegen
358
8.3.5 Druckbereiche festlegen
363
8.3.6 Mit Blöcken arbeiten
364
8.3.7 Mit Inline-Elementen arbeiten
366
8.3.8 Schreibrichtung bestimmen
368
8.3.9 Die Ausrichtung festlegen
369
8.3.10 Das Farbmanagement in XSL-FO
370
8.4 Typografische Gestaltung
372
8.4.1 Defaults, Vererbung, Verschachtelung
372
8.4.2 Seitenzahlen einfügen
372
8.5 Rahmen und Ränder
374
8.5.1 Außenabstände bestimmen
374
8.5.2 Innenabstände
379
8.5.3 Vertikale Abstände
381
8.5.4 Rahmen definieren
383
8.6 Schriftgestaltung
385
8.6.1 Ausrichtung
385
8.6.2 Mit Einrückungen arbeiten
386
8.6.3 Schriftart festlegen
387
8.6.4 Schriftgröße bestimmen
388
8.6.5 Zeilenhöhe
389
8.6.6 Unterstreichungen & Co.
390
8.6.7 Horizontale Linien innerhalb von Blöcken
391
8.6.8 Silbentrennung
395
8.6.9 Groß- und Kleinschreibung
395
8.7 Hyperlinks und Querverweise setzen
396
8.8 Listen und Aufzählungen
398
8.8.1 Abstände innerhalb von Listen
400
8.9 Fußnoten
402
8.10 Grafiken einbinden
405
8.10.1 Hintergrundbilder definieren
406
8.10.2 SVG einbinden
408
8.11 Mit Tabellen arbeiten
410
8.11.1 Zellen und Zeilen überspannen
412
8.12 Das Float-Konzept
414
Register
416
© 2009-2024 ciando GmbH