Beispiel Umgruppieren test89 : Flachdrücken einer Hierarchie

Basissteuerung-Datei: cmp89.xml
<?xml version="1.0" encoding="UTF-8"?>
<delivery>
	<list_person>
		<person>
			<firstname                         ident_text="true"  />
			<name                              ident_text="true"  />
			<list_address>
				<address>
					<street            ident_text="true"  />
					<houseno           ident_text="true"  />
					<residence         ident_text="true"  />
				</address>
			</list_address>
		</person>
	</list_person>
</delivery>
Konvertierungssteuerungs-Datei: toxml89.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
<delivery>
	<list_person>
		<person>
			<name              ident_text="true"  />
			<firstname         ident_text="true"  />

			<residence         ident_text="true"  />
			<street            ident_text="true"  />
			<houseno           ident_text="true"  />
		</person>
	</list_person>
</delivery>
Erläuterung

Die Datei "test89.xml" entält eine Liste von Personen mit deren Adressen.
Diese Xml-Daten sollen flachgedrückt werden.
Person "Fischer Hildegard" hat zwei Adressen in Datei "test89.xml".
Als Ausgabe werden zwei Personen "Fischer Hildegard" mit jeweils unterschiedlichen Adressen erzeugt.

Datei: test89.xml
<?xml version='1.0' encoding='UTF-8'?>
<delivery>
	<list_person>
		<person>
			<name>Fischer</name>
			<firstname>Hildegard</firstname>
			<list_address>
				<address>
					<residence>Frankfurt</residence>
					<street>Mainstr.</street>
					<houseno>2</houseno>
				</address>
				<address>
					<residence>Berlin</residence>
					<street>Potsdamer Platz</street>
					<houseno>5</houseno>
				</address>
			</list_address>
		</person>
		<person>
			<name>Fischer</name>
			<firstname>Josef</firstname>
			<list_address>
				<address>
					<residence>Frankfurt</residence>
					<street>Mainstr.</street>
					<houseno>2</houseno>
				</address>
			</list_address>
		</person>
		<person>
			<name>Bauer</name>
			<firstname>Josef</firstname>
			<list_address>
				<address>
					<residence>Frankfurt</residence>
					<street>Mainstr.</street>
					<houseno>3</houseno>
				</address>
			</list_address>
		</person>
	</list_person>
</delivery>

Konvertierungsergebnis auf stdout
<?xml version='1.0' encoding='UTF-8'?>
<delivery>
	<list_person>
		<person>
			<name>Bauer</name><firstname>Josef</firstname><residence>Frankfurt</residence><street>Mainstr.</street><houseno>3</houseno>
		</person>
		<person>
			<name>Fischer</name><firstname>Hildegard</firstname><residence>Berlin</residence><street>Potsdamer Platz</street><houseno>5</houseno>
		</person>
		<person>
			<name>Fischer</name><firstname>Hildegard</firstname><residence>Frankfurt</residence><street>Mainstr.</street><houseno>2</houseno>
		</person>
		<person>
			<name>Fischer</name><firstname>Josef</firstname><residence>Frankfurt</residence><street>Mainstr.</street><houseno>2</houseno>
		</person>
	</list_person>
</delivery>