ORA-XQ-143-B: missing ws:explicit notes

SECTION A.2: lexical structure

Some of the rules called "Named Terminals" should have a 
/* ws:explicit */ comment attached to indicate that ignorable
whitespace may not be interspersed, namely 
Digits, ExcapeQuot, HexDigits, and probably the ones
that are copied in from other recommendations (S, NCName, QName,
Char).  Note that the quantifiers + and *, as in
rule [16] Digits ::= [0-9]+, normally imply the ability to insert 
whitespace between the repeated items.  Compare with
rule [42] FLWORExpr ::= (ForClause | LetClause)+ ...
which certainly permits whitespace between consecutive for and
let clauses.

This is almost every rule under "Named Terminals", which made
me wonder whether you intended all of these rules to have
an implicit /* ws:explicit */ comment.  However, that principle
would break down in a couple places: Pragma, MUExtension, and
SchemaGlobalTypeName.

Perhaps the solution is to move Pragma, MUExtension and 
SchemaGlobalTypeName into the list of "Non-Terminals".  
I think you are trying to list under "Named Terminals"
the kinds of tokens that would be recognized by a lexical
analyzer, and these three things seem more complex than usually
delegated to a lexer.

If you adopt this solution, you can simply state that the 
entire category has a /* ws:explicit */ comment.  However, 
this would still leave the problem of the duplicates of 
these rules in the main body of the text, where they will probably
need to be individually flagged with /* ws:explicit */


- Steve B.

Received on Monday, 16 February 2004 16:28:08 UTC