gpt4 book ai didi

xml - GPX Schema 验证问题

转载 作者:数据小太阳 更新时间:2023-10-29 02:31:50 28 4
gpt4 key购买 nike

我正在构建一个主要使用 GPX 文件作为输入数据的应用程序。鉴于 gpx 文件应该由 gpx 模式定义(如此处定义:http://www.topografix.com/gpx.asp)这一事实,我教给我的应用程序的第一件事是根据模式验证输入文件(轴承当然要注意不同的版本)。到目前为止,一切都很好。对于我测试的初始文件,一切都很完美。但是,有时我使用 .gpx 文件,结果证明这些文件对相关的 gpx 模式无效。所以,我试图用其他类似的工具导入它们,奇怪的是,没有返回错误,文件被完美地解析了。所以,最合乎逻辑的结论是我的代码有问题。但是,经过彻底调查,我的代码完全没问题,目前没有问题。 topografix.com (http://www.topografix.com/gpx_validation.asp) 推荐的验证技术甚至验证了这一点,并再次断定文件无效。

所以,原来有一些 GPS 设备/GPS 记录系统/等等。生成不符合官方 GPX 模式的 .gpx 文件。这个结论让我问这个问题:为什么?我真的不明白它背后的想法。此外,对于我发现的大多数无效文件,问题不是可以被视为附加功能的问题,而是类似于没有遵循某些我认为完全愚蠢的元素的子元素的正确顺序。

这让我想问你两个问题。首先,如果有人能向我解释为什么我在网上找到的许多 GPX 文件不符合官方 GPX 架构,我将非常高兴。其次想请教各位,如果要解析GPX文件,如何处理这个问题。毕竟,跟踪点无论如何都会在文件中,所以我是否只需忽略 XML 模式验证并继续直接解析?但话又说回来,如果有一个拼写错误的属性名称,我的系统就会崩溃。非常感谢您提供有关如何处理解析 GPS 文件的任何信息。

感谢您的宝贵时间和帮助。

问候,

彼得

编辑:我发布了一个新主题:GPX parsing patterns and "standards"我问的是人们实际上是如何在实践中解析 GPX 文件的。如果您有想法,请在此处发布您的答案。

最佳答案

架构作者选择使用 <xs:sequence>而不是 <xs:all> . XSD 序列是特定于订单的。

拼写错误的属性名称将是无效输入。您必须优雅地验证和失败。计算机不能很好地处理歧义。

希望对您有所帮助...

更新:

抱歉,请允许我详细说明。该问题是由架构作者和 GPX 输出作者(各种软件包和设备)创建的。

基本上,如果一个人可以查看一段数据并理解其含义,那么软件实现者就有责任创建灵活的验证,以便程序可用。

例如,假设您有一个输入字段,您应该输入一个美元金额,而用户输入“$.05”,该软件应该足够聪明,可以将其识别为 5 美分,并且可以识别前面有一个空格,没用。

这同样适用于来自设备的文件。是的,问题是他们造成的。是的,当对格式有一个非常好的严格定义时,必须将设备的输出视为用户输入是荒谬的。但这就是你目前面临的问题。归根结底,没有人关心您必须克服哪些技术挑战才能使其发挥作用。他们关心的只是“它有用吗”和“这对我有多大用处”。

因此,如果您发现字段顺序不正确,但所有必需的数据都存在,请重新排列字段以使其通过验证。使您的进口灵活。如果缺少间隙,请使用警告消息填充数据中的间隙。但是,让它发挥作用。

除了在针对 XSD 验证数据之前尝试处理数据外,您还可以做另一件事,如果您发现验证错误经常是由简单的字段顺序引起的(这是 XSD 中 xs 之间的常见误解) :sequence 和 xs:all), 是改变你的 XSD。将它从顺序切换到全部。你可以先试试官方的XSD。如果它通过了,那么您就不必验证更宽松的版本。

希望对你有帮助...

关于xml - GPX Schema 验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8313110/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com