4 XML架構集合

2021-05-28 16:45:55 字數 2997 閱讀 5819

在乙個特定的

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...