Я использую jQuery для загрузки произвольных строк XML (фрагментов большего документа) в DOM браузера и манипулирования ими, затем использую XMLSerializer для загрузки их обратно в строки и отправки их обратно на сервер, где они обрабатываются ( python и lxml) и повторно интегрированы в полный документ XML.
XML начинается и заканчивается в репозитории git. Я обнаружил, что атрибуты элементов, обрабатываемых XMLSerializer, меняются по порядку, в результате чего в моем хранилище появляются ложные изменения, например:
- <literal><token kind="w" id="en-us-esv-xeaugcbzgo">sent</token><token kind="s" id="en-us-esv-xeaugcbzgw"> </token></literal>
+ <literal><token id="en-us-esv-xeaugcbzgo" kind="w">sent</token><token id="en-us-esv-xeaugcbzgw" kind="s"> </token></literal>
Это не ошибка ни с одним из инструментов, которые я использую. Конечно, порядок атрибутов в элементе xml не должен иметь значения . Но, , поскольку git является линейно-ориентированным SCM, эти ложные и незначительные изменения будут отвлекать от реальных существенных изменений, которые я хочу отслеживать.
Вопрос: Есть ли способ удержать сериализатор от переупорядочения моих атрибутов? Альтернативно, существуют ли какие-либо инструменты для указания / ограничения порядка атрибутов?
Отредактировано выше для ясности: Мне известно, что, согласно Спецификации XML, "порядок спецификаций атрибутов в теге start-tag или empty-element не имеет значения": http://www.w3.org/TR/REC-xml/#sec-starttags. Достаточно сказать, что порядок атрибутов важен для меня . :)