And Paul G. and Paul P. are both right that my (a) is better described
as asking of a set of construction rules which one should be used for
a given node, a process in which pattern matching plays a part, but
not the only part.
As for walking the tree, we're ALL right (all right!) on this one.
The 90% case for construction rules in simple stylesheets is for them
to contain templates with xsl:process-children in their midst. If ALL
construction rules in a stylesheet are like that, then the nodes in
the source tree will indeed yield results which are assembled as if by
pre-order. But note the next line of the draft:
"Implementations are free to process the source document in any way
that produces the same result as if it were processed using this
processing model."
It's important to remember this: there is no guarantee of sequential
processing even in the simple case. Because construction rules are
independent of one-another, it doesn't matter what order bits of the
result tree are constructed in.
However there is one case in which a preorder sequencing is implied, in
which case things look pretty much like querying:
<xsl:process select='.//target'/>
will process ALL the descendants of the current element whose element
type is 'target' in preorder [this isn't said explicitly in the draft,
but should be: it is implied in the description of xsl:process]
ht
-- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/