Mische Beispiel test85: Fehler, da mehr als ein Satz mit gleicher Identifizierung

Basissteuerung-Datei: cmp85.xml
<?xml version="1.0" encoding="UTF-8"?>
<delivery>
	<list_person>
		<person>
			<name       ident_text="true"   />
			<firstname  ident_text="true"   />
			<size       cmp_text="true"   />
			<weight     cmp_text="true"   />
		</person>
	</list_person>
</delivery>
Erläuterung

Eingabe:
Die Dateien "test85a.xml" und "test85b.xml" sollen gemäß den Mischregeln von Datei "merge85.xml" gemischt werden.
In Datei "test85a.xml" gibt es zwei Personen mit der gleiche Identity "Bauer Josef".
In Datei test85b.xml" gibt es zwei Personen mit gleicher Identity "Becker Petra".

Fehlermeldungen:
Weil doppelte Identitys nicht korrekt gemischt werden, werden entsprechende Fehlermeldungen in Datei "test85a.xml-error.xml" ausgegeben.

Mischsteuerungs-Datei: merge85.xml
<?xml version='1.0' encoding='UTF-8'?>
<!--
Element <identity>: Explanation of the merge-Attributes:

     merge='??'
            ||
            |If rows are equal:
            |________________________________________________________
            |0 = take no row from input1 or input2
            |3 = merge rows from input1 and input2.
            |________________________________________________________
            |
            If rows are not equal:
            _________________________________________________________
            0 = take no row from input1 or input2
            1 = take only row from input1
            2 = take only row from input2
            3 = take row from input1 and input2.

Element <value>: Explanation of the merge-Attributes:

     merge='???'
            |||
            ||If element/attribute-name are equal but contents are not equal:
            ||_______________________________________________________
            ||0 = take no attribute/element from input1 or input2
            ||1 = take attribute/element from input1
            ||2 = take attribute/element from input2
            ||3 = take attribute/element from input1 and input2 (not possible if path is an attribute)
            ||
            |If element/attribute-name and content are equal:
            |________________________________________________________
            |0 = take no element/attribute from input1 or input2
            |3 = take element/attribute from input1 or input2
            |________________________________________________________
            |
            If element/attribute-name are not equal:
            _________________________________________________________
            0 = take no element/attribute from input1 or input2
            1 = take only element/attribute from input1
            2 = take only element/attribute from input2
            3 = take element/attribute from input1 and input2.
-->
<merge>
<identity path='/delivery/list_person/person'      merge='13' >
    <value path='/size'                            merge='132' />
    <value path='/weight'                          merge='132' />
</identity>
</merge>
Datei: test85a.xml
<?xml version='1.0' encoding='UTF-8'?>
<delivery>
	<list_person>
		<person>
			<name>Fischer</name>
			<firstname>Werner</firstname>
			<weight>80</weight>
			<size>180</size>
		</person>
		<person>
			<name>Bauer</name>
			<firstname>Josef</firstname>
			<size>186</size>
		</person>
		<person>
			<name>Bauer</name>
			<firstname>Josef</firstname>
			<size>187</size>
		</person>
		<person>
			<name>Becker</name>
			<firstname>Petra</firstname>
			<weight>70</weight>
		</person>
	</list_person>
</delivery>
Datei: test85b.xml
<?xml version='1.0' encoding='UTF-8'?>
<delivery>
	<list_person>
		<person>
			<name>Fischer</name>
			<firstname>Werner</firstname>
			<weight>80</weight>
			<size>186</size>
		</person>
		<person>
			<name>Becker</name>
			<firstname>Petra</firstname>
			<weight>70</weight>
		</person>
		<person>
			<name>Becker</name>
			<firstname>Petra</firstname>
			<weight>70</weight>
		</person>
	</list_person>
</delivery>
merge-result on stdout
<?xml version='1.0' encoding='UTF-8'?>
<delivery>
	<list_person>
		<person>
			<name>Becker</name><firstname>Petra</firstname>
			<weight>70</weight>
		</person>
		<person>
			<name>Fischer</name><firstname>Werner</firstname>
			<weight>80</weight><size>186</size>
		</person>
	</list_person>
</delivery>
file test85a.xml-error.xml
<?xml version='1.0' encoding='UTF-8'?>
<xmlcmp:errors xmlns:xmlcmp='http://www.xmlcmp.org/cmpresult'>
	<xmlcmp:error xmlcmp:text="E0038 Cannot merge, because more than one row in input1 with equal identity-path '/delivery/list_person/person'." xmlcmp:count="1" >
		<xmlcmp:row xmlcmp:number="1">
			<xmlcmp:ident>
				<delivery>
					<list_person>
						<person>
							<name>Bauer</name>
							<firstname>Josef</firstname>
						</person>
					</list_person>
				</delivery>
			</xmlcmp:ident>
			<xmlcmp:input1 xmlcmp:name="/mnt/sde1/fer/svnhome/testtool/branches/fer1/doc/xmlcmp/examples/test85a.xml" >
				<xmlcmp:elements xmlcmp:xml_line="10" xmlcmp:xml_col="1">
					<size>186</size>
				</xmlcmp:elements>
				<xmlcmp:elements xmlcmp:xml_line="15" xmlcmp:xml_col="1">
					<size>187</size>
				</xmlcmp:elements>
			</xmlcmp:input1>
		</xmlcmp:row>
	</xmlcmp:error>
	<xmlcmp:error xmlcmp:text="E0038 Cannot merge, because more than one row in input2 with equal identity-path '/delivery/list_person/person'." xmlcmp:count="1" >
		<xmlcmp:row xmlcmp:number="1">
			<xmlcmp:ident>
				<delivery>
					<list_person>
						<person>
							<name>Becker</name>
							<firstname>Petra</firstname>
						</person>
					</list_person>
				</delivery>
			</xmlcmp:ident>
			<xmlcmp:input2 xmlcmp:name="/mnt/sde1/fer/svnhome/testtool/branches/fer1/doc/xmlcmp/examples/test85b.xml" >
				<xmlcmp:elements xmlcmp:xml_line="15" xmlcmp:xml_col="1">
					<weight>70</weight>
				</xmlcmp:elements>
			</xmlcmp:input2>
		</xmlcmp:row>
	</xmlcmp:error>
</xmlcmp:errors>