DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> XML Schema全接觸(XML Schema和名域 )
XML Schema全接觸(XML Schema和名域 )
編輯:XML詳解     
XML Schema和名域

Schema是一些規則的集合(也稱為語法或者語匯),其中包括了類型定義(簡單和復雜類型)以及元素和屬性聲明。由於XML中可能存在不同的語匯來描述不同的元素和屬性,因此需要使用名域(namespace)和前綴來避免元素和屬性聲明之間的模糊性。當你使用來自多個名域的schema時,分清元素和屬性名稱是最基礎性的工作。

一個名域通常有一串字符串來相互區別,如 "urn:www.microsoft.com", "http://www.xml.org.cn", "http://www.w3c.org/2001/XMLSchema"以及 "uuid:1234567890"等。

XML Schema的序言

XML schema的開頭時是一些導言,之後才是正式的聲明。在schema 元素的導言中可能包含三個可選的屬性。

例如,下面的語法使用的schema元素引用了三個最常使用的名域:

xmlns="http://www.w3c.org/2001/XMLSchema" xmlns:xsd="http://www.w3c.org/2001/XMLSchema-datatypes" xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instances"
version"1.0">


前兩個屬性用XML名域來標識W3C中的兩個XML schema規范。第一個 xmlns屬性包含了基本的XML schema元素,比如element, attribute, complexType, group, simpleType等。第二個xmlns屬性定義了標准的XML schema屬性類型例如string, float, integer, 等。

缺省名域

對於任何一個XML Schema定義文檔(XSD)都有一個最頂層的schema (XSD)元素。而且該schema (XSD)元素定義必須包含下面的名域:

http://www.w3.org/2001/XMLSchema

作為名域的標識符(在聲明中作為元素或屬性的前綴),你也可以不使用xsd或xsi。

我們分別來觀察XSD和XML實例文檔中相關的名域。比如前面介紹student.xsd的序言是這樣的:



這裡的targetNamespace屬性表示了該shema所對應的名域的URI。也就是說在引用該Schema的其它文檔中要聲明名域,其URI應該是targetNamespace的屬性值。例如在這裡因為要用到student.xsd自己定義的擴展數據類型,所以也聲明的名域xmlns:sl="http://www.XML.org.cn/namespaces/StudentList"。

我們再來看由該schema規定的XML文檔的開頭將是什麼樣子:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.XML.org.cn/namespaces/StudentList student.xsd">

其中缺省名域聲明xmlns="http://www.xml.org.cn/namespaces/StudentList"就是和剛剛聲明的XML Schema的名域相結合來規定該XML文檔。xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 是任何XML實例文檔固有的名域,當然按照前面所說的名域名稱xsi是可以自己規定的。而xsi:schemaLocation="http://www.XML.org.cn/namespaces/StudentList student.xsd"則規定了該名域所對象的schema的位置,即在相同路徑的student.xsd文件。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved