without inadvertent resorting
File: Data.xml <order> <car model="A"> <id>0001</id> <name language="en">name 1</name> </car> <car model="B"> <id>0002</id> <name language="en">name 2</name> </car> <car model="B"> <id>0003</id> <name language="en">name 3</name> </car> <car model="C"> <id>0004</id> <name language="en">name 4</name> </car> </order> File: Query.xquery for $prod in doc("Data.xml")//car order by $prod/id return <li>{string($prod/name)}</li> Output: <?xml version="1.0" encoding="UTF-8"?> <li>name 1</li> <li>name 2</li> <li>name 3</li> <li>name 4</li>