Zum Forum
Passwort vergessen?
Noch keinen Account?
lexikon
Hauptseite
Zufälliger Artikel
Diskussion
Diskussion : Dokumenttypdefinition
Links
Forum
Portale
Reisen
Versicherung
Inhaltsverzeichnis
Hauptmenü
Home
Editorial
Bildung
E-Learning
Fremdsprachen
Magazin
Wissen
Wörterbücher
Enzyklopädien
Expertendienste
Wissenswertes
Praktische Ratgeber
--------------------------
Biologie
Chemie
Computer
Film/ Theater
Geografie
Geschichte
Jura
Kunst
Literatur
Mathematik
Medizin
Musik
Philosophie
Physik/ Astronomie
Politik
Psychologie
Religionen
Sport
Umwelt
Wirtschaft
Reisen
Lexikon
Versicherung
Suchen
Schnellsuche
Suchmaschinen
Metasuchmaschinen
Webkataloge
News
Treffpunkt
Chat
Forum
Suche
Schnellsuche
Sitemap
Kontakt
Impressum
Dokumenttypdefinition
Stichpunkte
Allgemein
DTD) ist eine Deklaration in SGML- und XML-Dokumenten
Die Dokumenttypdefinition (englisch Document Type Definition
die die Struktur eines solchen Dokuments festlegt
Eine DTD beschreibt beispielsweise HTML oder XHTML; verbreitet sind auch DTDs für spezielle Einsatzgebiete wie XSL
DocBook oder TEI (Text Encoding Initiative)
In einer DTD werden Elemente (engl. elements
zum Beispiel XML-Elemente)
beispielsweise XML-Attribute)
dies ist nur bei bestimmten SGML-Deklarationen (engl
Attribute von Elementen (engl. attributes
zum Beispiel XML-Entitäten) und
Entitäten (engl. entities
SGML declaration) möglich
Besonderheiten der Syntax-Verwendung (beispielsweise Abkürzungen oder lokale Umdefinitionen von Zeichen) definiert
"Verbergen") 1 DTD in XML 1.1 Dokumenttyp-Deklaration 1.2 Markup-Deklarationen 1.2.1 Elementtyp-Deklarationen 1.2.2 Attributlisten-Deklarationen 1.2.2.1 Beispiel 1.2.3 Entity-Deklarationen 1.2.4 Notation-Deklarationen 1.2.5 Parameter-Entities 1.2.6 Bedingte Abschnitte 1.2.7 Sonstiges 1.3 Beispiel 2 Weblinks [Bearbeiten]
Konkret heißt das
dass in einer DTD beispielsweise die Reihenfolge der Elemente oder die Art des Inhalts von Attributen festgelegt wird bzw. werden kann. Inhaltsverzeichnis showTocToggle("Anzeigen"
DTD in XML
Die Syntax und Semantik einer DTD ist Bestandteil des XML-Standards
da die DTD-Syntax selber kein XML ist
Diese Entscheidung wurde später kritisiert
Mit XML Schema existiert ein eigener Standard zur Definition von Dokumenttypen für XML-Dokumente
bieten mehr Möglichkeiten
sind allerdings auch komplexer als DTDs. [Bearbeiten]
XML-Schemata werden in einer XML-Syntax formuliert
Dokumenttyp-Deklaration
in der Dokumenttyp-Deklaration angegeben
Die DTD wird zu Beginn eines XML-Dokumentes
vor dem Wurzelelement
Die Grammatikregeln der DTD können dabei sowohl innerhalb des XML-Dokumentes (interne DTD) als auch in einer externen Datei angeben werden (drei Möglichkeiten und die eckigen Klammern können weggelassen werden
die den Dokumenttyp definieren. [Bearbeiten]
falls ihnen der Public Identifier bekannt ist Innerhalb einer DTD-Datei bzw. der eckigen Klammern können verschiedene Markup-Deklarationen stehen
falls sie leer sind): <!DOCTYPE Wurzelelement SYSTEM "datei.dtd" [ ... ]> <!DOCTYPE Wurzelelement PUBLIC "Public Identifier" "datei.dtd" [ ... ]> <!DOCTYPE Wurzelelement [ ... ]> Als Verweis auf eine Datei kann ein beliebiger URI angegeben werden. Für standardisierte DTDs gibt es bekannte Public Identifier (zum Beispiel "-//W3C//DTD XHTML 1.0 Strict//EN" für XHTML)
so dass Programme nicht jedesmal die Datei neu laden müssen
Markup-Deklarationen
Entities und Notationen definiert werden
Attributlisten
Innerhalb einer DTD kann die Dokumentstruktur mit Deklarationen von Elementtypen
Dabei können spezielle Parameter-Entities benutzt werden
die DTD-Teile enthalten und nur innerhalb der DTD erlaubt sind. [Bearbeiten]
Elementtyp-Deklarationen
Mit einer Elementtyp-Deklaration wird ein Element und sein möglicher Inhalt definiert
die in der DTD definiert sind
In einem validen XML-Dokument dürfen nur Elemente vorkommen
Pluszeichen oder Fragezeichen angegeben
body)> <!ELEMENT hr EMPTY> <!ELEMENT p (#PCDATA | p | ul | ol | dl | table | pre | hr | h1|h2|h3|h4|h5|h6 | blockquote | address | fieldset)*> <!ELEMENT dl (dt|dd)+> [Bearbeiten]
für Reihenfolgen | für Alternativen (im Sinne "entweder...oder") Runde Klammern zum Gruppieren Der Stern für keinmal oder beliebig oft Das Pluszeichen für einmal oder beliebig oft Das Fragezeichen für keinmal oder genau einmal Wird kein Stern
Der Inhalt eines Elementes kann durch die Angabe anderer Elementnamen und durch einige Schlüsselwörter und Zeichen angegeben werden. EMPTY für keinen Inhalt ANY für beliebigen Inhalt
so muss das Element genau einmal vorkommen <!ELEMENT html (head
Attributlisten-Deklarationen
Die Liste der möglichen Attribute eines Elementes wird in einer DTD mit <!ATTLIST Elementname Attributliste> angegeben
Die Attributliste enthält durch Leerzeichen oder Zeilenumbrüche getrennt jeweils den Namen
den Typ und Vorgaben eines Attributes
falls das Attribut bei einem XML-Tag nicht angegeben wird. Vorgabewerte für Attribute #REQUIRED Das Attribut muss angegeben werden #IMPLIED Das Attribut ist optional "..." Standardwert
ob ein Attribut vorkommen muss (#REQUIRED) oder nicht (#IMPLIED) oder einen festen Wert enthält (#FIXED) und welcher Wert als Standardwert benutzt wird
Es gibt folgende Attributtypen CDATA ID IDREF und IDREFS NMTOKEN ENTITY und ENTITIES NOTATION und NOTATIONS Aufzählungen und NOTATION-Aufzählungen Mit den Attribut-Vorgaben kann angegeben werden
falls das Attribut weggelassen wird #FIXED "..." Das Attribut hat immer einen festen Standardwert [Bearbeiten]
Beispiel
<!ATTLIST img id ID #IMPLIED src CDATA #REQUIRED alt CDATA #IMPLIED ismap (ismap) #IMPLIED > [Bearbeiten]
Entity-Deklarationen
Eine Entity ist eine benannte Abkürzung für eine Zeichenkette oder ein externes Dokument
verwendet werden kann
das diese DTD benutzt
die innerhalb der DTD oder des XML-Dokumentes
Eine Entity-Referenz der Form &Name; wird dabei durch den Inhalt der Entity ersetzt
Interne Entities bestehen aus Zeichenketten
der II."> <!ENTITY wplink "<a href='http://de.wikipedia.org'>Wikipedia</a>"> Externe Entities bestehen aus dem Inhalt einer Datei
Diese können selber wieder Entity-Referenzen und wohlgeformtes XML-Markup enthalten: <!ENTITY name "Johannes Paul"> <!ENTITY papst "&name;
auf die verwiesen wird
Dabei kann wieder ein Public Identifier benutzt werden. <!ENTITY kapitel1 SYSTEM "kapitel1.xml"> <!ENTITY wichtig PUBLIC "-//privat//WICHTIG//" "wichtig.xml"> Bei externen Entities kann zusätzlich angegeben werden
die durch eine Entity-Referenz nicht ersetzt werden müssen
dass es sich um eine nicht analysierte Entity handelt
deren Inhalt aus beliebigen Daten besteht
In diesem Fall muss eine Notation angegeben werden (hier "gif"). <!ENTITY bild SYSTEM "../grafiken/bild.gif" NDATA gif> [Bearbeiten]
Notation-Deklarationen
Notationen sind Hinweise zur Interpretation von externen Daten
die nicht direkt vom XML-Parser verarbeitet werden
Notationen können sich beispielsweise auf ein Dateiformat für Bilder beziehen. <!NOTATION Datentyp SYSTEM "URL"> <!NOTATION Datentyp PUBLIC "Identifikator"> [Bearbeiten]
Parameter-Entities
Parameter-Entitäten enthalten eine benannte Zeichenkette
die mittels %Name; an fast allen Stellen innerhalb einer DTD eingesetzt werden kann
Auf diese Weise lassen sich beispielsweise externe Dateien in eine DTD einbinden und mehrfach vorkommende Bestandteile abkürzen
Parameter-Entitäten werden wie normale Entities deklariert wobei vor dem Elementnamen ein einzelnes Prozentzeichen steht
Beispiel: <!ENTITY % datei SYSTEM "andere-datei.ent"> %andere-datei; <!ENTITY % foo.inhalt "(bar|doz)*"> <!ELEMENT foo %foo.inhalt;> [Bearbeiten]
Bedingte Abschnitte
um Deklarationen ein- oder auszuschalten
Ein bedingter Abschnitt ist ein Konstrukt
Beispiel: <![INCLUDE[ <!ENTITY hallo "welt"> ]]> Schaltet die Deklaration von hallo ein
sondern meist im Zusammenspiel mit Parameter-Entities: <![%hallo;[ <!ENTITY hallo "welt"> ]]> Das Parameter-Entity %hallo; ist durch eine der möglichen Schlüsselwörter INCLUDE oder IGNORE belegt
Entsprechend gilt: <![IGNORE[ <!ENTITY hallo "welt"> ]]> um hallo auszuschalten. Man verwendet bedingte Abschnitte wie oben jedoch nicht allein
Je nach Belegung wird das Entity hallo deklariert oder nicht
Durch diese Art der Schreibweise kann ein bedingter Abschnitt durch Überschreibung von Parameter-Entities angepasst werden. [Bearbeiten]
Sonstiges
externe Entitäten und nicht-validierende Parser [Bearbeiten]
Beispiel
Kurzes XML-Dokument mit Verweis auf ein DTD <?xml version="1.0"?> <!DOCTYPE hallo SYSTEM "hallo.dtd"> <hallo>Hallo Welt!</hallo> Der Inhalt des dazupassenden DTDs <?xml version="1.0"?> <!DOCTYPE hallo [ <!ELEMENT hallo (#PCDATA)> ]> [Bearbeiten]
Weblinks
http://www.linkwerk.com/pub/xmlidp/2000/xml-verstaendlich.html - Beschreibung von DTDs aus dem Buch XML in der Praxis (http://www.linkwerk.com/pub/xmlidp/2000/) http://gutfeldt.ch/matthias/articles/doctypeswitch/table.html - Dokumenttypen für HTML http://edition-w3c.de/TR/2000/REC-xml-20001006/#sec-prolog-dtd - XML-Standard auf Deutsch http://puredesign.ch/lounge/artikel/doctype.shtml - Websites mit dem richtigen DOCTYPE versehen en:Document Type Definition eo:Dokumento-Speco-Difino es:DTD fr:Définition de type de document ja:Document Type Definition nl:Document Type Definitie pl:DTD sv:DTD zh:文件类型æ??è¿°
Dieser Artikel basiert auf dem Artikel
Dokumenttypdefinition
aus der freien Enzyklopädie
wikipedia
und steht unter der
GNU Lizenz für freie Dokumentation
. In der wikipedia ist eine
Liste der Autoren
verfügbar.
Ligaturen
Ligaturen
Jupiter (Mythologie)
Resource Description Framework
Jupiter (Gott)
Jupiter (Mythologie)
Washington
Weißes Haus
[ Zurück ]
Inhalt Lexikon:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
1
2
3
4
5
6
7
8
9
Chat
|
Lexikon
|
Reisen
|
Versicherung
|
Forum
|
Kontakt