Beispiel Sortieren test77: Sortieren von hierarchischen Daten

Basissteuerung-Datei: cmp77.xml
<?xml version="1.0" encoding="UTF-8"?>
<delivery>
	<list_person>
		<person>
			<name                       ident_text="true"  />
			<list_adress>
				<adress>
					<residence  ident_text="true"  />
				</adress>
			</list_adress>
			<list_hobby>
				<hobby ident_att_name="true"/>
			</list_hobby>
		</person>
	</list_person>
</delivery>

Sortierungssteuerungs-Datei: sort77.xml
<?xml version='1.0' encoding='UTF-8'?>
<sort>
<identity path='/delivery/list_person/person' >
    <identityfield path='/name'                                                      sort='+' />
    <identity path='/list_hobby/hobby' >
        <identityfield path='/@name'                                                 sort='-' />
    </identity>
    <identity path='/list_adress/adress' >
        <identityfield path='/residence'                                             sort='+' />
    </identity>
</identity>
</sort>

Erläuterung

Die Personen sollen sortiert werden nach <name>. Die Hobbys einer Person sollen sortiert werden nach Attribut "name" in absteigender Reihenfolge. Die residences einer person sollen in aufsteigender Form sortiert werden.

Datei: test77.xml
<?xml version='1.0' encoding='UTF-8'?>
<delivery>
	<list_person>
		<person>
			<name>Fischer</name>
			<list_adress>
				<adress>
					<residence>Munich</residence>
				</adress>
				<adress>
					<residence>New York</residence>
				</adress>
				<adress>
					<residence>London</residence>
				</adress>
			</list_adress>
			<list_hobby>
				<hobby name="swimming" />
				<hobby name="hunting"  />
				<hobby name="reading"  />
				<hobby name="walking"  />
			</list_hobby>
		</person>
		<person>
			<name>Becker</name>
		</person>
		<person>
			<name>Fischer</name>
			<list_adress>
				<adress>
					<residence>Paris</residence>
				</adress>
			</list_adress>
		</person>
	</list_person>
</delivery>
sort-result on stdout
<?xml version='1.0' encoding='UTF-8'?>
<delivery>
	<list_person>
		<person>
			<name>Becker</name>
		</person>
		<person>
			<name>Fischer</name>
			<list_hobby>
				<hobby name='walking'>
				</hobby>
				<hobby name='swimming'>
				</hobby>
				<hobby name='reading'>
				</hobby>
				<hobby name='hunting'>
				</hobby>
			</list_hobby>
			<list_adress>
				<adress>
					<residence>London</residence>
				</adress>
				<adress>
					<residence>Munich</residence>
				</adress>
				<adress>
					<residence>New York</residence>
				</adress>
			</list_adress>
		</person>
		<person>
			<name>Fischer</name>
			<list_adress>
				<adress>
					<residence>Paris</residence>
				</adress>
			</list_adress>
		</person>
	</list_person>
</delivery>