- From: Erik Bruchez <ebruchez@orbeon.com>
- Date: Wed, 13 Feb 2008 17:54:01 -0800
- To: "public-forms (new)" <public-forms@w3.org>
John, I realize I used the wrong terminology. I used "in-scope evaluation context" to refer to the context in scope before handling the element containing the XPath expression, that is before looking at the @context attribute. However, the spec still refers to an overloaded in- scope evaluation context as the "in-scope evaluation context", so my explanation was confused, although it seems you understood it ;-) So it seems that we agree on what the context() function should do, which is that it does return an "in-scope evaluation context" overloaded with the @context attribute. -Erik On Feb 13, 2008, at 11:30 AM, John Boyer wrote: > > Hi Erik, > > The context attribute is defined to adjust the in-scope evaluation > context for an element. It is a way to explicitly declare the in- > scope evaluation context node. > > I think it will be even easier once the context attribute becomes a > general attribute rather than a special attribute of insert and > delete. > > The main use of context() is to override the default context node > provided to attributes evaluated after a single node binding or > nodeset binding, but regardless of where it is invoked, it should > return the node provided by the context attribute if explicitly > declared or its default otherwise (which is another way of saying > that context() returns the in-scope evaluation context node). > > Your example: > > <xforms:insert context="instance('foo')" nodeset="context()/bar"/> > > is perfect as it is clear that context() should return the same node > as instance('foo') because that is the in-scope evaluation context > set by the context attribute. > > Cheers, > John M. Boyer, Ph.D. > Senior Technical Staff Member > Lotus Forms Architect and Researcher > Chair, W3C Forms Working Group > Workplace, Portal and Collaboration Software > IBM Victoria Software Lab > E-Mail: boyerj@ca.ibm.com > > Blog: http://www.ibm.com/developerworks/blogs/page/JohnBoyer > Blog RSS feed: http://www.ibm.com/developerworks/blogs/rss/JohnBoyer?flavor=rssdw > > > > > Erik Bruchez <ebruchez@orbeon.com> > Sent by: public-forms-request@w3.org > 02/13/2008 10:56 AM > > To > "public-forms (new)" <public-forms@w3.org> > cc > Subject > XForms 1.1 context() function and (xforms:insert|xforms:delete)/ > @context attribute > > > > > > > All, > > Section "7.10.4 The context() Function", says: > > "This function returns the in-scope evaluation context node of the > nearest ancestor element of the node containing the XPath > expression that invokes this function." > > I am wondering whether this was written with the @context attribute on > xforms:insert and xforms:delete in mind. Say you have: > > <xforms:insert context="instance('foo')" nodeset="context()/bar"/> > > I am not sure my example is very useful, but still, what should > context() return in this case? > > It seems reasonable to suppose that given its name, context() returns, > well, the context, whether in-scope or overridden. In this case, > context() would return the node pointed to by instance('foo'), not the > in-scope context for the xforms:insert action. > > I am not sure that saying that context() always returns the in-scope > context would be very intuitive when you use a @context attribute. > > This is important to consider since we might generalize use of the > @context attribute in 1.2. > > -Erik > > -- > Orbeon Forms - Web Forms for the Enterprise Done the Right Way > http://www.orbeon.com/ > > > -- Orbeon Forms - Web Forms for the Enterprise Done the Right Way http://www.orbeon.com/
Received on Thursday, 14 February 2008 01:54:15 UTC