- From: <bugzilla@wiggum.w3.org>
- Date: Wed, 20 Jul 2005 07:36:59 +0000
- To: public-qt-comments@w3.org
- Cc:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=1787
Summary: [FS] editorial: problems re VarRef, Variable
Product: XPath / XQuery / XSLT
Version: Last Call drafts
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Formal Semantics
AssignedTo: simeon@us.ibm.com
ReportedBy: jmdyck@ibiblio.org
QAContact: public-qt-comments@w3.org
VarRef:
Other than in EBNF productions, all occurrences of 'VarRef' are incorrect.
The only way that VarRef shows up in the grammar (XQuery or Core) is as
an alternative for PrimaryExpr. Thus, [4.1.2 Variable References] is the
only section where rules could legitimately use the symbol 'VarRef'
(although they don't!). Everywhere else, 'VarRef' is being misused.
Generally, it's used as an abbreviation for "$VarName". But note that,
except in a PrimaryExpr context, "$VarName" is a variable binding or a
variable declaration, not a variable reference. So:
(1) In rules, when 'VarRef' occurs in the context of an XQuery or Core
expression, it should be changed to "$VarName".
(2) In 'of var expands to' judgments, the left-hand "operand" is a QName,
not a VarRef or even a $VarName, so judgments like:
VarRef of var expands to ...
should be changed to:
VarName of var expands to ...
(leftover from last year, comment #007)
(3) The domain of varType is expanded-QName, not VarRef or $VarName or
VarName. So judgments like:
statEnv + varType(VarRef => ...)
should be changed to:
VarName of var expands to expanded-QName
statEnv + varType(expanded-QName => ...)
(Or else with 'Variable' instead of 'expanded-QName', see next.)
(leftover from last year, comment #086)
Variable:
The symbol 'Variable' is not a non-terminal, so it's not immediately clear
what it signifies. In practice, it's used where an expanded-QName would be
expected. Things would be simpler if you changed all occurrences of the
symbol 'Variable' to 'expanded-QName' (taking care in the few rules where
there's already a pattern by that name).
(leftover from last year, comment #008)
But, if you feel that the 'Variable' symbol is preferable, then please
explicitly say that it's equivalent to 'expanded-QName', and use it
consistently. Specifically:
(1) Change 'expanded-QName' to 'Variable' in the following contexts:
statEnv.varType(expanded-QName)
2.1.5 / rule (2|4)
4.1.2 / STA / rule 1
dynEnv.varValue(expanded-QName)
4.1.2 / DEv / rule (1|2)
5.11 / DCP / rule 1
VarName of var expands to expanded-QName
2.1.5 / rule (2|4)
3.1.1.1 / Notation
4.1.2 / STA / rule 1
4.1.2 / DEv / rule (1|2)
(2) Don't use the phrase "expanded Variables" because it makes Variables
sound like QNames.
(3) In 5.15 / DCP / rule 2 / conclusion, change "Variable" to "$VarName".
Received on Wednesday, 20 July 2005 07:37:04 UTC