1. 程式人生 > >XML中的Schema與DTD

XML中的Schema與DTD

DTD和Schema兩者都是對XML文件做進一步的限制。

DTD的概念

DTD的作用是定義XML的合法構建模組,它使用一系列的合法元素來定義文件結構。

作用:

1、定義XML文件的結構

2、為XML文件提供語法與規則

3.、內容既可以定義在XML文件之內,也可以定義在XML文件之外

4、DTD對於XML是可選的內容

5、一個XML只能有一個相對應的DTD

Schema的概念

Schema是對XML文件結構的定義和描述,其主要的作用是用來約束XML檔案,並驗證XML檔案有效性,也稱為XSD。

作用:

1、描述XML文件的結構

2、是基於XML的DTD的替代者

3、保護資料通訊

4、是可擴充套件的,因為它是由XML編寫,並且在相同的文件中可以引用多重的Shema

二者比較

1、Schema本身也是XML文件,DTD定義跟XML沒有什麼關係,Schema在理解和實際應用有很多的好處。

2、DTD文件的結構是“平鋪型”的,如果定義複雜的XML文件,很難把握各元素之間的巢狀關係;Schema文件結構性強,各元素之間的巢狀關係非常直觀。

3、DTD只能指定元素含有文字,不能定義元素文字的具體型別,如字元型、整型、日期型、自定義型別等。Schema在這方面比DTD強大。

4、Schema支援元素節點順序的描述,DTD沒有提供無序情況的描述,要定義無序必需窮舉排列的所有情況。Schema可以利用xs:all來表示無序的情況。

5、對名稱空間的支援。DTD無法利用XML的名稱空間,Schema很好滿足名稱空間。並且,Schema還提供了include和import兩種引用名稱空間的方法。

6、Schema是XML文件,而DTD有自己的特殊語法這樣,只需要懂得XML的語法規則就可以編寫Schema,無須學習其他的語法規則;XML檔案與XMLSchema檔案可以用相同的解析器進行解析,無須兩套解析器;XML Schema有強大、易用的擴充套件性。

綜述

XML Schema較DTD有更多優勢,更強大,所以儘量把XML Schema作為首選為佳。