Algoritmo de difusão XML em C #
Eu tenho dois XML, antes e depois que o usuário os editou. Preciso verificar se o usuário adicionou apenas novos elementos, mas não excluiu ou alterou os antigos.
Alguém pode me sugerir um bom algoritmo para fazer essa comparação?
Ps: Meu XML tem um esquema muito trivial, eles representam apenas a estrutura de um objeto (com objetos aninhados) de uma maneira ingênua. Existem poucas tags permitidas, a tag <object> pode conter apenas a tag <name>, <type> ou a <list>. A tag <name> e <type> podem conter apenas uma sequência; Em vez disso, a tag <list> pode conter uma tag <name> e uma única tag <object> (representando a estrutura dos objetos na lista). A string na tag <name> pode ser escolhida livremente; a string na tag <type> pode ser apenas "string", "int", "float", "bool", "date" ou "composite".
Aqui está um exemplo:
<object>
<name>Person</name>
<type>composite</type>
<object>
<name>Person_Name</name>
<type>string</type>
</object>
<object>
<name>Person_Surname</name>
<type>string</type>
</object>
<object>
<name>Person_Age</name>
<type>int</type>
</object>
<object>
<name>Person_Weight</name>
<type>float</type>
</object>
<object>
<name>Person_Address</name>
<type>string</type>
</object>
<object>
<name>Person_BirthDate</name>
<type>date</type>
</object>
<list>
<name>Person_PhoneNumbers</name>
<object>
<name>Person_PhoneNumber</name>
<type>composite</type>
<object>
<name>Person_PhoneNumber_ProfileName</name>
<type>string</type>
</object>
<object>
<name>Person_PhoneNumber_CellNumber</name>
<type>string</type>
</object>
<object>
<name>Person_PhoneNumber_HomeNumber</name>
<type>string</type>
</object>
<object>
<name>Person_PhoneNumber_FaxNumber</name>
<type>string</type>
</object>
<object>
<name>Person_PhoneNumber_Mail</name>
<type>string</type>
</object>
<object>
<name>Person_PhoneNumber_Social</name>
<type>string</type>
</object>
<object>
<name>Person_PhoneNumber_IsActive</name>
<type>bool</type>
</object>
</object>
</list>
</object>