Notes

[1] (N.B. an internationalization issue arises here: if we prescribe the non-SGML character method, we need to ensure that we aren't causing problems for character sets other than ANSI X3.4, ISO 646, ISO 8859, ISO 10646, etc.)
[return to text]

[2] N.B. contextually required elements can be detected only by validating parsers.
[return to text]

[3] The third possibility can only be detected reliably by validating parsers, though some cases can be determined without validation (if a subelement cannot appear anywhere in the current element, then it is not legal at the current location in the current element). The first two possibilities can be detected even without validation.
[return to text]

[4] Goldfarb p. 315 claims the net effect is the same regardless of omittag, but if the element <blort> may self-nest, then

 
   <blort>this
   <>is
   <>a
   <>blort

does not have the behavior Goldfarb describes.
[return to text]

[5] N.B. these can be implemented only by validating parsers, if inclusion exceptions are present.
[return to text]

[6] Goldfarb comments that this allows entity references to be used to suppress record ends.
[return to text]

[7] N.B. The lists are incomplete, in the sense that lex and yacc require more modes and/or more terminal symbols, to work properly. Two examples: no mode is provided to allow the occurrence indicator to be recognized in the declaration

 
<!ELEMENT glossary - - (term, definition)+ >

and special modes are handy in lex for parsing comments, marked-section keywords, literals, and the contents of marked sections.
[return to text]

[8] N.B. These are useful for character-set switching of the type defined by ISO 2022 and required by fully conformant use of ISO 8859. It is not clear that they are ever used in practice, or that they handle de facto character set switching practices on Macintoshes and other font-friendly systems in Europe and North America, nor the standard character sets of the Far East (e.g. EUC, Shift-JIS, and other de facto forms of JIS 0208). Could we define backslash quoting simply by defining backslash as MSSCHAR?
[return to text]

[9] Goldfarb's commentary suggests that this is solely for the sake of the record-end rules.
[return to text]