Недавно я имел дело с API, который требует, чтобы узлы XML-документа располагались в определенном порядке.Мне было интересно, почему они чувствуют необходимость обеспечить это, когда я не могу найти абсолютно никакой причины, почему все должно быть так.
Для примера, это будет правильно (xml значительно упрощено)
<transaction>
<address>1 main st</address>
<amount>100</amount>
<orderId>1234</orderId>
</transaction>
но это вернет ошибку
<transaction>
<address>1 main st</address>
<orderId>1234</orderId>
<amount>100</amount>
</transaction>
Сначала я подумал, что так можно будет хранить вещи в форме списка / массива и иметь индексы всегда ссылающиеся на один и тот же узел.Я понимаю, почему отправка узлов с одинаковым именем в том же порядке важна, как объяснено в этом вопросе .Однако некоторые узлы могут быть пропущены:
<transaction>
<amount>100</amount>
<orderId>1234</orderId>
</transaction>
Таким образом, в третьем примере, сумма и orderId теперь будут в [0] и [1], а не в [1] и [2] вПервый (правильный) пример.
Другая мысль состоит в том, что они обрабатывают XML как строку и требуют, чтобы они всегда знали, какие узлы идут после друг друга, но опять же, поскольку пропуск узлов разрешен, эта теория неимеет смысл.
Может кто-нибудь объяснить мне, почему порядок, в котором я даю ноды, имеет значение?Или я имею дело со старым и сварливым API?