此 schemavalidate
任务使用 XML Schema 验证 XML 文件。该任务扩展了 XmlValidate
任务,并添加了 XSD 特定功能。
请注意,嵌套目录仍用于查找作为 Schema 文档来源提供的 URL,因此您仍然可以将查找委托给目录,您只需要列出所有 Schema URI 及其 URL 等效项。
此任务支持使用嵌套的
<xmlcatalog>
元素<schema>
元素,将命名空间 URI 绑定到 URL 或本地文件名。<dtd>
元素,用于解析 DTD 和实体。<attribute>
元素,用于在解析器上设置功能。这些可以是任何数量的 http://xml.org/sax/features/
或您的解析器可能支持的其他功能。<property>
元素,包含字符串属性该任务仅支持 SAX2 或更高版本的解析器:指定 SAX1 解析器将导致错误。
属性 | 描述 | 必需 |
---|---|---|
classname | 要使用的解析器。 | 否 |
classpathref | 在何处查找解析器类。可以选择使用嵌入的 <classpath> 元素。 |
否 |
disableDTD | 禁用 DTD 支持的标志。DTD 支持是验证 XSD 文件本身(以及其他文件)所必需的。 | 否;默认值 false |
failonerror | 如果设置为 true,则在发生错误时失败。 |
否;默认为 true |
file | 要检查的文件(可以选择使用嵌入的文件集)。 | 否 |
fullchecking | 启用完整的 Schema 检查。速度慢但严格。 | 否;默认值 true |
lenient | 如果为 true,则仅检查 XML 文档是否格式良好。 |
否 |
noNamespaceFile | 无命名空间 XSD 文件的文件名,用于为无命名空间 XML 内容提供 Schema。 | 否 |
noNamespaceURL | 无命名空间 XSD 文件的 URL,用于为无命名空间 XML 内容提供 Schema。 | 否 |
warn | 记录解析器警告事件。 | 否 |
标识在验证文档时可能使用的 Schema 的名称和位置。
属性 | 描述 | 必需 |
---|---|---|
namespace | Schema 命名空间的 URI | 是 |
url | Schema 的 URL | 两者之一 |
file | Schema 的文件 |
<dtd>
用于指定 DTD 解析的不同位置。
属性 | 描述 | 必需 |
---|---|---|
publicId | 要解析的 DTD 的公共 ID | 是 |
location | 要使用的 DTD 的位置,可以是文件、资源或 URL | 是 |
<xmlcatalog>
元素用于执行实体解析。
<attribute>
元素用于设置解析器功能。
此处定义了可与 Xerces 解析器一起使用的功能:设置功能
此处定义了 SAX 功能:http://xml.org/sax/features/
属性 | 描述 | 必需 |
---|---|---|
name | 功能的名称 | 是 |
value | 功能的布尔值 | 是 |
<property>
元素用于设置属性。这些属性在 Xerces XML 解析器实现中定义:XML 解析器属性。属性可用于设置用于验证 XML 文件的 Schema。
属性 | 描述 | 必需 |
---|---|---|
name | 功能的名称 | 是 |
value | 属性的字符串值 | 是 |
根据 XML Schema 验证文档。该文档本身没有声明任何 Schema,这就是为什么需要 noNamespaceFile 的原因。
<schemavalidate noNamespaceFile="document.xsd" file="xml/endpiece.xml"/>
声明一个新的预设任务 <validate-soap>
,它根据相关规范验证 XSD 和 WSDL 文档。要验证 XSD 文档,您还需要 XMLSchema.dtd 和 datatypes.dtd 与 XMLSchema.xsd 位于同一目录中,或者通过目录指向它们。所有这些文件都可以从 W3C 获取。
<presetdef name="validate-soap"> <schemavalidate> <schema namespace="http://schemas.xmlsoap.org/ws/2003/03/addressing" file="${soap.dir}/ws-addressing.xsd"/> <schema namespace="http://www.w3.org/2003/05/soap-envelope" file="${soap.dir}/soap12.xsd"/> <schema namespace="http://schemas.xmlsoap.org/wsdl/" file="${soap.dir}/wsdl.xsd"/> <schema namespace="http://www.w3.org/2001/XMLSchema" file="${soap.dir}/XMLSchema.xsd"/> </schemavalidate> </presetdef>
使用上面定义的预设任务验证 XML Schema 文档。
<validate-soap file="xml/test.xsd"/>