> indeed, if we assume that #1 and #1 are the same and -, we can have a > faster alternative, but we may want to play safe. How does this keyword > mechanism work? Are there only officially registered ones?
Here is the full list. It is case-sensitive, and not extensible in any way. Within any XML instance document: <![CDATA[ <!-- <!DOCTYPE Only within the bracketed part of DOCTYPE or in an external DTD: <!ELEMENT <!ATTLIST <!ENTITY <!NOTATION Only in DTDs: <![INCLUDE <![IGNORE <![%....; A space character is allowed after the [ in these three. These last ones are used in building/parameterising the DTD, like this: <!ENTITY % draft 'INCLUDE' > <!ENTITY % final 'IGNORE' > <![%draft;[ <!ELEMENT book (comments*, title, body, supplements?)> ]]> <![%final;[ <!ELEMENT book (title, body, supplements?)> ]]> Nothing else that starts with <! is allowed to appear anywhere, except within a <