XML技術系列講座(十二)

2021-04-13 01:49:02 字數 3430 閱讀 9704

1、制定schema

考慮如下

xml文件

books.xml:

<?xml version=「

1.0」

?>

straight talk about computers

lars peterson

you can comabt computer stress

lars peterson

carlos diaz

為上述xml

文件制定

schema

時,可以先為

和元素制定規則,用

定義它們為只能包含字串的文字元素:

然後說明

只能包含子元素,且子元素出現的順序是一定的。隨後在內部用

定義包括乙個

和任意個

子元素:

最後用同樣的方法說明根元素:

下面的這個例子中定義了

「isbn」

型別的屬性:資料型別是字串,並規定如果元素中引用該屬性,那麼就必需賦值。

dt:type=「string」

required=「yes」 />

content=「eltonly」>

2、xml

的可擴充套件性由於

xml schema

是一種內容開放的模型,這種可擴充套件性就意味著使用者可以在

xml schema

中使用自己定義的元素和屬性。例如:

xmlns:myext=「urn:myextensions」dt:type=「float」>

17.5

20 5.0

其中本地的屬性定義只宣告了

元素為「float」

型別,而通過命名空間又引用了其他

3個標籤來分別說明書籍的銷售稅、批量定額和折扣率。這種擴充套件性增強了

schema

的靈活性。

我們還可以使用

dom技術來訪問擴充套件的

schema:

straight talk about computers

19.99

假設上述

xml資料就是根據剛才的

schema

定義的,而且我們已經用

dom定位了

元素,那麼,接下來就可以訪問

節點,並利用它的

definition

屬性從schema

中得到的定義:

set pricenode = booknode.selectsinglenode(「price」)

set priceelementtypenode = pricenode.definition

salestax = priceelementtypenode.childnodes(0).text

bulkbuy = priceelementtypenode.childnodes(1).text

discount = priceelementtypenode.childnodes(2).text

這樣,就可以根據需要處理這些資料了。

3、在客戶機/

伺服器環境中驗證xml

在c/s

(客戶機

/伺服器)環境中,客戶機和伺服器都可以使用

schema

來驗證文件。在客戶機端驗證的物件可以是從伺服器發來的文件,也可以是即將傳送出去的文件。下面的這個例子就是用乙個名為

customerschema.xml

的schema

來驗證docsubmit

的xml

文件,然後傳送給伺服器:

dom首先取得根元素的訪問權,然後把

xmlns

設為schema

的位址,使之開始驗證。

相對客戶機而言,在伺服器上進行驗證的意義更重大,在實際中也更為常見。由於連線到伺服器上的客戶數非常多,所以有必要在處理它們傳送來的資料前,檢查收到的文件是否與預期的結構一致。驗證步驟如下: 1

.將xml

文件載入

dom樹,開始驗證:

set docreceived = createobject(「microsoft.xmldom」)

docreceived.validateonparse = true

docreceived.async = false

docreceived.load request

2.判斷是否鏈結

xml schema

(只需檢驗一下根元素中是否設定了

xmlns

屬性):

有,開始驗證!--〉

else

〈!--

沒有…… --〉

end if

3.如果沒有鏈結,伺服器就要指定乙個

schema

進行鏈結,然後將更新的文件重新裝入到另乙個

dom樹中:

attr = 「x-schema:」 & path

rootnode.setattribute 「xmlns」, attr

set doctested = createobject(「microsoft.xmldom」)

doctested.validateonparse = true

doctested.async = false

doctested.loadxml docreceived.xml

由於xml schema

具有許多優秀的特性,國際上許多著名公司和大企業紛紛開始向

schema

傾斜,比如微軟的

ie 5.0

就已經支援

xml schema

。雖然schema

還需要在不斷的實踐中逐步完善,但

xml schema

取代dtd

已經是大勢所趨,因此,筆者建議應學習並掌握這一技術。

網頁系列講座體會(1)

又是乙個忙碌的下午 晚上,為聽講座用了接近三個小時來佔位,寫了離散和線性的作業,晚上7 20聽學院院長的動員 報告講座,又使我燃起了鬥志 新的挑戰開始了!院長把我們學校歷屆參賽光榮史誇耀了一番,吼吼 我們可以和本部一拼呢 強悍。印象最深的是院長提到了一位 04級師兄,04級,那是我們學校剛剛成立的一...

MySQL查詢優化技術系列講座之使用索引(一)

索引是提高查詢速度的最重要的工具。當然還有其它的一些技術可供使用,但是一般來說引起最大效能差異的都是索引的正確使用。在mysql郵件列表中,人們 經常詢問那些讓查詢執行得更快的方法。在大多數情況下,我們應該懷疑資料表上有沒有索引,並且通常在新增索引之後立即解決了問題。當然,並不總是這樣簡單 就可以解...

文化藝術系列講座

1 傳統的中國建築以木質為主,在於取材方便 便於加工,形成於商周時期,秦漢時期萌芽,西漢結合木石,後漢魏晉南北朝是成熟期,到了唐宋進一步成熟,到了明清為輝煌期。現在的故宮,即是明清建築。中國建築分陰陽宅,陽宅用土木,陰宅用磚石。例如明十三陵。中國的建築對東南亞影響很大,比如南韓和日本,韓式和日式建築...