XML - DTD

From XennisWiki
Jump to: navigation, search

Eine Dokumenttypdefinition (englisch Document Type Definition, DTD, auch Schema-Definition oder DOCTYPE) ist ein Satz an Regeln, der benutzt wird, um Dokumente eines bestimmten Typs zu deklarieren. (Wikipedia)

Beispiel

shop.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE shop SYSTEM "shop.dtd">
<shop>

	<cd>
		<maxi>
			<titel>Scream and Shout</titel>
			<autor>
				<name>will.i.am</name>
				<name>Britney Spears</name>
			</autor>
			<preis>0.99</preis>
		</maxi>
	</cd>

	<cd>
		<maxi>
			<titel>Kickapoo</titel>
			<autor>
				<name>Tenacious D</name>
			</autor>
			<preis>0.55</preis>
			<kritik>
				<name>Nobody</name>
				<text>Dummer Song!</text>
				<kritik>
					<name>John</name>
					<text>Gleier Song.</text>
					<kritik>
						<name>Mars</name>
						<text>Stimmt!</text>
					</kritik>
				</kritik>
			</kritik>
			<kritik>
				<name>Jonny</name>
				<text>Juhuuuuuuuuuuuu!</text>
			</kritik>
		</maxi>
	</cd>

	<cd>
		<album>
			<titel>Reise, Reise</titel>
			<autor>
				<name>Rammstein</name>
			</autor>
			<preis>11.00</preis>
			<trackliste>
				<song>Reise, Reise</song>
				<song>Mein Teil</song>
				<song>Dalai Lama</song>
				<song>Keine Lust</song>
				<song>Los</song>
				<song>Amerika</song>
				<song>Moskau</song>
				<song>Morgenstern</song>
				<song>Stein um Stein</song>
				<song>Ohne dich</song>
				<song>Amour</song>
			</trackliste>
			<kritik>
				<name>Jason</name>
				<text>Beste!</text>
				<kritik>
					<name>John</name>
					<text>Das vorherige Album war besser.</text>
				</kritik>
			</kritik>
		</album>
	</cd>
		
	<cd>
		<album>
			<titel>Living Things</titel>
			<autor>
				<name>Linkin Park</name>
			</autor>
			<preis>15.49</preis>
			<trackliste>
				<song>Lost in the Echo</song>
				<song>In My Remains</song>
				<song>Burn It Down</song>
				<song>Lies Greed Misery</song>
				<song>I'll Be Gone</song>
				<song>Castle of Glass</song>
				<song>Victimized</song>
				<song>Roads Untraveled</song>
				<song>Skin to Bone</song>
				<song>Until It Breaks</song>
				<song>Tinfoil</song>
				<song>Powerless</song>
			</trackliste>
			<kritik>
				<name>KC</name>
				<text>Cooles Album.</text>
			</kritik>
		</album>
	</cd>
		
	<buch isbn="3570585018">
		<titel>Der Hundertjährige, der aus dem Fenster stieg und verschwand</titel>
		<autor>
			<name>Jonas Jonasson</name>
		</autor>
		<preis>14.99</preis>
	</buch>
		
	<buch isbn="3570585018">
		<titel>Der Junge, der Träume schenkte</titel>
		<autor>
			<name>Luca Di Fulvio</name>
		</autor>
		<preis>9.99</preis>
		<kritik>
			<name>TC</name>
			<text>Toller Roman!</text>
			<kritik>
				<name>John II</name>
				<text>Naja.</text>
			</kritik>
		</kritik>
		<kritik>
			<name>Jonny</name>
			<text>Juhuuuuuuuuuuuu!</text>
		</kritik>
	</buch>

</shop>

shop.dtd

<!-- Shop -->
<!ELEMENT shop (cd*, buch*)>

	<!-- Buch -->
	<!ELEMENT buch (titel, autor+, preis, kritik*)>
		<!ATTLIST buch isbn CDATA #REQUIRED>
		
	<!-- CD -->
	<!ELEMENT cd (maxi | album)>
		<!ELEMENT maxi (titel, autor+, preis, kritik*)>
		<!ELEMENT album (titel, autor+, preis, trackliste+,kritik*)>
			<!ELEMENT trackliste (song+)>
				<!ELEMENT song (#PCDATA)>
	
	<!-- General -->
	<!ELEMENT titel (#PCDATA)>
	<!ELEMENT preis  (#PCDATA)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT autor (name+)>
	<!ELEMENT kritik (name, text, kritik*)>
		<!ELEMENT text (#PCDATA)>

See also