XML有时让我困惑,但我试图弄清楚这一点。供应商告诉我什么没有意义,但再次,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>
没有XSLT或XSD进行比较以查看我的XML是否有效。
供应商声明XML无效,因为驱动程序#4位于错误的区域。 Driver的XPath应该是root/Request/Driver,Vehicle是root/Request/Vehicle。
XML解析器是否会强制执行元素顺序很常见,特别是如果没有XSD来比较XML?供应商的支持对我而言很慢,所以我想知道通用的做法是什么。
跟进
我足够的抱怨我们的客户代表约不能够进行测试(并使其听起来像他们只是想获得支持资金),它原来,开发商拥有XSD ,但支持不。所以,我一直在谈论到错误组*捂脸*
我得到了XSD,它也执行元素特定的顺序。
我们打他们的问候自己的示例XML不遵循此模式,但至少现在我有话要测试的。
供应商应提供XSD或支持文档,详细说明软件对XML格式(包括元素顺序)所做的假设。否则,你必须猜测。读取XML文档的软件不应强制执行命令(如果可能),但这种情况并不少见。 XSD *是*明确定义交换格式规则的文档。另见http://kettle.pentaho.com/。 – 2010-12-01 20:56:04