我正在使用 DOM 解析器我正在尝试设置验证。根据 DOMBuilderFactory 的javadoc如果我将 setValidating 设置为 true 我无法理解它将验证什么?有人可以帮助我理解这一点吗?
javax.xml.parsers.DocumentBuilderFactory: factory.setValidating(true);
我正在使用 DOM 解析器我正在尝试设置验证。根据 DOMBuilderFactory 的javadoc如果我将 setValidating 设置为 true 我无法理解它将验证什么?有人可以帮助我理解这一点吗?
javax.xml.parsers.DocumentBuilderFactory: factory.setValidating(true);
它将根据给定的模式或 DTD 进行验证。
给定以下示例:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
<foo></foo>
</beans>
这是一个格式良好的 XML,如果您不将 validate 设置为 true,则将解析文档。
但是,如果您将 validate 设置为 true,则文档结构将针对
spring-beans-3.2.xsd
不允许该foo
元素的架构进行验证。在这种情况下,解析器(文档生成器)将抛出 a SAXParseException
。
XML 模式描述了文档中允许的元素和属性、数据类型、元素的顺序、出现次数等。例如,该模式允许bean
元素嵌套在内部beans
。