使用Xerces-j验证XML文档
发布时间:2020-12-16 05:33:12 所属栏目:百科 来源:网络整理
导读:我正在尝试使用Xerces-J验证 XML文档. 我希望验证器获取并解析任何关联的XSD或DTD文件(使用schemalocation,nonamespaceschemalocationa和DOCTYPE引用).似乎可以将这些资源的加载委托给Resolver类. 然而,我见过的所有样本都是从模式创建验证器开始的. 是否有
我正在尝试使用Xerces-J验证
XML文档.
我希望验证器获取并解析任何关联的XSD或DTD文件(使用schemalocation,nonamespaceschemalocationa和DOCTYPE引用).似乎可以将这些资源的加载委托给Resolver类. 然而,我见过的所有样本都是从模式创建验证器开始的. 是否有可能以相反的方式驱动它,请求xerces验证XML文档,并让它加载它需要的东西,或者我必须首先解析XML文件寻找模式引用,加载它们,然后从模式创建验证器? 在理想的世界中,验证器也支持xsd 1.1
您在查找<!DOCTYPE声明或架构属性时提供了一个EntityResolver解析器.最常见的实体解析器使用目录文件,这些文件本质上是XML文件或文本文件,用于定义公共ID,系统ID和物理文件URI的字典.请参阅
org.apache.xml.resolver包.但您也可以提供自己的
EntityResolver实施.
CatalogResolver resolver = new CatalogResolver(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setValidating(true); dbf.setFeature("http://apache.org/xml/features/validation/dynamic",true); DocumentBuilder parser = dbf.newDocumentBuilder(); parser.setEntityResolver(resolver); Document doc = parser.parse(someFile); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |