Я работаю над проектом, в котором нам нужно сохранить данные в формате XML. Проблема в том, что со временем мы ожидаем, что формат/схема наших данных изменится. Что мы хотим сделать, так это создать сценарии для переноса наших данных между разными версиями схемы. Мы распространяем наш продукт среди тысяч клиентов, поэтому нам нужно иметь возможность запускать/применять эти скрипты на сайтах клиентов (поэтому мы не можем просто выполнять преобразования вручную). Я думаю, что нам нужен какой-то инструмент переноса XML-данных. На мой взгляд, идеальный инструмент может:
Сделайте "XML diff" двух схем, чтобы идентифицировать добавленные/удаленные/измененные узлы.
Позвольте нам указать функции преобразования. Так, например, мы можем добавить в нашу схему новый элемент, который является функцией старых элементов. (Например, новый элемент C, где C = A+B, A + B — старые элементы).
Поэтому я думаю, что ищу своего рода инструмент XML diff и patch, который также может применять функции преобразования. Одним из инструментов, который я ищу для этого, является MapForce компании Altova . Я уверен, что другим здесь приходилось иметь дело с миграцией формата данных XML. Как вы справиться с этим?
Изменить: одно уточнение. «Различия», которые я планирую сделать, — это схемы или файлы .xsd. Фактические изменения будут внесены в определенные наборы данных, соответствующие заданной схеме. Эти наборы данных будут файлами .xml. Таким образом, это «diff» схемы, чтобы помочь выяснить, какие изменения необходимо внести в наборы данных, чтобы перенести их из одной схемы в другую.