Subject: RE: The order of selected nodes in a select pattern with OrExpressions?
From: David Schach <davidsch@xxxxxxxxxxxxx>
Date: Sun, 24 Jan 1999 14:06:07 -0800
|
In XQL, upon which the Microsoft implementation of XSL patterns is based,
document order is preserved by unions.
> -----Original Message-----
> From: Tyler Baker [SMTP:tyler@xxxxxxxxxxx]
> Sent: Sunday, January 24, 1999 12:52 PM
> To: xsl-list@xxxxxxxxxxxxxxxx
> Subject: The order of selected nodes in a select pattern with
> OrExpressions?
>
> One thing that does not seem to be clear in the XSL in the XSL draft is
> in what order the nodes should be selected in a select expression with
> or expressions present.
>
> For example say I have an XML file:
>
> <a>
> <b1>
> a
> </b1>
> <b2>
> b
> </b2>
> <b3>
> c
> </b3>
> </a>
>
> What if I have a template:
>
> <xsl:template match=a>
> <xsl:apply-templates select="b3 | b2 | b1">
> </xsl:template>
>
> Should the output text be: cba, or should the output text be: abc.
>
> A more general question is: "Is the order of the UnionExpressions more
> significant or is the document order of the elements more significant"?
>
> Basically what I am getting at is should an XSL Processor evaluate each
> PathExpression in the UnionExpression separately and in the order that
> the UnionExpressions are in, or should an XSL Processor recursively
> evaluate each subtree expression of each path expression in the union
> expression in that order.
>
> Right now I am under the assumption that an XSL Processor should do
> something like:
>
> for each path expression in a union expression
> select all nodes which match up with the last subtree expression of
> the currently tested path expression
>
> Then filter out any repeatedly selected nodes in the list.
>
> The spec only says that:
>
> "The context of the right hand side expressions is the context of the
> left hand side expression. The results of the right hand side
> expressions are node sets. The result of the left hand side UnionExpr is
> the union of the results of the right hand side expressions."
>
> My understanding here is that you select in the order in which the path
> expressions occur and filter out redundantly selected nodes.
>
> Is this the right way to do things or am I barking up the wrong tree
> here?
>
> Tyler
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|