Иногда файлы 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 в какой-либо унифицированный формат (например, сортирует (если порядок элементов не имеет значения)и объединяет пробелы) и где я могу указать, какие элементы должны быть однострочными?
Например, если я могу указать такое преобразование, как фильтр, в .gitattributes
, и git автоматически обработает это.