www.wikidata.de-de.nina.az
Eine Dokumenttypdefinition englisch Document Type Definition abgekurzt DTD ist ein Satz an Regeln der benutzt wird um Dokumente eines bestimmten Typs zu deklarieren Ein Dokumenttyp ist dabei eine Klasse ahnlicher Dokumente wie beispielsweise Telefonbucher oder Inventurdatensatze Die Dokumenttypdefinition besteht dabei aus Elementtypen Attributen von Elementen Entitaten und Notationen Konkret heisst das dass in einer DTD die Reihenfolge die Verschachtelung der Elemente und die Art des Inhalts von Attributen festgelegt wird also die Struktur des Dokuments Eine DTD spezifiziert die Syntax einer Anwendung von SGML oder XML wie beispielsweise die von ihnen abgeleiteten Sprachen HTML oder XHTML Diese Syntax ist normalerweise in einer weniger generellen Form gehalten als die SGML oder XML Syntax Inhaltsverzeichnis 1 Funktion 2 Dokumenttypdeklaration DOCTYPE 3 Markup Deklarationen 3 1 CDATA 3 2 PCDATA 3 3 Element Deklarationen ELEMENT 3 4 Attribut Deklarationen ATTLIST 3 5 Entitaten Deklarationen ENTITY 3 6 Notationsdeklarationen NOTATION 3 7 NMTOKEN 3 8 Parameter Entitat 3 9 Bedingte Abschnitte 4 Siehe auch 5 WeblinksFunktion BearbeitenDie Syntax und Semantik einer DTD ist Bestandteil der SGML und XML Spezifikation Die DTD wird bereits beim Lesen des Dokumentes gepruft In SGML muss jedem Dokument zwingend eine DTD zugeordnet sein In XML ist diese Zuordnung optional Ein Dokument auf Basis von DTD lt xml version 1 0 gt lt DOCTYPE gt gewahrleistet die Richtigkeit der angewendeten DTD also der vorgesehenen Syntax und Semantik Die Korrektheit der Daten steht hier im Vordergrund Ein Dokument ohne extern referenzierte DTD oder eingeschlossene DTD wird beim Lesen nur nach der Wohlgeformtheit gepruft Die schnelle Lesbarkeit steht hier im Vordergrund Der Inhalt kann von der gewunschten Syntax und Semantik abweichen Fur beide Falle kann mit zusatzlichen Prozessen die Qualitat der Daten nachtraglich gepruft werden Hinweis Im Folgenden werden die Beispiele jeweils in XML Syntax angegeben Dokumenttypdeklaration DOCTYPE BearbeitenEine Dokumenttypdeklaration stellt die Verbindung zwischen einem Dokument und der DTD her Die Dokumenttypdeklaration wird am Beginn eines Dokumentes vor dem Wurzelelement angegeben Die DTD kann als externe Datei referenziert werden externe DTD oder aber auch direkt im Dokument eingebunden werden interne DTD Die Syntax fur eine Dokumenttypdeklaration lautet in SGML und XML lt DOCTYPE Wurzelelement SYSTEM datei dtd gt lt DOCTYPE Wurzelelement SYSTEM datei dtd gt lt DOCTYPE Wurzelelement PUBLIC Public Identifier datei dtd gt lt DOCTYPE Wurzelelement PUBLIC Public Identifier datei dtd gt lt DOCTYPE Wurzelelement gt In SGML sind zusatzlich auch folgende Varianten ohne System Identifikator zulassig lt DOCTYPE Wurzelelement PUBLIC Public Identifier gt lt DOCTYPE Wurzelelement PUBLIC Public Identifier gt In HTML5 gibt es zwar keine DTD mehr die Dokumenttypdeklaration existiert aber in einer verkurzten Form weiter lt DOCTYPE html gt Der System Identifikator SYSTEM im Beispiel der Eintrag datei dtd enthalt den Dateinamen der externen DTD Der Dateiname kann als beliebiger URI angegeben werden Der Public Identifikator PUBLIC enthalt einen offentlich bekannten Identifikator fur die DTD Zum Beispiel wird mit dem Identifikator W3C DTD XHTML 1 0 Strict EN die DTD fur XHTML eindeutig deklariert Wenn der Identifikator dem System bekannt ist verwendet das System die damit assoziierte DTD und ladt nicht die direkt angegebene DTD aus dem System Identifikator In Web Browsern wird so das wiederholte Laden der DTD vermieden Der Eintrag kennzeichnet eine interne DTD oder Erganzungen zu einer DTD Markup Deklarationen BearbeitenInnerhalb einer DTD kann die Dokumentstruktur mit Deklarationen von Elementtypen Attributlisten Entities und Notationen und Textblocken definiert werden Dabei konnen spezielle Parameter Entities benutzt werden die DTD Teile enthalten und nur innerhalb der DTD erlaubt sind Textblocke sind entweder CDATA oder PCDATA Die Strukturelemente Building Blocks werden uber Attribut Zuordnungen definiert Element Attribut Entity CDATA PCDATACDATA Bearbeiten Hauptartikel CDATACDATA englisch Character Data kennzeichnet einen ungeparsten Textblock Die Syntax fur einen CDATA Bereich lautet lt CDATA Zeichendaten gt Im Bereich Zeichendaten sind alle Zeichen erlaubt ausgenommen das Erkennungsmuster fur das Ende gt des CDATA Bereiches Beispiel lt CDATA lt Diese gt lt Daten gt werden lt nicht gt lt geparst gt gt Innerhalb einer Entitatendefinition in XML lautet die Syntax lt ENTITY amp Zeichendaten gt In SGML muss das Schlusselwort CDATA explizit angegeben werden lt ENTITY amp CDATA Zeichendaten gt Im Bereich Zeichendaten sind alle Zeichen erlaubt ausgenommen der Endekennung der Zeichenkette bei Zeichenketten oder bei Zeichenketten Beispiel lt ENTITY amp CDATA amp 38 gt Die Zeichendaten amp 38 werden vom Parser nicht analysiert PCDATA Bearbeiten Hauptartikel PCDATA Fur PCDATA englisch Parsed Character Data wird das Schlusselwort PCDATA verwendet Damit wird ein Textblock der auch weitere Anweisungen an den Parser enthalten kann gekennzeichnet Der Inhalt dieses Textblocks wird syntaktisch vom Parser analysiert Im Gegensatz zu CDATA durfen nur Zeichen enthalten sein die keine Tags Deklarationen oder Verarbeitungsanweisungen einleitet Verboten sind hier beispielsweise lt z B Startzeichen eines Tags z B lt Beispiel gt Element Deklarationen ELEMENT Bearbeiten Mit einer Elementtyp Deklaration wird ein Element und sein moglicher Inhalt definiert In einem validen Dokument durfen nur Elemente vorkommen die in der DTD definiert sind Der Inhalt eines Elementes kann durch die Angabe anderer Elementnamen und durch einige Schlusselworter und Zeichen angegeben werden PCDATA fur Zeicheninhalte siehe PCDATA EMPTY fur keinen Inhalt ANY fur beliebigen Inhalt fur Reihenfolgen fur Alternativen im Sinne entweder oder zum Gruppieren fur beliebig oft aufeinander folgen fur mindestens einmal fur keinmal oder genau einmal Wird kein Stern Pluszeichen oder Fragezeichen angegeben so muss das Element genau einmal vorkommen lt ELEMENT html head body gt lt ELEMENT hr EMPTY gt lt ELEMENT div PCDATA p ul ol dl table pre hr h1 h2 h3 h4 h5 h6 blockquote address fieldset gt lt ELEMENT dl dt dd gt Attribut Deklarationen ATTLIST Bearbeiten Attribute werden innerhalb einer Attributliste lt ATTLIST Elementname Attributliste gt definiert Die Attributliste enthalt durch Leerzeichen oder Zeilenumbruche getrennt jeweils den Attributnamen den Typ und Vorgaben der einzelnen Attribute Beispiele fur Elemente ID IDREF und IDREFS NMTOKEN und NMTOKENS NOTATION und NOTATIONS Aufzahlungen und NOTATION AufzahlungenMit den Attribut Vorgaben kann angegeben werden ob ein Attribut vorkommen muss REQUIRED oder nicht IMPLIED oder einen festen Wert enthalt FIXED und welcher Wert als Standardwert benutzt wird falls das Attribut bei einem Tag nicht angegeben wird Vorgabewerte fur Attribute REQUIRED Das Attribut muss angegeben werden IMPLIED Das Attribut ist optional Standardwert falls das Attribut weggelassen wird FIXED Das Attribut hat immer einen festen WertBeispiel einer Attribut Deklaration lt ATTLIST img id ID IMPLIED src CDATA REQUIRED alt CDATA REQUIRED ismap IDREF IMPLIED gt Entitaten Deklarationen ENTITY Bearbeiten Eine Entitat ist eine benannte Abkurzung fur eine Zeichenkette oder ein externes Dokument die innerhalb der DTD oder des Dokumentes verwendet werden kann Eine Entitat der Form amp Name wird dabei durch den deklarierten Inhalt der Entity ersetzt Zur allgemeinen Verwendung siehe Entitat Auszeichnungssprache Entitaten bestehen aus Zeichenketten Diese konnen selber wieder Entitaten und wohlgeformtes Markup enthalten lt ENTITY name Benedikt gt lt ENTITY papst amp name der XVI gt lt ENTITY wplink lt a href http de wikipedia org gt Wikipedia lt a gt gt Entitaten konnen auch fur Inhalt einer Datei definiert werden Dabei wird ein Public oder System Identifier benutzt lt ENTITY kapitel1 SYSTEM kapitel1 xml gt lt ENTITY wichtig PUBLIC privat WICHTIG wichtig xml gt Bei externen Entities kann zusatzlich angegeben werden dass es sich um eine nicht analysierte Entitat NDATA Nicht XML SGML Daten handelt In diesem Fall muss eine Notation angegeben werden hier gif lt ENTITY bild SYSTEM grafiken bild gif NDATA gif gt Notationsdeklarationen NOTATION Bearbeiten Notationen sind Hinweise zur Interpretation von externen Daten die nicht direkt vom Parser verarbeitet werden Notationen konnen sich beispielsweise auf ein Dateiformat fur Bilder beziehen lt NOTATION Datentyp SYSTEM URL gt lt NOTATION Datentyp PUBLIC Identifikator gt NMTOKEN Bearbeiten NMTOKEN name token ist mit einem Bezeichner verwandt geht jedoch freizugiger mit den Regeln zur Namensgebung um So sind bei einem NMTOKEN Bezeichner mit fuhrender Ziffer oder fuhrendem Punkt erlaubt wohingegen bei einem Bezeichner nur Buchstaben Ideogramme und underlines an erster Stelle erlaubt sind Somit ist jeder Bezeichner auch ein NMTOKEN jedoch nicht umgekehrt Beispiele fur NMTOKEN 12alpha crc Deklarations Beispiel lt ATTLIST birthdate year NMTOKEN REQUIRED gt Parameter Entitat Bearbeiten Parameter Entitaten 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 abkurzen Parameter Entitaten werden wie normale Entities deklariert wobei vor dem Elementnamen ein einzelnes Prozentzeichen steht Beispiel lt ENTITY datei SYSTEM andere datei ent gt datei lt ENTITY foo inhalt bar doz gt lt ELEMENT foo foo inhalt gt Bedingte Abschnitte Bearbeiten Ein bedingter Abschnitt ist ein Konstrukt um Deklarationen ein oder auszuschalten Beispiel lt INCLUDE lt ENTITY hallo welt gt gt Schaltet die Deklaration von hallo ein Entsprechend gilt lt IGNORE lt ENTITY hallo welt gt gt um hallo auszuschalten Man verwendet bedingte Abschnitte wie oben jedoch nicht allein sondern meist im Zusammenspiel mit Parameter Entities lt ENTITY weiche INCLUDE gt lt weiche lt ENTITY hallo welt gt gt Das Parameter Entity weiche ist durch eine der moglichen Schlusselworter INCLUDE oder IGNORE belegt Je nach Belegung wird das Entity hallo deklariert oder nicht Durch diese Art der Schreibweise kann ein bedingter Abschnitt durch Uberschreibung von Parameter Entities angepasst werden Beispiel eines kurzen Dokumentes mit Verweis auf eine externe DTD lt xml version 1 0 gt lt DOCTYPE hallo SYSTEM hallo dtd gt lt hallo gt Hallo Welt lt hallo gt In der XML Deklaration kann im Beispiel auch das Pseudoattribut standalone no angegeben werden d h es wird eine externe DTD benotigt lt xml version 1 0 standalone no gt lt DOCTYPE hallo SYSTEM hallo dtd gt lt hallo gt Hallo Welt lt hallo gt Der Inhalt von hallo dtd lt ELEMENT hallo PCDATA gt Kurzes Dokument mit interner DTD lt xml version 1 0 gt lt DOCTYPE hallo lt ELEMENT hallo PCDATA gt gt lt hallo gt Hallo Welt lt hallo gt In der XML Deklaration kann im Beispiel auch das Pseudoattribut standalone yes angegeben werden d h es wird keine externe DTD benotigt lt xml version 1 0 standalone yes gt lt DOCTYPE hallo lt ELEMENT hallo PCDATA gt gt lt hallo gt Hallo Welt lt hallo gt Siehe auch BearbeitenDocument Schema Definition Languages Spezifikation zur Definition von Dokumentstrukturen Datentypen und Datenbeziehungen in XML Weblinks BearbeitenAusfuhrliche Einfuhrung in DTDs deutsch Dokumenttyp Deklaration im SELFHTML Wiki deutsch Web Dokumenttypen W3C englisch Abgerufen von https de wikipedia org w index php title Dokumenttypdefinition amp oldid 232736661