xml我們並不陌生,在企業級應用中有很廣的用途。具體就不再說,下面介紹一下dtd,xsd的區別並以xsd為例看spring中定義與使用。
1.dtd(documnet type definition)
dtd即文件型別定義,是一種xml約束模式語言,是xml檔案的驗證機制,屬於xml檔案組成的一部分。
dtd 是一種保證xml文件格式正確的有效方法,可以通過比較xml文件和dtd檔案來看文件是否符合規範,元素和標籤使用是否正確。 乙個 dtd文件包含:元素的定義規則,元素間關係的定義規則,元素可使用的屬性,可使用的實體或符號規則。
dtd和xsd相比:dtd 是使用非 xml 語法編寫的。
dtd 不可擴充套件,不支援命名空間,只提供非常有限的資料型別 .
2.xsd(xml schemas definition)
xml schema語言也就是xsd。xml schema描述了xml文件的結構。
可以用乙個指定的xml schema來驗證某個xml文件,以檢查該xml文件是否符合其要求。文件設計者可以通過xml schema指定乙個xml文件所允許的結構和內容,並可據此檢查乙個xml文件是否是有效的。xml schema本身是乙個xml文件,它符合xml語法結構。可以用通用的xml解析器解析它。
乙個xml schema會定義:文件中出現的元素、文件中出現的屬性、子元素、子元素的數量、子元素的順序、元素是否為空、元素和屬性的資料型別、元素或屬性的預設 和固定值。
xsd是dtd替代者的原因,一是據將來的條件可擴充套件,二是比dtd豐富和有用,三是用xml書寫,四是支援資料型別,五是支援命名空間。
xml schema的優點:
1) xml schema基於xml,沒有專門的語法
2) xml schema可以象其他xml檔案一樣解析和處理
3) xml schema比dtd提供了更豐富的資料型別.
4) xml schema提供可擴充的資料模型。
5) xml schema支援綜合命名空間
6) xml schema支援屬性組。
3.spring中spring-beans-2.5.xsd
<?xml version="1.0" encoding="utf-8" standalone="no"?>
""
xmlns:xsd=""
targetnamespace="">
"identifiedtype" abstract="true">
"id" type="xsd:id">
(1)schema元素為所有xml schema模式文件的根元素,它用於宣告該xml文件是乙個xml schema文件。該模式文件本身也乙個xml文件,自己的命名空間為xmlns:xsd="",其中xsd為其字首。
(2)schema中targetnamespace定義了schema定義出的新元素與屬性的命名空間。也就是它是對所定義的xml模型進行限制:限制定義出的元素,或者屬性的命名空間.
4.spring中配置檔案對xsd檔案的使用
""
xmlns:xsi="-instance"
xsi:schemalocation=" /spring-beans-2.5.xsd>
在使用xml schema 文件對xml例項文件進行檢驗,除了要宣告命名空間外(xmlns=""),還必須指定該命名空間所對應的xml schema文件的儲存位置.
通過schemalocation屬性來指定命名空間所對應的xml schema文件的儲存位置,它包含兩個部分,一部分是命名空間的uri,第二部分就是該命名空間所標識的xml schema檔案位置或url位址
(xsi:schemalocation=" /spring-beans-2.5.xsd)
XML中DTD,XSD的區別與應用
xml我們並不陌生,在企業級應用中有很廣的用途。具體就不再說,下面介紹一下dtd,xsd的區別並以xsd為例看spring中定義與使用。1.dtd documnet type definition dtd即文件型別定義,是一種xml約束模式語言,是xml檔案的驗證機制,屬於xml檔案組成的一部分。d...
XML中DTD,XSD的區別與應用
xml我們並不陌生,在企業級應用中有很廣的用途。具體就不再說,下面介紹一下dtd,xsd的區別並以xsd為例看spring中定義與使用。b size large 1.dtd documnet type definition size b dtd即文件型別定義,是一種xml約束模式語言,是xml檔案的...
xml中Element與Node區別
element是node的子集,xmlnode表示乙個節點,包括xmlelement 元素 和xmlattribute 屬性 等。如 node node stringvalue node node node 以上alarm 元素節點 lock 屬性節點 time 元素節點 stringvalue 文...