Hallo,
mein Sohn muss sich gerade für die Uni mit DTDs herumschlagen. Ich selbst bin in meinem Leben bisher immer drumherumgekommen und lerne deshalb auch gerade erst den Umgang damit :)
Themeneingrenzung: Dies hier ist ein reduziertes XML zur Darstellung des Problems. Es hat keinerlei inhaltliche Bedeutung. Es geht mir ausschließlich um das Thema "Verwendung von Parameter Entities".
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE test [
<!ELEMENT test (bla)>
<!ENTITY % schnurz "foo, bar">
<!ELEMENT bla (%schnurz;)>
<!ELEMENT foo (#PCDATA)>
<!ELEMENT bar (#PCDATA)>
]>
<test>
<bla>
<foo>Huhu</foo>
<bar>SelfHTML</bar>
</bla>
</test>
Alle XML Validatoren, die ich online gefunden habe, und auch der in NetBeans integrierte, regen sich über <!ELEMENT bla (%schnurz;)>
auf. Die Fehlermeldung ist:
Das Zeichen "(" oder ein Elementtyp ist in der Deklaration des Elementtyps "bla" erforderlich.
Dabei sollte doch, auch gemäß dem SelfHTML Wiki, %schnurz;
einfach textuell durch "foo, bar" ersetzt werden und zu einer Elementdefintion <!ELEMENT bla (foo, bar)>
führen. Wenn ich die Ersetzung manuell im Sourcecode mache, ist alles gut.
Was mache ich falsch, was habe ich falsch verstanden?
Rolf