Name
[2.0] unordered()
Given a sequence, returns those items in an implementation-defined order.
Syntax
item()*unordered(
item()*
)
Inputs
A sequence of items.
Outputs
A sequence containing the same items as the input sequence, but in an order determined by the XSLT processor.
Defined in
XQuery 1.0 and XPath 2.0 Functions and Operators section 15.1, “General Functions and Operators on Sequences.”
Example
The unordered()
function is a way of telling the XSLT processor that we don’t care
how items are sequenced. In some cases, this can improve the
performance of the XSLT processor. As an example, we’ll look at
the ancestors of an element in two ways. Using the normal
approach, the ancestors appear in document order. When using
unordered()
with Saxon, the
ancestors appear in the reverse order. Most likely, Saxon is
taking advantage of its internal data structures to start at a
node and list its ancestors from the innermost level of the
document outward. Using the same stylesheet with AltovaXML, the
ancestors appear in document order in both cases.
We’ll reuse one of our purchase orders as our input document:
<?xml version="1.0" ?> <!-- po38293.xml --> <purchase-order id="38293"> <date year="2001" month="9" day="8"/> <customer id="4738" level="Basic"> <address type="business"> <name> <title>Ms.</title> <first-name>Amanda</first-name> <last-name>Reckonwith</last-name> </name> <street>930-A Chestnut Street</street> <city>Lynn</city> <state>MA</state> <zip>02930</zip> </address> <address type="ship-to"/> ...
Get XSLT, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.