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