Erster Versuch mit XML
Heinz Kredel
Heinz Kredel
Information Technology Center, University of Mannheim
Vorwort
Hier kommt der erste Text, der einen Überblick gibt.
Hauptteil des ersten Textes
Einleitung.
Abschnitt 1
Text von Abschnitt 1.
Text von Abschnitt 1 erster Paragraph.
Text von Abschnitt 1 erster Paragraph.
Text von Abschnitt 1 erster Paragraph.
Text von Abschnitt 1 erster Paragraph.
Text von Abschnitt 1 erster Paragraph.
Text von Abschnitt 1 erster Paragraph.
Abschnitt 2
Text von Abschnitt 2 erster Paragraph.
Text von Abschnitt 2 erster Paragraph.
Text von Abschnitt 2 erster Paragraph.
Text von Abschnitt 2 erster Paragraph.
Text von Abschnitt 2 erster Paragraph.
Text von Abschnitt 2 erster Paragraph.
Text von Abschnitt 2.
Text von Abschnitt 2.
Text von Abschnitt 2.
-
Listen Item
-
Listen Item
Hinweis für den Leser.
Warnung vor Fehlern.
Fortsetzung und Vertiefung
Warum müssen wir das fortsetzen?
Abschnitt 1
Text von Abschnitt 1.
Abschnitt 2
Text von Abschnitt 2 erster Paragraph.
Text von Abschnitt 2 erster Paragraph.
Text von Abschnitt 2 erster Paragraph.
Text von Abschnitt 2 erster Paragraph.
Text von Abschnitt 2 erster Paragraph.
Text von Abschnitt 2 erster Paragraph.
Text von Abschnitt 2 zweiter Paragraph.
Text von Abschnitt 2 zweiter Paragraph.
Text von Abschnitt 2 zweiter Paragraph.
Text von Abschnitt 2 zweiter Paragraph.
Text von Abschnitt 2 zweiter Paragraph.
Text von Abschnitt 2 zweiter Paragraph.
Beispiel Anwendung
Beispiel der Anwendung der DTD.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE book SYSTEM "report.dtd">
<book>
<title>My book</title>
<overview>
<title>Avant-propos</title>
<paragraph>
Avant de lire ce document...
</paragraph>
</overview>
<chapters>
<chapter>
<title>Il était une fois</title>
<paragraph>
Il était une fois un petit koala rouge...
</paragraph>
</chapter>
</chapters>
</book>
Die verwendete DTD.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- hook pour permettre a l'utilisateur de rajouter des attributs -->
<!ENTITY % generalAttr "">
<!-- l'ensemble des attributs communs à chaque élément -->
<!ENTITY % book.generalAttr
"id ID #IMPLIED
%generalAttr;">
<!-- URI locator -->
<!ENTITY % locator.att
"xlink:href CDATA #REQUIRED">
<!-- définition des attributs d'une élément lien -->
<!ENTITY % book.link
'%book.generalAttr;
xlink:type CDATA #FIXED "simple"
%locator.att;'>
<!-- un lien quelconque -->
<!ELEMENT link (#PCDATA)>
<!ATTLIST link
%book.link;>
<!-- l'auteur(s) du document -->
<!ELEMENT authors (author)+>
<!ATTLIST authors
%book.generalAttr;>
<!ELEMENT author (#PCDATA)>
<!ATTLIST author
%book.link;>
<!-- le coordonnateur(s) du stage -->
<!ELEMENT managers (manager)+>
<!ATTLIST managers
%book.generalAttr;>
<!ELEMENT manager (#PCDATA)>
<!ATTLIST manager
%book.link;>
<!-- la société dans lequel le stage a été effectué -->
<!ELEMENT organisation (#PCDATA)>
<!ATTLIST organisation
%book.link;>
<!-- titre du rappport, du chapitre ou de la section -->
<!ELEMENT title (#PCDATA)>
<!ATTLIST title
%book.generalAttr;>
<!-- contenu général d'une section ou d'un item de liste -->
<!ENTITY % book.content
"(paragraph|list|code|img|newpage)">
<!-- saut de page -->
<!ELEMENT newpage EMPTY>
<!ATTLIST newpage
%book.generalAttr;>
<!-- définition de la liste -->
<!ELEMENT item (%book.content;)*>
<!ATTLIST item
%book.generalAttr;>
<!ELEMENT list (item)+>
<!ATTLIST list
%book.generalAttr;
type (ordered|unordered) "unordered">
<!-- définiton d'un paragraphe -->
<!ELEMENT em (#PCDATA | link)*>
<!ATTLIST em
%book.generalAttr;>
<!ELEMENT paragraph (#PCDATA | em | link)*>
<!ATTLIST paragraph
%book.generalAttr;>
<!-- note simple -->
<!ELEMENT note (#PCDATA | link)*>
<!ATTLIST note
%book.generalAttr;>
<!-- les exemples -->
<!ELEMENT code (#PCDATA)*>
<!ATTLIST code
%book.generalAttr;>
<!-- les images -->
<!ELEMENT img EMPTY>
<!ATTLIST img
%book.generalAttr;
xlink:type CDATA #FIXED "simple"
%locator.att;
title CDATA #REQUIRED
scale NMTOKEN "1"
>
<!-- les sections (récursives) -->
<!ELEMENT section (title, (%book.content; | section)+)>
<!ATTLIST section
%book.generalAttr;>
<!-- les appendices -->
<!ELEMENT appendices (appendix)+>
<!ATTLIST appendices
%book.generalAttr;>
<!ELEMENT appendix (title, (%book.content; | section)+)>
<!ATTLIST appendix
%book.generalAttr;>
<!-- les chapitres -->
<!ELEMENT chapters (chapter)+>
<!ELEMENT chapter (title, (paragraph|note)*,
(section+, (paragraph|note)*)?)>
<!ATTLIST chapter
%book.generalAttr;>
<!ELEMENT overview (title, %book.content;)+>
<!ATTLIST overview
%book.generalAttr;>
<!-- la bilbiographie -->
<!ELEMENT bibliography (entry)+>
<!ATTLIST bibliography
%book.generalAttr;>
<!ELEMENT entry (authors?, title, year, publisher?, uri?)>
<!ATTLIST entry
%book.generalAttr;>
<!ELEMENT year (#PCDATA)*>
<!ATTLIST year
%book.generalAttr;>
<!ELEMENT publisher (#PCDATA)*>
<!ATTLIST publisher
%book.generalAttr;>
<!ELEMENT uri EMPTY>
<!ATTLIST uri
%book.link;>
<!-- structure général du rapport -->
<!ELEMENT book (title, authors?, managers?, organisation?,
overview?, chapters, (appendices)?, bibliography?)>
<!ATTLIST book
xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink/namespace/">
Erich Gamma, Richard Helm, Ralph
Johnson and John Vlissides
Design Patterns, Elements of Reusable Object-Oriented
Software
1995
Addison Wesley
Tim Bray, Jean Paoli and C. M. Sperberg-McQueen
Extensible Markup Language (XML) 1.0
1998
World Wide Web Consortium
Charles F. Goldfarb
The SGML HandBook
1990
Clarendon Press - Oxford
Pekka Kilpelainen
SGML and XML Contents Models
1998
Universityy of Helsinki
David Megginson
Structuring XML documents
1998
Prentice Hall
Alfred Aho,
Ravi Sethi,
Jeffrey Ullman
Compilateurs : principes, techniques et outils
1989
Intereditions