PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : XML-Namespace-DTD


bulla
2008-06-02, 05:18:55
Hi,
ich schreibe gerade eine Seminararbeit zu dem Thema und habe hier ein kleines Problem.

Folgendes Beispiel habe ich gewählt, das als roter Faden gilt:

%<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
% <Filmverwaltung Stand="1.1.2008">
% <Regal Standort=``Wohnzimmer'' Typ=``DVD">
% <DVD id=``1">
% <Titel>2001-Odyssee im Weltraum</Titel>
% <Genre>SciFi</Genre>
% <Jahr>1968</Jahr>
% <Zitat>"Haben Sie jemals darunter gelitten, dass sie trotz Ihrer enormen Intelligenz, von Menschen abhängig sind, um Ihre Aufgaben ausführen zu können?" - "Nicht im geringsten. Ich arbeite gerne mit Menschen."</Zitat>
% </DVD>
% <DVD id=``3''>
% <Titel>Krieg der Sterne 5</Titel>
% <Genre>SciFi</Genre>
% <Jahr>1980</Jahr>
% <Zitat>Ich bin dein Vater.</Zitat>
% </DVD>
% </Regal>
% <Regal Standort=``Keller'' Typ=``VHS''>
% <VHS id=``2''>
% <Laufzeit>96</Laufzeit>
% <Titel>Tron</Titel>
% <Genre>SciFi</Genre>
% <Jahr>1982</Jahr>
% <Zitat>On the other side of the screen, it all looks so easy.</Zitat>
% <Zitat>Take that program to the holy pit!</Zitat>
% </VHS>
% </Regal>
% </Filmverwaltung>

Die danach entwickelte DTD sieht so aus:

% <!DOCTYPE Filmverwaltung [
% <!Element Filmverwaltung (Regal+)>
% <!Element Regal (DVD|VHS)>
% <!Element DVD (Titel, Genre, Jahr, Zitat*)>
% <!Element VHS (Laufzeit,Titel, Genre+, Jahr, Zitat*)>
% <!Element Laufzeit (#PCDATA)>
% <!Element Titel (#PCDATA)>
% <!Element Genre (#PCDATA)>
% <!Element Jahr (#PCDATA)>
% <!Element Zitat (#PCDATA)>
% <!Attlist Filmverwaltung Stand CDATA #REQUIRED>
% <!Attlist Regal Standort CDATA #REQUIRED
% Typ (DVD|VHS) #REQUIRED>
% <!Attlist DVD id ID #REQUIRED>
% <!Attlist VHS id ID #REQUIRED>
% >

Das Problem, dass ich habe, ist, dass ich nicht so recht weiss, ob meine Namespace-Deklaration so richtig ist. Muss ich die Elementnamen doppelt in der DTD aufführen?
So würde es meiner Meinung nach aussehen:

%<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
% <Filmverwaltung Stand="1.1.2008" xmlns:vhs=``www.vhs.com`` xmlns:dvd=``www.dvd.com``>
% <Regal Standort=``Wohnzimmer'' Typ=``DVD">
% <DVD id=``1">
% <dvd:Titel>2001-Odyssee im Weltraum</dvd:Titel>
% <dvd:Genre>SciFi</dvd:Genre>
% <dvd:Jahr>1968</dvd:Jahr>
% <dvd:Zitat>"Haben Sie jemals darunter gelitten, dass sie, trotz Ihrer enormen Intelligenz, von Menschen abhängig sind, um Ihre Aufgaben ausführen zu können?" - "Nicht im geringsten. Ich arbeite gerne mit Menschen."</dvd:Zitat>
% </DVD>
% <DVD id=``3''>
% <dvd:Titel>Krieg der Sterne 5</dvd:Titel>
% <dvd:Genre>SciFi</dvd:Genre>
% <dvd:Jahr>1980</dvd:Jahr>
% <dvd:Zitat>Ich bin dein Vater!</dvd:Zitat>
% </DVD>
% </Regal>
% <Regal Standort=``Keller'' Typ=``VHS''>
% <VHS id=``2''>
% <vhs:Laufzeit>96</vhs:Laufzeit>
% <vhs:Titel>Tron</vhs:Titel>
% <vhs:Genre>SciFi</vhs:Genre>
% <vhs:Jahr>1982</vhs:Jahr>
% <vhs:Zitat>On the other side of the screen, it all looks so easy.</vhs:Zitat>
% <vhs:Zitat>Take that program to the holy pit!</vhs:Zitat>
% </VHS>
% </Regal>
% </Filmverwaltung>

Und die passende DTD:

% <!DOCTYPE Filmverwaltung [
% <!Element Filmverwaltung (Regal+)>
% <!Element Regal (DVD|VHS)>
% <!Element DVD (dvd:Titel, dvd:Genre, dvd:Jahr, dvd:Zitat*)>
% <!Element VHS (vhs:Laufzeit, vhs:Titel, vhs:Genre+, vhs:Jahr, vhs:Zitat*)>
% <!Element dvd:Titel (#PCDATA)>
% <!Element dvd:Genre (#PCDATA)>
% <!Element dvd:Jahr (#PCDATA)>
% <!Element dvd:Zitat (#PCDATA)>
% <!Element vhs:Laufzeit (#PCDATA)>
% <!Element vhs:Titel (#PCDATA)>
% <!Element vhs:Genre (#PCDATA)>
% <!Element vhs:Jahr (#PCDATA)>
% <!Element vhs:Zitat (#PCDATA)>
% <!Attlist Filmverwaltung Stand CDATA #REQUIRED
% xlmns:dvd CDATA #FIXED ``www.dvd.com``
% xlmns:vhs CDATA #FIXED ``www.vhs.com``>
% <!Attlist Regal Standort CDATA #REQUIRED
% Typ (DVD|VHS) #REQUIRED>
% <!Attlist DVD id ID #REQUIRED>
% <!Attlist VHS id ID #REQUIRED>
% >

Sieht jemand einen Fehler?