static and dynamic (or: unconditional and conditional?) grammar errors

To provide a written form of the discussion proposal I made in the call
just now, I propose that:

1. The spec should distinguish two classes of errors in grammars:

  a. Errors which a conforming processor must always detect, regardless
  of the input.

  b. Errors which a conforming processor is not required to detect
  unless the input exposes them.

Example of (a):  a grammar which is syntactically incorrect, e.g.

  S ::= 'a'.

Example of (b):  a grammar for which some inputs may lead to attempts to
serialize XML elements with non-XML names.

2. Proposed temporary names for these classes:  static and dynamic
errors.

3. Possible long-term names for these classes (incomplete list):

  - static vs dynamic
  - unconditional vs conditional

4. The spec should require conforming processors to reject grammars with
static errors.

5. The spec should specify that conforming processors must reject grammars with
dynamic errors if the input "exposes" them.

6. The spec should specify that conforming processors may reject
grammars with dynamic errors even if the input does not expose them.
(More tersely: dynamic errors may be detected statically.)

7.  The spec either needs a definition of "expose", or for each dynamic
error it needs to find an alternative way to describe when it must be
detected.

8. Tentative definition: A given input string *exposes* a dynamic error
in the grammar if and only if there is no well-formed XML representation
of that input which satisfies all the marks in the grammar.


-- 
C. M. Sperberg-McQueen
Black Mesa Technologies LLC
http://blackmesatech.com

Received on Tuesday, 8 February 2022 16:43:13 UTC