mailto: payer@hdm-stuttgart.de
Zitierweise / cite as:
Payer, Margarete <1942 - > ; Payer, Alois <1944 - >: Inhaltliche Strukturierung von Ressourcen : eine Einführung in XML. -- 3. Document Type Definition (DTD) und Schema. -- Fassung vom 2002-11-19. -- URL: http://www.payer.de/xml/xml03.htm. -- [Stichwort].
Erstmals publiziert:
Überarbeitungen:
Anlass: Lehrveranstaltungen an der HdM Stuttgart, 2002/03
Unterrichtsmaterialien (gemäß § 46 (1) UrhG)
©opyright: Dieser Text steht der Allgemeinheit zur Verfügung. Eine Verwertung in Publikationen, die über übliche Zitate hinausgeht, bedarf der ausdrücklichen Genehmigung der Herausgeberin.
Dieser Teil ist ein Kapitel von:
Payer, Margarete <1942 - > ; Payer, Alois <1944 - >: Inhaltliche Strukturierung von Ressourcen : eine Einführung in XML. -- 0. Übersicht. -- URL: http://www.payer.de/xml/xml00.htm
Dieser Text ist Teil der Abteilung Informationswesen, Bibliothekswesen, Dokumentationswesen von Tüpfli's Global Village Library.
Zum Zeitpunkt der Abfassung dieses Kapitels gilt
XML 1.0 (Second Edition). -- W3C Recommendation 6 October 2000. -- Die jeweils neueste Version findet man unter URL: http://www.w3.org/TR/REC-xml. -- Zugriff am 2002-04-30.
Deutsche Übersetzung:
Extensible Markup Language (XML) 1.0 (Zweite Auflage). -- Deutsche Übersetzung 20. Januar 2002. -- Übersetzer: Stefan Mintert. -- URL: http://www.edition-w3c.de/TR/2000/REC-xml-20001006/. -- Zugriff am 2002-11-19
XML dient der Schaffung von Auszeichnungssprachen (markup languages) für bestimmte Typen von Ressourcen/Dokumenten (document types, schemas). Die Definition solcher markup languages bezeichnet man als Dokumentenmodellierung (document modeling).
Mittels von XML kann man das Markup definieren (markup declaration, schema definition):
XML ist eine Computer-Sprache: ein Computerprogramm -- ein validating XML parser -- liest die Definitionen, lernt die daraus folgenden Regeln und wendet sie auf das Dokument an.
Die markup declaration / schema definition kann erfolgen durch
Die document type definition (DTD) definiert die Elemente und anderen Konstrukte, die für ein spezifisches Dokument oder eine Gruppe von Dokumenten benötigt werden.
Die DTD enthält:
Die DTD und jeder ihrer Teile hat die allgemeine Syntax:
<! {Inhalt} > |
Eine DTD kann sein:
Eine DTD hat folgende Struktur:
Syntax | Beispiel |
---|---|
<!DOCTYPE {Name der DTD} [ <!ELEMENT {Elementname des obersten Elements}{Elementinhalt}> <!ELEMENT {Elementname}{Elementinhalt}> ... ]> |
<!DOCTYPE Dissertation [ <!ELEMENT Dissertation (Titelblatt, Kapitel+, Zusammenfassung, Literaturverz, Lebenslauf)> <!ELEMENT Titelblatt (Titel, Autor, Lebensdaten, WissInst, Jahr, ...)> <!ELEMENT (Titel | Autor | Lebensdaten | WissInst | Jahr | ...) (#PCDATA)> <!ELEMENT Kapitel (....)> ... ]> |
Jede DTD hat genau ein oberstes Element, dessen Elementinhalt bestimmt, was alles Inhalt des Dokuments sein kann: z.B. andere Elemente. Für die Elemente kann man Meta-data in der Form von Attributen festlegen.
Eine formelle Definition des Markup (markup declaration) innerhalb einer DTD hat folgende allgemeine Syntax:
Syntax | Beispiel |
---|---|
<!{keyword} {parameter} {associated_parameters}> |
<!ELEMENT Kapitel (KapTitel, (Para | Zwischentit)+) >E |
Es folgt die Erklärung von keyword, parameter und associated parameters.
Die wichtigsten keywords sind:
keyword | Funktion | Beispiel |
---|---|---|
DOCTYPE | ordnet einer Gruppe von Declarations einen Namen zu, z.B. Namen des ganzen Dokuments | <!DOCTYPE DISSERTATION [ <!ELEMENT Titelblatt (Titel, Autor, Lebensdaten, WissInst, Jahr, ...)> <!ELEMENT (Titel | Autor| Lebensdaten | WissInst | Jahr| ...) (#PCDATA)> <!ELEMENT Kapitel (....)> ... ]> |
ELEMENT | definiert ein Element innerhalb der logischen Struktur eines Dokumentes. associated_parameters gibt hier die möglichen Inhalte dieses Elementes an (content model) | <!ELEMENT Kapitel (KapTitel, (Para | Zwischentit)+) > <!ELEMENT (KapTitel | Para | Zwischentit) (#PCDATA)> |
ATTLIST | Zuordnung von Attributen zu einem Element | <!ATTLIST para secrecy (topsec | public) "public"> |
ENTITY | ermöglicht, eine Kurzform für etwas Längeres einzugeben, oder auf ein externes File zu verweisen | <!ENTITY Tü "Tübingen, Univ., Diss.,"> |
NOTATION | verbindet den ersten Parameter, der Non-XML-data bezeichnet mit dem zweiten Parameter, der dem System angibt, wie so Bezeichnetes zu behandeln ist: z.B: MIDI für MIDI-Files, CGM für Graphik u.ä. | <!NOTATION MathText SYSTEM "/usr/bin/tex" > ( = mathematischer Text ist zu bearbeiten mit einem Sub-Programm, das als usr/bin/tex gespeichert ist) |
Parameter ist immer der Name, der für das betreffende Markup verwendet werden soll | <!DOCTYPE DISSERTATION ... > <!ELEMENT Kapitel ...> <!ATTLIST para secrecy ...> |
Innerhalb von parameters, die mit einem parameter verbunden sind (associated parameters) (und teilweise innerhalb der parameter) können folgende Indikatoren und Verknüpfungszeichen vorkommen
Indikator / Verknüpfungszeichen | Bedeutung | Erklärung | Beispiel |
---|---|---|---|
kein Indikator |
das betreffende Element usw. muss genau einmal vorkommen | <!ELEMENT BibliogrBeschreibung (Titelangabe, Verfasserangabe, Ausgabebezeichnung?, Erscheinungsvermerk, Kollationsvermerk, Gesamttitel?, URN?)> | |
( ) |
Gruppe | zwischen der Parenthese steht eine Abfolge, eine Gruppe oder eine Reihe von Alternativen | <!ELEMENT Titelblatt (Titel, Autor, Lebensdaten, WissInst, Jahr,
...)> <!ELEMENT (Titel | Autor | Lebensdaten | WissInst | Jahr | ...) (#PCDATA)> <!ATTLIST para secrecy (topsec | public) "public"> |
? |
optional | das betreffende Element usw. kann
vorkommen |
<!ELEMENT BibliogrBeschreibung (Titelangabe, Verfasserangabe, Ausgabebezeichnung?, Erscheinungsvermerk, Kollationsvermerk, Gesamttitel?, URN?)> |
* |
optional und wiederholbar | das betreffende Element usw. kann
vorkommen |
<!ELEMENT authgrp (author|corpauth|aff)* > |
+ |
notwendig und wiederholbar | das betreffende Element usw. muss
vorkommen |
<!ELEMENT Kapitel (KapTitel, (Para | Zwischentit)+) > |
, |
aufeinanderfolgend |
|
|
| |
oder (OR) | mindestens eines der so verknüpften Elemente usw. muss vorkommen |
für Anmerkungen und Erklärungen des Produzenten des XML-Dokumentes, die vom System nicht beachtet werden sollen, haben folgende Syntax:
Syntax | Beispiel |
---|---|
<!-- {Text der Anmerkung} --> | <!-- Dies ist eine DTD für deutschsprachige Dissertationen --> |
Da die Syntax der DTD von SGML übernommen wurde, entspricht sie in mehrfacher Hinsicht nicht mehr allen heutigen Anforderungen. Die wichtigsten Mängel der DTDs und der DTD-Syntax sind:
Aus diesen Gründen wurden Alternativen zur DTD vorgeschlagen. Der zur Zeit wichtigste solche Vorschlag ist XML-Schema (siehe Kapitel ). Allerdings geht mit den Möglichkeiten, die XML-Schema bietet, auch die intuitive Einfachheit der DTD verloren. Deswegen ist es ratsam, in allen Fällen, wo man nicht die zusätzlichen Möglichkeiten von XML-Schema -- besonders bezüglich der Datentypen und Namespaces -- benötigt, bei DTD zu bleiben. Das Problem der Namespaces wird für DTDs hoffentlich durch XML Version 2.0 befriedigend gelöst.
Zu Kapitel 4: XML ELEMENT