example merging: test80 merge only identities, which do not exist in both files

basic-control-file: cmp80.xml
<?xml version="1.0" encoding="UTF-8"?>
<delivery>
	<list_person>
		<person>
			<name        ident_text="true" />
			<firstname   ident_text="true"  />
			<residence   cmp_text="true"  />
		</person>
	</list_person>
</delivery>
explanation

This example "test80" is nearly equal to example "test79".
It only differs in the merge-rules and so of course in the merge-result.

Input:
Files "test80a.xml" and "test80b.xml" should be merged according the merge-rules of file "merge80.xml".
Person "Fischer Ludwig" exists only in file "test80a.xml".
Person "Fischer Heinz" exists only in file "test80b.xml".
Person "Fischer Albert" has a different value in element "" in file "test80b.xml".

Merge-rules:
The file "merge80.xml" has only a different content in attribute "merge" at identity-path '/delivery/list_person/person' compared to example "merge79". The modified merge-rule means: Merge only persons, which exist not in both files.
Merge-result:
In the result-file there are only the persons "Fischer Heinz" and "Fischer Ludwig", because they do not exist in both input-files.

merge-control-file: merge80.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='30' >
    <value path='/residence'                       merge='332' />
</identity>
</merge>
file: test80a.xml
<?xml version='1.0' encoding='UTF-8'?>
<delivery>
	<list_person>
		<person>
			<name>Fischer</name>
			<firstname>Werner</firstname>
			<residence>Munich</residence>
		</person>
		<person>
			<name>Fischer</name>
			<firstname>Ludwig</firstname>
			<residence>Frankfurt</residence>
		</person>
		<person>
			<name>Fischer</name>
			<firstname>Albert</firstname>
			<residence>New York</residence>
		</person>
	</list_person>
</delivery>

file: test80b.xml
<?xml version='1.0' encoding='UTF-8'?>
<delivery>
	<list_person>
		<person>
			<name>Fischer</name>
			<firstname>Werner</firstname>
			<residence>Munich</residence>
		</person>
		<person>
			<name>Fischer</name>
			<firstname>Heinz</firstname>
			<residence>Frankfurt</residence>
		</person>
		<person>
			<name>Fischer</name>
			<firstname>Albert</firstname>
			<residence>Paris</residence>
		</person>
	</list_person>
</delivery>

merge-result on stdout
<?xml version='1.0' encoding='UTF-8'?>
<delivery>
	<list_person>
		<person>
			<name>Fischer</name><firstname>Heinz</firstname>
			<residence>Frankfurt</residence>
		</person>
		<person>
			<name>Fischer</name><firstname>Ludwig</firstname>
			<residence>Frankfurt</residence>
		</person>
	</list_person>
</delivery>