Автор — Алексей Чумаков, 2006-05-10
UpGuide должен стать средством слияния существующего перевода документа GuideXML определенной версии с изменениями, сделанными в последующих версиях того же исходного документа.
Цель — радикальное облегчение работы переводчика и редактора при обновлении перевода документов благодаря сведению всей работы к редактированию одного файла.
На вход подаются три документа.
Предполагается (но не гарантируется), что на вход подаются well-formed xml-документы (возможно, GuideXML-документы, находящиеся в таком соотношении:
На выходе формируется четвертый документ.
Сообщения об ошибках, как правило, не порождаются; могут выводиться предупреждения (warnings).
Непредусмотренные ситуации не должны вызывать сообщение об ошибке; всегда выбирается «разумный» вариант обработки (оптимально — копирование обновленного файла без обработки). Необходимо рассчитывать, что на вход может быть подан любой файл, который способен существовать. И такой файл не должен породить ошибку.
При затруднениях в реализации требования корректной обработки обрезанного, дефектного или не-XML документа могут быть сняты или реализованы другими (внешними) средствами.
Расположенные рядом два файла перекрестных различий (один — между двумя версиями исходного файла, другой — между двумя версиями перевода) должны совпадать по структуре и контексту.
Простая обратимость: повторный запуск с измененным исходным файлом, базовым исходным файлом и измененным переводом на входе должен приводить к генерации файла, эквивалентного базовому переводу (исключение — содержимое некоторых элементов может становиться непереведенным).
Перекрестная обратимость: повторный запуск с базовым переводом, измененным переводом и базовым исходным файлом должен порождать файл, эквивалентный измененному исходному файлу.
Устойчивость к ошибкам во входных данных: при отсутствии совпадений между базовым и измененным или базовым и переведенным файлом в любом поддереве элементов это поддерево должно полностью копироваться из измененного исходного файла. В предельном случае — на выход полностью копируется измененный исходный файл.
Раздел предстоит написать.