加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读