Inleiding tot XML en aanverwante specificaties

Kris Luyten

Chris Vandervelpen
Prof. dr. Wim Lamotte
Peter Quax

Deze tekst valt onder de bepalingen van de GNU vrije-documentatie licentie (zie Bijlage A). Het is toegestaan dit document te kopiëren, te verdelen en/of te wijzigen onder de voorwaarden van de GNU vrije-documentatielicentie, versie 1.1 of een latere versie gepubliceerd door de Free Software Foundation; Een kopie van de licentie is bijgevoegd in de paragraaf “GNU vrije-documentatielicentie”.


Inhoudsopgave
1. Dankwoord
2. Introductie
3. XML: eXtensible Markup Language
3.1. Inleiding
3.2. Structuur van een XML document
3.2.1. Attributen
3.2.2. Entity References
3.2.3. Processing instructions
3.3. Well-formed XML documents
3.4. Lexicale beperkingen
3.5. Well-formedness controleren
3.6. Een voorbeeld-toepassing: BibTeXML
3.7. Oefeningen
4. DTD: Document Type Definition
4.1. Een XML document valideren
4.2. Een DTD gebruiken
4.3. Regels op elementen
4.4. Combined content
4.5. Regels op attributen
4.6. Oefeningen
5. XML Schema
5.1. Oefeningen
6. XPath
6.1. Inleiding
6.2. XPath Syntax
6.3. Axis
6.4. Node tests
6.5. Predicates
6.6. Voorgedefinieerde functies
6.6.1. Node set functies
6.6.2. String functies
6.6.3. Boolean functies
6.6.4. Number functies
6.6.5. Vergelijkingsoperatoren
6.7. Voorbeelden
6.8. Afkortingen
6.9. Oefeningen
7. XSL: eXtensible Stylesheet Language
7.1. Inleiding
7.2. XSLT Elementen: Elementen uit de XSL Namespace
7.3. Voorbeeld: een simpele XML Transformatie
7.4. Academische Voorbeelden
7.4.1. Algoritme van Euclides
7.4.2. Quicksort in XSLT
7.5. Oefeningen
8. Programmeertalen en XML processing
8.1. Java en XML processing
8.2. De test case: een DTD voor gebruikersinterfaces
8.3. De DOM API
8.3.1. Het Document Object Model
8.3.2. Het package org.w3c.dom
8.3.3. De gebruikersinterface DTD parsen met behulp van DOM
8.4. De SAX API
8.4.1. De Simpele Api voor XML
8.4.2. Het package org.xml.sax
8.4.3. Een voorbeeld met de SAX API
8.5. Oefeningen
9. SVG: Scalable Vector Graphics
9.1. Inleiding
9.2. Structuur van een SVG document
9.3. Het path element
9.4. De basisvormen
9.4.1. Rechthoeken
9.4.2. Cirkels
9.4.3. Ellipsen
9.4.4. Lijnen
9.4.5. Polylijnen
9.4.6. Polygonen
10. SMIL: Synchronized Multimedia Integration Language
10.1. Inleiding
10.2. Verplichte artikels
10.3. SMIL basis
A. GNU Free Documentation License
A.1. PREAMBLE
A.2. APPLICABILITY AND DEFINITIONS
A.3. VERBATIM COPYING
A.4. COPYING IN QUANTITY
A.5. MODIFICATIONS
A.6. COMBINING DOCUMENTS
A.7. COLLECTIONS OF DOCUMENTS
A.8. AGGREGATION WITH INDEPENDENT WORKS
A.9. TRANSLATION
A.10. TERMINATION
A.11. FUTURE REVISIONS OF THIS LICENSE
A.12. ADDENDUM: How to use this License for your documents
Bibliografie
Lijst van figuren
3-1. De auteur tag uitgedrukt in boom vorm
3-2. Een foutieve XML grove
3-3. Een correcte XML grove
6-1. XPath Tester
6-2. XPath Visualiser
6-3. XPath Tester
8-1. DOM boom grafisch voorgesteld
8-2. Het Login panel in Java Swing
9-1. SVG voorbeeld: formule
9-2. SVG voorbeeld: barchart
9-3. SVG voorbeeld: ruit
9-4. SVG voorbeeld: cubische Bézier curve
9-5. SVG voorbeeld: rechthoek met scherpe hoeken met daarrond een rechthoek met afgeronde hoeken
9-6. Een SVG cirkel
9-7. Een SVG ellips
9-8. Lijnen van verschillende dikte
9-9. Een polylijn voorbeeld
9-10. SVG polygoon
Lijst van voorbeelden
3-1. Een verkeerde grove
3-2. Een juiste grove
3-3. BibTeXML specificatie voor dit boek
3-4. Glade User Interface description
4-1. DTD in XML document
4-2. DTD gerefereerd vanuit XML document
4-3. DTD regel voor het element naam
4-4. Naam met subelementen
4-5. Combined Content in het naam element
4-6. De naam DTD geherdefinieerd
4-7. Deel van de svc.dtd
4-8. XML document conform aan de svc.dtd
4-9. #PCDATA en andere elementen in een OR sequentie
4-10. Persoon uit svc.dtd uitgebreid met attributen
4-11. ID en IDREF
4-12. ID en IDREF in het XML document
4-13. NMTOKEN en NMTOKENS
4-14. NOTATION
4-15. Een parameter entity
4-16. Het gebruik van een parameter entity
4-17. De parameter entity opgelost
4-18. De volledige svc.dtd
4-19. Product lijst van een winkel
5-1. Eenvoudig XMLSchema voor een adresboek
6-1. Biblio beschrijving in XML
6-2. Alle auteurs van een LaTeX boek
6-3. Het totale aantal auteurs die een LaTeX boek geschreven hebben
6-4. Het aantal XML boeken met een copyright in het jaar 2000 en in 1996
6-5. Het aantal XML boeken met een copyright in het jaar 2000 en in 1996
6-6. Een XPath expressie met een boolean resultaat
6-7. Attribuut selectie
6-8. Attribuut selectie
6-9. child::
6-10. descendant-or-self::node()
6-11. attribute::
6-12. self::node()
6-13. parent::node()
6-14. [position()=x]
7-1. xsl:template
7-2. xsl:apply-templates
7-3. Built-in Template Rule
7-4. xsl:call-template
7-5. xsl:value-of
7-6. xsl:with-param
7-7. xsl:param
7-8. xsl:if
7-9. xsl:choose
7-10. xsl:for-each
7-11. xsl:attribute
7-12. xsl:stylesheet
7-13. xsl:variable
7-14. xsl:result-document
7-15. Beschrijving van de universitaire studies in een CV, uitgedrukt mbhv XML
7-16. Een mogelijk XSLT document voor de CV (pull processing)
7-17. Een mogelijk XSLT document voor de CV (push processing)
7-18. XML listing van 2e trimester vakken
7-19. XSLT document voor lijst van vakken in HTML te zetten
7-20. Input listing van getal paren
7-21. Het algoritme van Euclides in XSLT
7-22. Input voor de Quicksort stylesheet
7-23. Quicksort in XSLT
7-24. Output van de Quicksort XSLT
8-1. Een DTD voor simpele gebruikersinterfaces
8-2. Mini boek
8-3. Aanmaken en initialiseren van de DOM parser
8-4. Maximale diepte van de DOM boom
8-5. Tel de verschillende types nodes
8-6. De constructor en de parse method
8-7. buildUI en processNode
8-8. processElement
8-9. processGroup en processWidget
8-10. Beschrijving van een login scherm
8-11. Simpele XML formatter
9-1. SVG document structuur
9-2. Een ruit met het path element
9-3. Een cubische Bézier curve
9-4. Een rechthoek
9-5. Een cirkel
9-6. Een ellips
9-7. Lijnen van verschillende dikte
9-8. Polylijnen
9-9. Een polygoon