Hallo Thomas,
nur eine ganz einfache Frage:
(Wann) darf die System-ID in der Documententypdeklaration fehlen?
Wenn sie überhapt als gesamtest fehlt.
Alle meine XML-Editoren meckern z.B. bei '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">' die fehlende System-ID an.
Das sie meckern ist korrekt. [1]
Nun habe ich die W3C-Specs mehrmals durchgelesen und komme immer wieder zu dem Schluss das die System-ID optional ist.
Unter http://edition-w3c.de/TR/2000/REC-xml-20001006/#NT-doctypedecl steht >>>Beachten Sie, dass es möglich ist, ein wohlgeformtes Dokument mit einer doctypedecl zu schreiben, das weder auf eine externe Teilmenge verweist, nocht eine interne Teilmenge enthält.<<<
_wohlgeformtes_ nicht valides.
Weiter oben steht noch zusätzlich >>>>Die Dokumenttyp-Deklaration kann entweder auf eine externe Teilmenge (eine besondere Art eines externen Entity) verweisen, die Markup-Deklarationen enthält, oder sie kann Markup-Deklarationen direkt in einer internen Teilmenge enthalten oder beides.<<<<
Zu beachten ist das zweimalige Vorkommen von "kann" (nicht "muss").
Hat überhaupt nichts damit zu tun.
Was ist nun richtig? Ich benötig diese Info für Validome da dort momentan eine Warnung angezeigt wird; währe eine Fehlermeldung richtiger (oder überhaupt keine Meldung da erlaubt) und es Geister gibt die uns diesbezüglich Fehlverhalten vorwerfen?
Richtig ist:
ExternalID ::= 'SYSTEM' S SystemLiteral | 'PUBLIC' S PubidLiteral S SystemLiteral
[1] Es ist ein Fehler wenn bei einem XML-Dokument zwar ein Public-Identifier aber kein System-Identifier angegeben ist.
Die Fehlermeldung des Validoms sollte dem Rechnung tragen.
Grüße
Thomas