我的代码是创建一个XML文档(使用JDOM 1.1),我希望根据XSD文件进行验证 . 但是,根据http://www.w3.org/TR/xmlschema-1/#schema-loc,提供给解析器的 schemaLocation
属性似乎只适用于可访问的URL .
有没有办法引用本地XSD文件?是否针对不可能在全球范围内进行的XSD进行验证?我不明白......
我的代码是创建一个XML文档(使用JDOM 1.1),我希望根据XSD文件进行验证 . 但是,根据http://www.w3.org/TR/xmlschema-1/#schema-loc,提供给解析器的 schemaLocation
属性似乎只适用于可访问的URL .
有没有办法引用本地XSD文件?是否针对不可能在全球范围内进行的XSD进行验证?我不明白......
2 回答
首先,schemaLocation属性只是指定模式位置的一种方式,在许多情况下它不是最好的方法(如果你不相信文档有效,为什么你会相信它告诉你它的模式在哪里是什么?) . 大多数模式验证器可能提供在外部提供模式位置的选项,例如在命令行上或通过API或GUI .
其次,schemaLocation是一个URI . 因此它可以是相对URL,例如“test.xsd”标识与源文档位于同一目录中的模式文档 .
我强烈建议您升级到JDOM 2.0.5 . JDOM2中用于Schema验证的机制更容易理解和实现 . 考虑一下这段代码(拍摄from the JDOM2 package documentation (near the bottom)):