- From: Norman Walsh <ndw@nwalsh.com>
- Date: Mon, 06 Oct 2014 17:54:07 -0500
- To: public-xml-processing-model-wg@w3.org
- Message-ID: <87vbnwyflc.fsf@nwalsh.com>
This action asked me to review variable/option scope/shadow language
and test cases.
As Henry observes in http://www.w3.org/2013/02/20-xproc-minutes.html
the spec says:
Variables and options share the same scope and may shadow each other.
Later, the spec says:
The scope of option and variable names is determined by where they
are declared. When an option is declared with p:option (or a
variable with p:variable), unless otherwise specified, its scope
consists of the sibling elements that follow its declaration and the
descendants of those siblings. It is a static error (err:XS0004) if
an option or variable declaration duplicates the name of any other
option or variable in the same environment. That is, no option or
variable may lexically shadow another option or variable with the
same name.
And these do seem to be contradictory statements. The intent, I
assert, is that variables and options may shadow each other, but they
may not shadow any preceding siblings.
We have a test cases that defined that position:
http://tests.xproc.org/tests/required/variable-007.xml
and
http://tests.xproc.org/tests/required/err-s0004-001.xml
http://tests.xproc.org/tests/required/err-s0004-003.xml
I propose the following erratum to fix this issue:
The scope of option and variable names is determined by where they
are declared. When an option is declared with p:option (or a
variable with p:variable), unless otherwise specified, its scope
consists of the sibling elements that follow its declaration and the
descendants of those siblings. It is a static error (err:XS0004) if
an option or variable declaration duplicates the name of any other
option or variable among its preceding siblings.
Be seeing you,
norm
--
Norman Walsh
Lead Engineer
MarkLogic Corporation
Phone: +1 512 761 6676
www.marklogic.com
Received on Monday, 6 October 2014 22:54:37 UTC