XML иногда меня смущает, но я пытаясь понять это. То, что мне говорит поставщик, не имеет смысла, но опять же, XML и я не ладим :)
У меня есть XML, который я отправляю в веб-службу поставщика, который выдает мне случайные сбои:
<root>
<Request>
<Driver id="1" VehId="1">...</Driver>
<Driver id="2" VehId="1">...</Driver>
<Driver id="3" VehId="2">...</Driver>
<Vehicle id="1">...</Vehicle>
<Vehicle id="2">...</Vehicle>
<Driver id="4" VehId="2">...</Driver>
</Request>
</root>
Не существует XSLT или XSD, с которыми можно было бы сравнивать, чтобы убедиться, что мой XML действителен.
Производитель заявляет, что XML недействителен, поскольку драйвер №4 находится в неправильной области. XPath для драйвера должен быть root / Request / Driver, а Vehicle - root / Request / Vehicle.
Часто ли парсеры XML принудительно устанавливают порядок элементов, особенно если нет XSD, с которым можно было бы сравнить XML? Служба поддержки продавца не спешит со мной, поэтому я хочу знать, что является хорошей общей практикой.
Followup
Я достаточно жаловался нашему представителю по работе с клиентами на то, что не могу это проверить (и сказал, что они просто пытались получить деньги на поддержку), что оказалось, что у разработчиков есть XSD, а у службы поддержки нет. Итак, я разговаривал не с той группой * facepalm *
. Я получил XSD, и он обеспечивает соблюдение определенного порядка элементов.
Теперь, чтобы бороться с ними за их собственный образец XML, не следует схеме, но, по крайней мере, теперь мне есть что проверить.