我正在使用DOM解析器我正在尝试设置验证。如果我将setValidating设置为true,则访问DOMBuilderFactory的javadoc我无法理解它将验证什么?有人能帮我理解吗?< / p>
javax.xml.parsers.DocumentBuilderFactory: factory.setValidating(true);
答案 0 :(得分:1)
它将针对给定的架构或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
元素。在这种情况下,解析器(文档构建器)将抛出SAXParseException
。
XML模式描述了文档中允许的元素和属性,数据类型,元素顺序,出现次数等。例如,此模式允许嵌套在bean
内的beans
个元素。