- From: Ulrich Nicolas Lissé <u.n.l@gmx.net>
- Date: Mon, 28 Aug 2006 21:27:56 +0200
- To: Erik Bruchez <ebruchez@orbeon.com>
- CC: www-forms@w3.org
Erik,
thanks for your answer, but I still don't see any evidence. Given that
<myexpr>first-name</myexpr>
both
ref="{/myexpr}"
and
ref="*[name()=/myexpr]"
will evaluate to the same like
ref="first-name"
or
ref="*[name()='first-name']"
Regards,
Uli.
Erik Bruchez wrote:
>
> Ulrich,
>
>> while I go with most of what you say, I don't see any use case for
>> AVTs within @ref, @nodeset or MIP attributes. These are XPath
>> expressions by nature, so anything expressible with AVTs is
>> expressible without them, e.g. ref="{/myexpr}" can be written as
>> ref="*[name()=/myexpr]".
>>
>> Is it just to late for me and I'm missing sth obvious ?
>
> Your example above is incorrect. What this does:
>
> ref="{/myexpr}"
>
> is tell the @ref attribute that its actual value must be evaluated by
> first executing the content of the brackets as an XPath expression. The
> result of that expression is then used itself as an XPath binding
> expression (because that's the semantic of @ref). Say you have:
>
> <myexpr>first-name</myexpr>
>
> This turns @ref into:
>
> ref="first-name"
>
> If on the other hand I have:
>
> <myexpr>instance('my-instance')/last-name</myexpr>
>
> Then @ref turns into:
>
> ref="instance('my-instance')/last-name"
>
> And you can of course have more complex uses of AVTs, like:
>
> ref="instance('{instance('dynamic')/instance-name}')/{other-stuff}"
>
> The point is that with AVTs, what you are actually doing is telling the
> XForms processor to evaluate XPath expressions that have been built at
> runtime after the XForms engine initialization. So you need the
> capability to execute such expressions. Standard XForms can't do it at
> all. Standard XSLT can't do it except with AVTs, or with the evaluate()
> extension function that every XSLT processor provides.
>
> As far as I know you can't write an equivalent XPath expression as you
> suggest: you either need AVTs or an evaluate() function.
>
> This said my feeling is that are not many use cases for AVTs in @ref,
> and I personally wouldn't push too much for this at the moment.
>
> -Erik
>
--
Ulrich Nicolas Lissé
Received on Monday, 28 August 2006 19:35:19 UTC