W3C home > Mailing lists > Public > public-xml-processing-model-wg@w3.org > February 2013

RE: Shadowing of options/variables

From: Toman, Vojtech <vojtech.toman@emc.com>
Date: Thu, 21 Feb 2013 03:47:54 -0500
To: "Henry S. Thompson" <ht@inf.ed.ac.uk>
CC: "public-xml-processing-model-wg@w3.org" <public-xml-processing-model-wg@w3.org>
Message-ID: <F3C7EBECE80AC346BE4D1C5A9BB4A41F2F4D488CC2@MX11A.corp.emc.com>
> > But you be able to do this:
> >
> >    <p:pipeline>
> >      <p:option name="foo" select="..."/>
> >      <p:group>
> >        <p:variable name="foo" select="..."/>
> >        ...
> >
> > The key point about section 3.2 is that it forbids declaring
> > options/variables with the same name *in the same environment*, but
> > not in different environments.
> There's an ambiguity that was the source of my confusion, and that I'm
> still concerned about:  the environment is a _data structure_, and the
> environment of the p:group in the above example has a binding for 'foo'
> in it from the p:option.  So I thought the first quote above would rule
> out the shadowing.
> If OTOH you read 'environment' as naming a region of the XML tree,
> rooted in the p:group element, then the problem doesn't arise. . .

I must admit I hit the same thing. There indeed is potential ambiguity there as different people may interpret

"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"

differently. I think the intended way to read the "in the same environment" is "in the very same instance of the environment data structure". In that sense the environment op the p:pipeline and the p:group are different entities. Yes, they share some bindings, but they are different environments.


Vojtech Toman
Consultant Software Engineer
EMC | Information Intelligence Group
Received on Thursday, 21 February 2013 08:48:45 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:32:51 UTC