gpt4 book ai didi

xml - 使用 Xerces-j 验证 XML 文档

转载 作者:数据小太阳 更新时间:2023-10-29 01:58:05 24 4
gpt4 key购买 nike

我正在尝试使用 Xerces-J 验证 XML 文档。

我希望验证器获取并解析任何关联的 XSD 或 DTD 文件(使用模式定位、非命名空间模式定位和 DOCTYPE 引用)。似乎可以将这些资源的加载委托(delegate)给 Resolver 类。

然而,我看到的所有示例都是从模式创建验证器开始的。

是否有可能以相反的方式驱动它,要求 xerces 验证 XML 文档,并让它加载它需要的内容,或者我必须首先解析 XML 文件以查找模式引用,加载它们,然后创建一个验证器来自模式?

在理想情况下,验证器也将支持 xsd 1.1

最佳答案

您为解析器提供 EntityResolver,以便在查找 <!DOCTYPE 声明或架构属性时使用。最常见的实体解析器使用目录文件,这些文件本质上是 XML 文件或文本文件,用于定义物理文件的公共(public) 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);

关于xml - 使用 Xerces-j 验证 XML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16238880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com