XML Schema和名域 命名空間

2021-04-18 11:16:35 字數 2104 閱讀 8561

xml schema和名域(命名空間)

xml schema和名域 schema 是一些規則的集合(也稱為語法或者語彙),其中包括了型別定義(簡單和複雜型別)以及元素和屬性宣告。由於xml中可能存在不同的語彙來描述不同的元素和屬性,因此需要使用名域(namespace)和字首來避免元素和屬性宣告之間的模糊性。當你使用來自多個名域的schema時,分清元素和屬性名稱是最基礎性的工作。 乙個名域通常有一串字串來相互區別,如 "urn:www.microsoft.com", "

"以及 "uuid:1234567890"等。 xml schema的序言 xml schema的開頭時是一些導言,之後才是正式的宣告。在schema 元素的導言中可能包含三個可選的屬性。 例如,下面的語法使用的schema元素引用了三個最常使用的名域: http://www.w3c.org/2001/xmlschema

" version"1.0"> 前兩個屬性用xml名域來標識w3c中的兩個xml schema規範。第乙個 xmlns屬性包含了基本的xml schema元素,比如element, attribute, complextype, group, ******type等。第二個xmlns屬性定義了標準的xml schema屬性型別例如string, float, integer, 等。 預設名域 對於任何乙個xml schema定義文件(xsd)都有乙個最頂層的schema (xsd)元素。而且該schema (xsd)元素定義必須包含下面的名域:

作為名域的識別符號(在宣告中作為元素或屬性的字首),你也可以不使用xsd或xsi。

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

" xmlns:sl="

" targetnamespace="

">

這裡的targetnamespace屬性表示了該shema所對應的名域的uri。也就是說在引用該schema的其它文件中要宣告名域,其uri應該是 targetnamespace的屬性值。例如在這裡因為要用到student.xsd自己定義的擴充套件資料型別,所以也宣告的名域xmlns:sl= "

"。我們再來看由該schema規定的xml文件的開頭將是什麼樣子:

其中預設名域宣告xmlns="

"就是和剛剛宣告的xml schema的名域相結合來規定該xml文件。xmlns:xsi="

- instance" 是任何xml例項文件固有的名域,當然按照前面所說的名網域名稱稱xsi是可以自己規定的。而xsi:schemalocation="http: //www.xml.org.cn/namespaces/studentlist student.xsd"則規定了該名域所物件的schema的位置,即在相同路徑的student.xsd檔案。

命名空間和XML Schema

namespace 命名空間是一組保持唯一的名稱。例如,可以將乙個公司所有人的姓名視為乙個命名空間。命名空間就是在邏輯上相關的任何一組名稱,而且每個名稱都必須唯一。lvqi pingdu reminder dont forget eat grass 預設命名空間 lvqi pingdu remind...

命名空間和作用域

1 命名空間查詢順序 假設我們要使用變數 runoob,則 python 的查詢順序為 直譯器會從命名空間中查詢runoob,它先從區域性空間查詢,如果找到了它就會使用區域性命名空間的變數runoob,即使全域性命名空間也有變數runoob。這就很容易理解為什麼在函式內部宣告的區域性變數會覆蓋掉在模...

命名空間和作用域

命名空間是對棧區的劃分,存放名字的地方.有了命名空間之後,就可以在棧區中存放相同的名字 存放的名字 存放的python直譯器內建的名字 存活週期 python直譯器啟動則產生,python直譯器關閉則銷毀 print input 存放的名字 只要不是函式內定義 也不是內建的,剩下的都是全域性命名空間...