Hallo,
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.<<<
Das gleiche "sagen" auch die dort stehenden RegExp ((S ExternalID)?).
Du meinst die EBNF-Grammatik.
Im genannten Dokument steht doch eindeutig:
doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('[' (markupdecl | DeclSep)* ']' S?)? '>'
S steht fuer mind. ein Whitespace-Zeichen, definiert durch (#x20 | #x9 | #xD | #xA)+
? steht fuer optional, also 0|1 und das betrifft sowohl die ExternalID als auch das interne Subset fuer eine DTD-Erweiterung.
* kennzeichnet die Moeglichkeit von 0 bis n Deklarationen im internen Subset oder Parameter-Entitys (%...;), sofern vorhanden.
S? sagt wiederum aus, dass an der genannten Stelle Whitespace sein kann.
MfG, Thomas