С точки зрения действительности XML, это зависит от схемы, если таковая имеется, которая описывает правила форматирования XML.
Тем не менее, порядок должен быть сохранен (см. 2.1.1 в http://www.w3.org/TR/xml-infoset/), но является ли это "важным" для приложения, зависит от его автора.
Внутри схемы заказ может быть сделан неважным при использовании композитора xs:all
, хотя я не уверен, что это повлияет на сохранение захваченного порядка, то есть я бы все еще ожидал, что порядок в источнике / сериализации будет поддерживаться процессорами XML.
Однако в версии 1.0 этот композитор добавляет ограничение на дочерние элементы, так что они должны встречаться 0 или 1 раз. В XSD 1.1 это ограничение снято, что упрощает контрактное указание, что заказ не важен, фактически xs:all
стал неупорядоченной версией xs:sequence
.
Из-за чрезмерно ограничительного композитора 1.0 xs:all
пришлось использовать заказанный композитор xs:sequence
. Таким образом, порядок часто навязывался искусственно.
Принятие 1.1 поставщиками библиотек валидаторов происходит медленно.
Таким образом, API должны учитывать порядок при разработке с новыми элементами. Мне неизвестна какая-либо инфраструктура XML-сериализации, которая может работать с 1.1, и вы должны предположить, что ваши клиенты будут использовать 1.0 и проверять входящие сообщения 1.1 с правилами 1.0 и дросселем.
Люк