[xslt] About bug #62565



Hi all,

Bug #62565 is available at <http://bugzilla.gnome.org/show_bug.cgi?id=62565>

This is *not* a bug but a misunderstanding of result tree fragments.
The $inline_nodeset variable is a result tree fragment (not a node-set!)
and XSLT defines a result tree fragment as follows:
1. in 11.1 Result Tree Fragments:
    A result tree fragment is treated equivalently to a node-set
    that contains just a single root node
2. in 11.2 Values of Variables and Parameters
    The value is a result tree fragment equivalent to a node-set
    containing just a single root node having as children the
    sequence of nodes produced by instanciateing the template.

So common:node-set($inline_nodeset) returns a node-set containing only a
single root node with three «node» children. To select these nodes, you
have to use common:node-set($inline_nodeset)/node

When you select common:node-set($inline_nodeset), you select a root node
(to which the match="/" template should be applied, which is not the case
in LibXSLT --as the root node is actually a «fake» element node-- and it is
a bug, but not urgent to fix since it is a very uncommon use of the
function). If you pass a parameter, it won't be passed down to the
match="node" template unless you explicitely pass it.

There may be bugs related to result tree fragments, but at least this one
is not a bug.

Tom.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]