一、概述
xmlvalidate是Ant内置任务,用于检查XML文件是否有效或格式良好。此任务默认使用JAXP提供的SAX2分析器实现,如果需要可以指定任何SAX1/2分析器。默认情况下,JAXP创建一个非命名空间感知的分析器,ant使用的JAXP实现将“http://xml.org/sax/features/namespaces”默认设置为false,如果要验证包含命名空间的文档,可以通过嵌套元素attribute显示的将属性设置为true:<attribute name="http://xml.org/sax/features/namespaces" value="true"/>。
二、属性
file:要检查的文件,可以通过嵌套文件集来指定。
lenient:如果为true,只检查XML文档格式是否良好,如果分析器为SAX1则忽略此属性。
classname:使用的分析器。
classpathref:类路径的引用,可以通过嵌套classpath元素来指定。
failonerror:如果为true,发成错误时构建失败,默认为true。
warn:记录解析器警告事件。
支持的嵌套元素:
dtd:指定要解析的DTD的位置,具有以下属性:
publicid:要解析的DTD的公共ID。
location:使用的DTD的位置,可以是文件、资源或url。
xmlcatalog:用于指定实体解析,具体参考xmlcatalog。
attribute:用于设置分析器功能,xerces分析器可用的功能参考features,SAX解析器可用功能参考features。具有以下属性:
name:功能名。
value:布尔值。
property:用于设置属性,xerces分析器实现属性定义参考properties,属性可以用于验证XML文件。具有以下属性:
name:属性名。
value:字符串值。
三、简单示例
<project>
<xmlvalidate failοnerrοr="no" lenient="yes" warn="yes" >
<fileset dir="src" includes="*"/>
</xmlvalidate>
</project>