SchemaValidate

說明

這個 schemavalidate 任務驗證由 XML 架構描述的 XML 檔案。此任務延伸 XmlValidate 任務,提供 XSD 特定的功能。

  1. 建立的剖析器會進行驗證,並具備命名空間感知功能。
  2. 已開啟驗證功能。
  3. 已開啟架構驗證功能。
  4. 任何提供的無命名空間架構 URL 或檔案都會用作無命名空間架構。
  5. 所有巢狀架構宣告都會轉換成架構查詢的命名空間 URL 繫結清單。

請注意,巢狀目錄仍會用於查詢提供為架構文件來源的 URL,因此您仍可將查詢委派給目錄,您只需列出所有架構 URI 及其對應的 URL 即可。

此任務支援使用巢狀

此任務僅支援 SAX2 或更新版本的剖析器:指定 SAX1 剖析器會產生錯誤。

參數

屬性 說明 必要
classname 要使用的剖析器。
classpathref 剖析器類別所在位置。選擇性地可以使用內嵌 <classpath> 元素。
disableDTD 停用 DTD 支援的旗標。DTD 支援是驗證 XSD 檔案本身等內容的必要條件。 否;預設為 false
failonerror 如果設為 true,則在發生錯誤時會失敗。 否;預設為 true
file 您要檢查的檔案(選擇性地使用內嵌檔案集)。
fullchecking 啟用完整架構檢查。速度較慢,但較嚴格。 否;預設為 true
lenient 如果為 true,則只檢查 XML 文件是否格式正確
noNamespaceFile 提供無命名空間 XML 內容架構的無命名空間 XSD 檔案檔名
noNamespaceURL 提供無命名空間 XML 內容架構的無命名空間 XSD 檔案 URL
warn 記錄剖析器警告事件

以巢狀元素指定參數

架構

識別可能用於驗證文件之架構的名稱和位置。

屬性 說明 必要
命名空間 架構命名空間的 URI
網址 架構的 URL 兩個中只有一個
file 架構檔案

DTD

<dtd> 用於指定 DTD 解析的不同位置。

屬性 說明 必要
公用識別碼 要解析的 DTD 的公用識別碼
位置 要使用的 DTD 的位置,可以是檔案、資源或 URL

xmlcatalog

<xmlcatalog> 元素用於執行實體解析。

屬性

<attribute> 元素用於設定剖析器功能。
可與 Xerces 剖析器一起使用的功能在此定義:設定功能
SAX 功能在此定義:http://xml.org/sax/features/

屬性 說明 必要
名稱 功能的名稱
功能的布林值

屬性

<property> 元素用於設定屬性。這些屬性在此定義,供 Xerces XML 剖析器實作使用:XML 剖析器屬性。屬性可用於設定用於驗證 XML 檔案的架構。

屬性 說明 必要
名稱 功能的名稱
屬性的字串值

範例

根據 XML 架構驗證文件。文件本身未宣告任何架構,因此需要 noNamespaceFile

<schemavalidate noNamespaceFile="document.xsd"
                file="xml/endpiece.xml"/>

宣告新的預設工作 <validate-soap>,根據相關規格驗證 XSD 和 WSDL 文件。若要驗證 XSD 文件,您還需要在與 XMLSchema.xsd 相同的目錄中提供 XMLSchema.dtddatatypes.dtd,或透過目錄指向這些檔案。所有這些檔案都可以從 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 架構文件。

<validate-soap file="xml/test.xsd"/>