How to create an xslt (preferably 1.0) transformation providing a description of differences based on an id element. Input files are supposed to stick to the same format and contain items having several child elements. One of the child elements is an id. Compared should be values of elements with same id's. Input formats does not use attributes. The result of the transformation should describe type of differences with attributes as in the example below:
Old File:
<document>
<item>
<id>1</id>
<element1>value1</element1>
<element2>value2</element2>
</item>
<item>
<id>2</id>
<element1>value3</element1>
<element2>value4</element2>
</item>
<item>
<id>3</id>
<element1>value5</element1>
<element2>value6</element2>
</item>
</document>
New File:
<document>
<item>
<id>1</id>
<element1>value1</element1>
<element2>other_value</element2>
</item>
<item>
<id>2</id>
<element1>value3</element1>
<element2>value4</element2>
</item>
<item>
<id>4</id>
<element1>value7</element1>
<element2>value8</element2>
</item>
<document>
Result File:
<document>
<item >
<id>1</id>
<element1>value1</element1>
<element2 diff="changed" old="value2">other_value</element2>
</item>
<item>
<id>2</id>
<element1>value3</element1>
<element2>value4</element2>
</item>
<item diff="removed">
<id>3</id>
<element1>value5</element1>
<element2>value6</element2>
</item>
<item diff="added">
<id>4</id>
<element1>value7</element1>
<element2>value8</element2>
</item>
</document>
The solution should not be limited to specific set of child elements.
itemelement have multipleelement1children.