【发布时间】:2012-01-08 22:21:09
【问题描述】:
我正在构建一个主要使用 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 文件的。如果您有任何想法,请在此处发布您的答案。
【问题讨论】:
-
能否将您的无效文件发布到 gist 或其他 pastebin 中?
-
它没有什么特别之处。问题是轨迹点的子元素 ele 和时间顺序错误,GPX 架构不允许这样做
标签: xml parsing validation xsd gpx