選單

Schema約束是什麼?XML Schema有什麼特點?

同DTD一樣,XML Schema也是一種用於定義和描述XML文件結構與內容的模式語言,它的出現克服了DTD 的侷限性。接下來,透過XML Schema與DTD的比較,將XML Schema所具有的一些顯著優點進行列舉,具體如下:

1、DTD採用的是非XML語法格式,缺乏對文件結構、元素、資料型別等全面的描述。而XML Schema採用的是XML語法格式,而且它本身也是一種XML文件,因此,XML Schema語法格式比DTD更好理解。

2、XML有非常高的合法性要求,雖然DTD和XML Schema都用於對XML文件進行描述,都被用作驗證XML合法性的基礎。但是,DTD本身合法性的驗證必須採用另外一套機制,而XML Schema則採用與XML文件相同的合法性驗證機制。

3、XML Schema對名稱空間支援得非常好,而DTD幾乎不支援名稱空間。

4、DTD支援的資料型別非常有限。例如,DTD可以指定元素中必須包含字元文字(PCDATA),但無法指定元素中必須包含非負整數(nonNegativeInteger),而XML Schema比XML DTD支援更多的資料型別,包括使用者自定義的資料型別。

5、DTD定義約束的能力非常有限,無法對XML例項文件作出更細緻的語義限制,例如,無法很好地指定一個元素中的某個子元素必須出現7到12次;而XML Schema定義約束的能力非常強大,可以對XML例項文件作出細緻的語義限制。

透過上面的比較可以發現,XML Schema的功能比DTD強大很多,但相應的語法也比DTD複雜很多,你學會了嗎?