Sie sind auf Seite 1von 4

Übungen zu DTD (03)

3.1 Elementdefinitionen

3.1.1 a) Ergänzen Sie das folgende XML Dokument mit einer inline DTD

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE note [

]> <note> <to>Me</to> <from>You</from> <heading>Reminder</heading> <body>Don't forget to solve this</body> </note>

b) Definieren Sie die DTD in einem eigenen File

c) Validieren Sie a) und b), bspw. mit dem Eclipse XML Editor oder mit XML Spy.

3.1.2 a) Erstellen Sie ein XML Dokument zur folgenden DTD

<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT person (name, profession)> <!ELEMENT name (firstName, lastName)> <!ELEMENT firstName (#PCDATA)> <!ELEMENT lastName (#PCDATA)> <!ELEMENT profession (#PCDATA)>

b) Erweitern Sie die DTD so, dass eine Liste von Personen im XML Dokument stehen kann

und erstellen Sie ein entsprechendes XML Dokument.

c) Validieren Sie a) und b), bspw. mit dem Eclipse XML Editor oder mit XML Spy.

3.1.3 Erstellen Sie zur folgenden DTD ein ein XML Dokument mit <strasse> und eines mit

<postfach>

<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT adresse (anrede?, name, vorname, (postfach | strasse), plzort, (kanton | land)

)>

<!ELEMENT anrede (#PCDATA)> <!ELEMENT name (#PCDATA)> <!ELEMENT vorname (#PCDATA)> <!ELEMENT postfach (#PCDATA)>

<!ELEMENT strasse (#PCDATA)> <!ELEMENT plzort (#PCDATA)> <!ELEMENT kanton (#PCDATA)> <!ELEMENT land (#PCDATA)>

c) Validieren Sie die XML Dokumente.

3.2 Element- und Attributdefinitionen

3.2.1 Erstellen Sie zur folgenden DTD ein ein XML Dokument und validieren Sie es.

<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT bestellung (artikelliste, bezahlung)> <!ELEMENT artikelliste (artikel+)> <!ELEMENT artikel (#PCDATA)> <!ELEMENT bezahlung (preis)> <!ELEMENT preis (#PCDATA)> <!ATTLIST artikel id ID #REQUIRED> <!ATTLIST bezahlung type (kreditkarte|bar|maestro) "bar"> <!ATTLIST preis währung CDATA "CHF">

3.2.2 Entwerfen Sie eine DTD für die Bücherliste eines Buchladens (bookstore). Es soll die

folgenden Angaben enthalten.

Buch (Titel, Autor, Preis, Kommentar)

Kommentar (Kommentator, Datum, Text).

3.2.3 Diese interne DTD benutzt ANY als Typ für das Root-Element. Schreiben Sie die DTD

so um, dass sie ohne ANY auskommt.

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE product [

<!ELEMENT product <!ELEMENT name <!ELEMENT price <!ELEMENT odernumber

]>

<product>

ANY>

(#PCDATA)>

(#PCDATA)>

(#PCDATA)>

<name>Me</name>

<price>You</price>

<odernumber>Reminder</odernumber>

</product>

3.2.4

Die DTD http://java.sun.com/dtd/web-app_2_3.dtd spezifiziert das XML Format des

web.xml Servlet Konfigurations-Files. Erstellen mit Hilfe eines Tools ein Beispiel XML File dieser Konfiguration.

3.2.5 Erstellen mit Hilfe eines Tools zur folgednen DTD (von http://www.vervet.com ) ein

Beispiel XML File und validieren Sie dieses.

<?xml version="1.0" encoding="UTF-8"?>

<!ENTITY AUTHOR "John Doe">

<!ENTITY COMPANY "JD Power Tools, Inc.">

<!ENTITY EMAIL "jd@jd-tools.com">

<!ELEMENT CATALOG (PRODUCT+)>

<!ELEMENT PRODUCT (SPECIFICATIONS+, OPTIONS?, PRICE+, NOTES?)>

<!ATTLIST PRODUCT

NAME CDATA #IMPLIED

CATEGORY (HandTool | Table | Shop-Professional) "HandTool"

PARTNUM CDATA #IMPLIED

PLANT (Pittsburgh | Milwaukee | Chicago) "Chicago"

INVENTORY (InStock | Backordered | Discontinued) "InStock"

>

<!ELEMENT SPECIFICATIONS (#PCDATA)>

<!ATTLIST SPECIFICATIONS

WEIGHT CDATA #IMPLIED

POWER CDATA #IMPLIED

>

<!ELEMENT OPTIONS (#PCDATA)>

<!ATTLIST OPTIONS

FINISH (Metal | Polished | Matte) "Matte"

ADAPTER (Included | Optional | NotApplicable) "Included"

CASE (HardShell | Soft | NotApplicable) "HardShell"

>

<!ELEMENT PRICE (#PCDATA)>

<!ATTLIST PRICE

MSRP CDATA #IMPLIED

WHOLESALE CDATA #IMPLIED

STREET CDATA #IMPLIED

SHIPPING CDATA #IMPLIED

>

<!ELEMENT NOTES (#PCDATA)>

3.2.6 Validieren Sie die DTDs der vorherigen drei Aufgaben mithilfe eines PHP Programmes.

Selbststudium

Lesen Sie die Kapitel 14.6 bis 14.6.5 aus dem Buch "Professionelle Websites" von Stefan Münz, online verfügbar unter