GPX文件:匹配的通配符是严格的,但是没有声明可以找到元素

问题描述:

我正在处理GPX文件,我正在用Java解析它们。我正在使用javax.xml.validation.Validator来确保它们符合GPX模式。问题是,我的文件用一个结尾:GPX文件:匹配的通配符是严格的,但是没有声明可以找到元素

<TopoFusion:color>ff0000</TopoFusion:color> 
<TopoFusion:graph>0</TopoFusion:graph> 
</gpx> 

,这TopoFusion元素显然不是在GPX架构中定义,导致验证失败。但是,如果我要忽略此元素,该文件是有效的。任何想法如何克服这个问题?我想尽可能通用,不要简单忽略TopoFusion元素,因为它可以是任何东西。

希望我的问题很清楚。任何帮助都感激不尽。

问候,

斯托

+0

问题是什么?你有一个明显无效的文件(一个使用不属于gpx方案一部分的命名空间),你希望这个文件有效吗?那么,首先对模式进行验证的重点是什么? – Eddy

+0

谢谢艾迪。好点子。不幸的是,我没有非常明确地提出我的问题。事情是,使用Xerces SAXParser,该文件证明是有效的,我想知道我的程序有什么问题。但是,在对GPX模式进行调查之后,它允许将此特定元素存在于gpx文件中。我在现在修复的代码中存在一个错误。非常感谢您指引我朝着正确的方向发展。 – Petar

更彻底调查GPX模式后,我发现,在.GPX文件结束这两种元素被允许从GPX模式存在。所以,问题是我的验证方法存在问题,现在已经修复。