XML Schema
XML Schema是針對XML所發展的新一代驗證機制, 其主要的目的是在取代DTD。 XML Schema或稱為XSD(XML Schema Definition)原 本是微軟提出的規格,在2001年5月成為W3C的建 議規格。
XML Schema不像DTD擁有自己的定義語法,它本身 就是一份良好格式的XML文件。
XML Schema支援更多XML元素的「資料型態」(Data types),可以定義各種XML元素的資料型態。
XML Schema支援名稱空間,但是DTD不支援,所以 XML Schema比DTD擁有更大的擴充性。
XML Schema
XML Schema擁有擴充性:XML Schema是一份XML 文件,可以重複使用其它的XML Schema、建立自 已的資料型態和同時使用多份XML Schema文件驗 證XML文件。
XML Schema使用XML語法
XML Schema支援資料型態:可以如同資料庫一般, 詳細描述文件內容各元素的資料,並且在不同的 元素間輕鬆的轉換資料。 XML Schema建立保密的資料通訊:XML Schema可 以詳細描述傳送XML文件的元素資料,只讓接收 者知道是什麼資料
XML Schema的基本架構
XML Schema文件的基本架構是一份XML文件,其 根元素為schema,如下所示:
……..
上述文件架構使用XML Schema基礎名稱空間的字 頭xs,其預設使用的的W3C的名稱空間
XML Schema的基本架構
在元素schema間的子元素是定義Instance文件的 XML元素,常用的Schema元素,如下表所示:
說明 XML Schema 文件的根元素 宣告 XML 元素 使用者自己定義的資料型態 宣告 XML 元素的子元素 宣告元素的屬性
元素 schema element simpleType complexType attribute
使用XML Schema
通常將XML Schema獨立儲存成Schema文件檔案, 副檔名為.xsd,在XML的Instance文件指定使用的 Schema檔案。
在XML文件的根元素指定XML文件使用的XML Schema,xsi為Instance的XML文件預設使用的名稱 空間,這也是W3C的名稱空間,如下所示: http://www.w3.org/2001/XMLSchema-instance
使用XML Schema
01: 02: 03: 05: 06: F8915 07: ASP網頁製作徹底研究 08: 09: 陳會安 10: 11: 580 12: 13: 14: F8916 15: ASP與IIS4/5網站架設徹底研究 16: 17: 陳會安 18: 19: 550 20: 21:
使用XML Schema
01: 02: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17:
使用XML Schema
18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
XML Schema內建的資料型態
XML Schema支援內建的資料型態,能夠直接定義 XML元素或屬性內容
上述element和attribute標籤的type屬性使用的屬 於內建的資料型態decimal和string,可以定義XML 元素price和屬性lang內容的資料型態。
自訂資料型態simpleType元素
若XML Schema內建的資料型態仍不符合使用者的 需求時,可使用simpleType元素自訂所需的資料 型態
所使用的內建資料型態稱為「基底」(Base)資料型 態,由從這個資料型態衍生出自訂的資料型態。 使用restriction子元素宣告使用的基底資料型態 ……
自訂資料型態simpleType元素
restriction元素的子元素facets_element是描述資料 型態的細節限制,例如:長度、範圍和列舉清單 等
元素 minInclusive maxInclusive minExclusive maxExclusive length minLength maxLength pattern enumeration totalDigits 說明 內容值範圍的最小,且包含此值,也就是<= 內容值範圍的最大,且包含此值,也就是>= 內容值範圍的最小,但不包含此值,也就是< 內容值範圍的最大,但不包含此值,也就是> 元素內容的長度 元素內容的最小長度 元素內容的最大長度 正規語言的元素內容 元素內容為此元素中選一的清單 指定最大數字的位數
自訂資料型態simpleType元素
定義數字的範圍 -使用simpleType元素定義一個範
定義列舉的元素內容 -元素內容為列舉清單的其中 之一
自訂資料型態simpleType元素
字串長度與正規語言(Regular Expressions)
元素值為字串,可以使用length、minLength和 maxLength元素定義字串的長度 可以使用pattern定義字串比對的正規語言的範本字 串
XML元素宣告
name屬性:此為XML元素名稱。 type屬性:XML元素內容的資料型態,可以使用內 建資料型態、simpleType和complexType元素宣告的 資料型態。 minOccurs屬性:元素最少出現的次數。 maxOccurs屬性:元素最大出現的次數,值 unbounded表示無限次數。
minOccurs 0 1 0 1 maxOccurs 1 1 unbounded unbounded 說明 零或壹,相當於 DTD 的「?」 出現一次 零或無限,相當於 DTD 的「*」 壹或無限,相當於 DTD 的「+」
XML文件架構的complexType元素
complexType元素可以宣告子元素或屬性的名稱和 資料型態
name屬性:此為資料型態的名稱。 mixed屬性:說明此元素的內容為何,預設值false 表示只宣告XML元素,值true表示宣告XML元素和文 字內容
XML文件架構的complexType元素
all任易順序排列元素:all元素宣告XML子元素可 以使用任易順序出現 sequence順序元素:sequence元素可以宣告XML子 元素出現的順序
XML文件架構的complexType元素
choice選項元素:指定為選項元素的XML元素 group群組元素:將基本的XML元素結合成為一個 group元素
宣告XML元素的屬性
在宣告complexType元素或element元素時,同時 宣告元素的屬性,使用的是attribute元素
…….
attributeGroup元素
XML屬性一樣也可以使用attributeGroup元素建立 群組屬性
可以在宣告XML元素book時,直接套用群組屬性
個人履歷表的XML Schema
01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18:
個人履歷表的XML Schema
19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
個人履歷表的XML Schema
35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 33: 34:
XML Schema基礎名稱空間
在XML Schema建議規格擁有兩個基礎名稱空間, 第一個是用在Schema文件的Schema URI,如下所 示:
http://www.w3.org/2001/XMLSchema
上述名稱空間是用在Schema文件,通常我們使用 名稱空間字頭xs,至於Instance的XML文件則是使 用Instance URI,如下所示:
http://www.w3.org/2001/XMLSchema-instance
上述名稱空間是用在Instance的XML文件,通常使 用名稱空間字頭xsi。