XML有时会让我感到困惑,但我正试图解决这个问题.供应商告诉我的内容没有意义但是,我和XML并不相处:)
我有一些XML,我发送给供应商的Web服务,给我随机的失败:
<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>
Run Code Online (Sandbox Code Playgroud)
没有要比较的XSLT或XSD,以查看我的XML是否有效.
供应商声明XML无效,因为Driver#4位于错误的区域.驱动程序的XPath应该是root/Request/Driver,Vehicle是root/Request/Vehicle.
XML解析器是否会强制执行元素顺序,特别是如果没有XSD来比较XML?供应商对我的支持很慢,所以我想知道什么是好的常见做法.
跟进
我抱怨我们的帐户代表不能测试这个(并且听起来好像他们只是想获得支持资金),事实证明开发人员有XSD,但支持没有.所以我一直在和错误的小组交谈*facepalm*
我得到了XSD,它确实强制执行特定的元素顺序.
现在就他们自己的样本XML来对抗它们并不遵循模式,但至少现在我有一些东西需要测试.