Добрый день, уважаемому сообществу.
Нужна проверка мыслей при работе с XML. Ну или ваши Best Practices :-)
Необходимо сверить 2 XML-файла в формате ЦБРФ. Отличия межде ними: во второй файл в каждое определение тэга добавлен префикс 'ed:' и цифровая подпись. Выглядит примерно так:
<ed:PacketEPD EDNo="2" EDDate="2009-11-20" EDAuthor="1234567890" EDQuantity="3" Sum="300" SystemCode="01" xmlns:ed="urn:cbr-ru:ed:v2.0">
<dsig:SigValue xmlns:dsig="urn:cbr-ru:dsig:v1.1">
digitalsignature
</dsig:SigValue>
<ed:ED101 ...> ... </ed:ED101>
<ed:ED101 ...> ... </ed:ED101>
<ed:ED101 ...> ... </ed:ED101>
</ed:PacketEPD>
С XML толком не работал, но представляется мне, что нужно определить класс такого типа:
class DataClass : IEquatable<DataClass>
{
PacketEPDType PacketEPD;
List<ED101> ED;
public bool Equals(DataClass other)
{
//переопределить метод
}
}
Ну и дальше создать 2 объекта, загрузив в них с использованием класса XmlReader данные и сравнить эти объекты.
Беглого просмотра доков хватило чтобы понять, что файлы можно разобрать с помощью XSD схем или преобразовать один в другой с помощью XSLT и сравнить какими-нибудь стандартными средствами. Желания городить огород и реализовывать сравнение руками, если есть какой-то способ это сделать стандартными средствами за пару кликов - конечно нет. Но вот есть ли такие способы?