首页 文章

根据本地XML模式验证XML结构

提问于
浏览
0

我的代码是创建一个XML文档(使用JDOM 1.1),我希望根据XSD文件进行验证 . 但是,根据http://www.w3.org/TR/xmlschema-1/#schema-loc,提供给解析器的 schemaLocation 属性似乎只适用于可访问的URL .

有没有办法引用本地XSD文件?是否针对不可能在全球范围内进行的XSD进行验证?我不明白......

2 回答

  • 0

    首先,schemaLocation属性只是指定模式位置的一种方式,在许多情况下它不是最好的方法(如果你不相信文档有效,为什么你会相信它告诉你它的模式在哪里是什么?) . 大多数模式验证器可能提供在外部提供模式位置的选项,例如在命令行上或通过API或GUI .

    其次,schemaLocation是一个URI . 因此它可以是相对URL,例如“test.xsd”标识与源文档位于同一目录中的模式文档 .

  • 1

    我强烈建议您升级到JDOM 2.0.5 . JDOM2中用于Schema验证的机制更容易理解和实现 . 考虑一下这段代码(拍摄from the JDOM2 package documentation (near the bottom)):

    File xsdfile = new File("myschema.xsd");
     XMLReaderJDOMFactory factory = new XMLReaderXSDFactory(xsdfile);
     SAXBuilder sb = new SAXBuilder(factory);
     Document doc = sb.build(new File("file.xml"));
    

相关问题