Иногда файлы XML необходимо хранить в некоторых VCS. Такие файлы часто редактируются с использованием инструментов графического интерфейса пользователя, которые могут изменять порядок элементов каждый раз по своему усмотрению.Преобразование XML-файлов в редактируемые и управляемые человеком VCS
Также VCS объединение, как правило, линия-ориентированный, и часто XML-файлы либо выглядит любит одну длинную линию или полностью отступом как
<foo>
<bar>
<name>
n3
</name>
<value>
qqq3
</value>
</bar>
<bar>
<name>
n2
</name>
<value>
qqq2
</value>
</bar>
</foo>
, в то время как они должны выглядеть
<foo>
<bar> <name> n2 </name> <value> qqq2 </value> </bar>
<bar> <name> n3 </name> <value> qqq3 </value> </bar>
</foo>
(например, " частично отступом "), чтобы быть более читабельными/редактируемыми, компактными. Одна простая логическая единица должна занимать одну строку.
Даже если кто-то преобразует XML-файл в такой красивый формат, кто-то другой отредактирует его в инструменте графического интерфейса, который будет изменять порядок и повторно использовать все, и это будет плохо (нечитабельно, и VCS сообщит о значительных изменениях, несмотря на то,).
Есть ли готовое преобразование XSLT (или другая программа), которое преобразует все файлы XML в какой-либо унифицированный формат (например, сортировки (если порядок элементов не имеет значения) и унифицирует пробелы), и где я могу указать, какие элементы должны быть oneliners?
Например, если я могу указать такое преобразование как фильтр в .gitattributes
, и git автоматически обработает это.
@Vi: Я не верю в общие решения ... Кроме того, предположим следующее изменение вашего входного документа: ' n2 '. Выполните свою трансформацию и скажите мне, является ли это желаемым результатом. –
2010-07-01 19:32:57
@Alejandro, Если удалить сортировку, это будет просто индентор с возможностью «отключаться» отступов для некоторых элементов. Сортировка может быть изменена. Есть уже ' n2 ', не знаю, что менять. –
@Vi: Я имел в виду, что вы должны попытаться изменить свой входной документ, чтобы проверить свою таблицу стилей. Например: нормализовать пространство в текстовом узле второго элемента 'name' и снова запустить таблицу стилей. Выдает ли он желаемый результат? – 2010-07-02 03:27:01