天天看點

XML的驗證模式

XML檔案的驗證模式保證了XML檔案的正确性,而比較常用的驗證模式有兩種:DTD和XSD。

DTD(Document Type Definition)即文檔類型定義,是一種XML限制模式語言,是XML檔案的驗證機制,屬于XML檔案組成的一部分。DTD是一種保證XML文檔格式正确的有效方法,可以通過比較XML文檔和DTD檔案來看文檔是否符合規範,元素和标簽使用是否正确。

一個DTD文檔包含:元素的定義規則,元素間關系的定義規則,元素可使用的屬性,可使用的實體或符号規則。

要使用DTD驗證模式的時候需要在XML檔案的頭部聲明,以下是使用DTD聲明方式的代碼:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">

XML Schema語言就是XSD(XML Schemas Definition)。XML Schema描述了XML文檔的結構。可以用一個指定的XML Schema來驗證某個XML文檔,以檢查該XML文檔是否符合其要求。文檔設計者可以通過XML Schema指定一個XML文檔所允許的結構和内容,并可據此檢查一個XML文檔是否是有效的。XML Schema本身是一個XML文檔,它符合XML文法結構。可以用通用的XML解析器解析它。

在使用XML Schema文檔對XML執行個體文檔進行檢驗,除了要聲明名稱空間外(xmlns= http://www.springframework.org/schema/beans),還必須指定該名稱空間所對應的XML Schema文檔的存儲位置。通過schemaLocation屬性來指定名稱空間所對應的XML Schema文檔的存儲位置,它包含兩個部分,一部分是名稱空間的URI,另一部分就是該名稱空間所辨別的XML Schema檔案位置或URL位址(xsi:schemaLocation="http://www.springframework.org/schema/beans http://www. springframework.org/schema/beans/spring-beans.xsd)。