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 for Driver должен быть root/Request/Driver, а Vehicle - root/Request/Vehicle.
Общеизвестно, что синтаксические анализаторы XML будут вынуждать порядок элементов, особенно если XSD не сравнивает XML? Поддержка поставщиков медленно возвращается со мной, поэтому я хочу знать, какая хорошая практика.
Followup
Я достаточно пожаловался на репутацию нашего аккаунта о том, что не смог проверить это (и заставило его звучать так, как будто они просто пытались получить деньги на поддержку), что выясняется, что разработчики имеют XSD, но поддержка этого не делает. Поэтому я разговаривал с неправильной группой * facepalm *
Я получил XSD, и он применяет определенный порядок элементов.
Теперь, чтобы сразиться с ними по отношению к их собственному образцу, XML не следует схеме, но по крайней мере сейчас у меня есть что протестировать.