在乙個特定的
xml應用中,往往需要用到不止乙個
xml架構資訊來定義多個
xml資料的格式。如何管理好這些
xml架構就是非常現實的問題。
通常這些
xml架構都是可以分類管理的,以用於不同的應用目的。令人高興的是
sql server 2005
針對這種情況,提供了
xml架構集合物件來管理不同類的
xml架構資料。 在
sql server 2005
內部架構集合是乙個類似於資料表的實體。因此可以建立、修改、刪除
xml架構集合。既管理
xml架構集合。
下面將詳細介紹如何實現對
xml架構集合的管理。
建立乙個
xml架構集合可以使用
t-sql
語句。語法是
create xml schema collection [ . ]sql_identifier as expression
語法中relational_schema
是乙個可有可無的關係架構限定識別符號。關於這個識別符號的詳細資訊請參看本書前面的相關章節。
sql_identifier
要求乙個合法的
sql server
識別符號,用於表示新建立的架構集合的名稱。
expression
部分就需要乙個比較完整的
xml架構資料了。
下面看乙個實際建立
xml架構集合的例子。
create xml schema collection myxmlschemaas'
'通常乙個
xml架構集合,在使用一段時間後都需要進行新增新的
xml架構資料,以適應快速變化的商務需求。這就要求能夠修改已建立的
xml架構集合的資料。
具體的修改乙個架構集合的語法如下所示:
alter xml schema collection [.]sql_identifier add 'schema component'
語法中的元素要求與建立
xml架構中的類似。需要注意的是此處
sql_identifier
所代表的
xml架構集合是必須已存在的
xml架構集合的名稱。
下面的例子展示了如何向乙個已存在的
xml架構集合中新增乙個新的
xml架構資料。
alter xml schema collection myxmlschema
add'
'到這裡如何修改乙個
xml架構集合就介紹完了。這裡需要特別注意的是,不像其他物件的
t-sql
語句,比如修改表的語句那樣,
xml架構集合修改語句是不存在
delete
、或子alter
語句的。這說明只能向已存在的
xml架構集合中新增新的
xml架構資料,而無法刪除或修改其中任何乙個
xml架構資料。
最後來看看如何刪除乙個已存在的
xml架構集合。刪除
xml架構集合的語法如下:
drop xml schema collection [ relational_schema. ]sql_identifier
語法中的元素含義已明確不再贅述。
下面的例子展示了如何刪除乙個
xml架構集合。
drop xml schema collection myxmlschema
知道了如何定義
xml架構,以及
xml架構集合,那麼型別化和非型別化
xml就好理解了。
所謂的型別化
xml資料,就是指在定義時繫結了某一已定義的
xml架構集合的
xml資料。比如型別化的
xml變數、型別化的
xml列、型別化的
xml引數等。下面的例子詳細的展示了如何使用型別化的
xml資料。 --
定義乙個
xml架構集合
create xml schema collection myxmlschemaas'
'go--定義乙個繫結到架構
myxmlschema
架構集合的
xml變數
declare @myxml as xml(myxmlschema)
--賦予結構正確的
xml資料
set @myxml =
'**號碼大全 '
--賦予不是
myxmlschema
指定格式的
xml資料, --
雖然xml
資料是正確的
,但因為不符合定義,此時
sql server
會報錯
set @myxml ='張三
'在上面的例子中
xml型別在定義時後面跟了乙個括號,括號中指定了要繫結到的
xml架構的名字。這就是型別化
xml資料的使用方法。可以繼續使用這一方法去定義型別化的
xml列以及型別化的
xml引數等。此處不在一一舉例,讀者可以自己新建查詢進行驗證。
在sql server 2005
中提供了可以檢視
xml架構集合的方法。下面的查詢可以用來檢視當前資料庫中有多少個已定義的
xml架構集合。
select * from sys.xml_schema_collections
這個查詢會返回當前庫中所有
xml架構集合在內的乙個完整結果。其中包括系統預定義的
xml架構集合。
如果要檢視某個
xml架構集合的詳細定義,可以使用下面的系統函式。
select xml_schema_namespace(n'',n'myxmltype')
說明:此函式中第乙個引數是
xml架構集合所屬的
sql server
架構的名稱。沒有指定時只需傳遞空字串。第二引數就是想要檢視的
xml架構集合的名稱。
4XML 元素和屬性
1xml元素 xml 元素指的是從 且包括 開始標籤直到 且包括 結束標籤的部分。乙個元素可以包含 在上面的例項中,和 都有元素內容,因為他們包含其他元素。元素也有屬性 category children 和 有文字內容,因為他們包含文字。2.xml 元素必須遵循以下命名規則 3.xml屬性 屬性 ...
XML輕鬆學習手冊(4)XML語法
第四章 xml語法 提綱 一.xml語法規則 二.元素的語法 三.注釋的語法 四.cdata的語法 五.namespaces的語法 六.entity的語法 七.dtd的語法 通過前面三章的學習,我們已經對什麼是xml,它的實現原理以及相關的術語有所了解。接下來我們就開始學習xml的語法規範,動手寫自...
XML輕鬆學習手冊(4)XML語法 續2
五.namespaces的語法 namespaces翻譯為名字空間。名字空間有什麼作用呢?當我們在乙個xml文件中使用他人的或者多個dtd檔案,就會出現這樣的矛盾 因為xml中標識都是自己建立的,在不同的dtd檔案中,標識名可能相同但表示的含義不同,這就可能引起資料混亂。比如在乙個文件wood ta...