教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Schema約束的優(yōu)勢是什么?

更新時間:2020年12月29日15時26分 來源:傳智教育 瀏覽次數(shù):

Schema約束

同DTD一樣,XML Schema也是一種用于定義和描述XML文檔結(jié)構(gòu)與內(nèi)容的模式語言,它的出現(xiàn)克服了DTD 的局限性。接下來,通過XML Schema與DTD的比較,將XML Schema所具有的一些顯著優(yōu)點進行列舉,具體如下:

1、DTD采用的是非XML語法格式,缺乏對文檔結(jié)構(gòu)、元素、數(shù)據(jù)類型等全面的描述。而XML Schema采用的是XML語法格式,而且它本身也是一種XML文檔,因此,XML Schema語法格式比DTD更好理解。

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

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

4、DTD支持的數(shù)據(jù)類型非常有限。例如,DTD可以指定元素中必須包含字符文本(PCDATA),但無法指定元素中必須包含非負整數(shù)(nonNegativeInteger),而XML Schema比XML DTD支持更多的數(shù)據(jù)類型,包括用戶自定義的數(shù)據(jù)類型。

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

通過上面的比較可以發(fā)現(xiàn),XML Schema的功能比DTD強大很多,但相應(yīng)的語法也比DTD復(fù)雜很多,接下來,看一個簡單的Schema文檔,如下面案例所示。

<?xml version=”1.0”?>
<xs:schema xmlns:xs=”http://www.w3.org/2001/XMLSchema”>
   <xs:element name=”root”  type=”xs:string”/>
</xs:schema>

在上面案例中,第1行是文檔聲明,第2行中以xs:schema作為根元素,表示模式定義的開始。由于根元素xs:schema 的屬性都在http://www.w3.org/2001/XMLSchema名稱空間中,因此,在根元素上必須聲明該名稱空間。


猜你喜歡:

JVM對Java的原生鎖做了哪些優(yōu)化?

單體架構(gòu)是什么?

Ribbon工作原理詳細介紹

傳智教育Java培訓(xùn)課程

0 分享到:
和我們在線交談!