曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
定義,第一個定義了一個普遍意義的R o c k e t 類,第二個通過繼承將R o c k e t 類細化成
C h e m i c a l R o c k e t類。r d f s和rdf 命名空間是R D F推薦標準的一部分:
程序清單7 - 7
204使用XML 高級編程
下載
(2) 屬性
資源用屬性來定義和描述它們。約束使它們具有了外形。這些約束限制了可賦給屬性數值
的類型,以及可選類型數值的范圍。給我們的chemical rocket一些f u e l:
程序清單7 - 8
我們的f u e l屬性作為F u e l s類被寫入,屬性能夠具有范圍內的數值。為了做這些,與上面某些
別的地方近似,我們將必須在模式里做一個類聲明來實現,或者討論的火箭燃料提供字面上的
數值。這個燃料屬性應用于C h e m i c a l R o c k e t類,它的屬性域(參見圖7 - 2)。
圖7-2
(3) 語句
一旦通過資源和屬性定義了名稱和結構,關于概念域的語句就可以生成了。這可以通過主
語資源、屬性謂語和數值賓語來實現。這些值可能是描述具體語句的文字,或者是有關整個類
的強大有力的語句的資源。讓我們先做一個在文檔里與RDF 模式保持一致的簡單、詳細的有關
火箭的語句。第一,你開始聲明一個C h e m i c a l R o c k e t類的實例,并給它一個名稱:
第7章命名空間和模式使用205 下載
子類
子類
子類
程序清單7 - 9
一旦聲明了火箭的實例—M o o n s h i p,利用資源的I D屬性,進展到RDF Description元素。
對于燃料特性已經提供了一個特別的值—h y d r o g e n(記住, M o o n s h i p是C h e m i c a l R o c k e t的一
個實例,并且這個類用f u e l特性)。這可能使許多事情看起來非常簡單,但我們能用同樣的辦法
去做有關類的語句。若你在模式里做了更多的語句,你將要生成很多有關問題域的明確的知識。
R D F是強大的,允許富有表現力、功能強大的語句。它解決了D T D很強的分類限制。確實是,
強大的分類是R D F模式的核心。遺憾的是,設計一個RDF 模式是一個很費力的過程,它包括很多類
和屬性的聲明。能夠生成有意義的語句比起我們需要定義X M L詞匯表的目的,或許是更強大的特性。
這并不是說,它們在其他環境沒有用。R D F語句讓我們用一種機器可以讀懂的格式規范地描
述事實。通常說,我們寫的X M L詞匯表潛在地依賴于對真實世界概念普遍意義上的理解。通過
R D F語句,至少在理論上能夠提供足夠的信息,有關一個應用可以發現附加的詞匯表的事實。這
將可以使我們更好地使用新詞匯表,并決定什么時候它對于手邊的問題可用。簡而言之, R D F提
供了一個提供描述詞匯表環境的工具,其中一個工具可用來將詞匯表放在文章合適的位置。
盡管一個設計者努力地致力于定義名稱、結構和關系的工作中,這也可能是一項非常繁重
的重擔。下面的元數據提議采取了幾個步驟,以到達富有表現力并有普遍性的程度。
更多的有關R D F信息可以從站點h t t p : / / w w w. w 3 . o rg / T R / R E C - r d f - s y n t a x(基礎模型)和
h t t p : / / w w w. w 3 . o rg / T R / P R - r d f -模式(RDF 模式)。
2. XML Data
比起R D F,XML Data瞄準了更為現代的領域。這個提議已被A r b o r Te x t、D a t a C h a n n e l、I n s o
和M i c r o s o f t提交到W 3 C組織,很顯然將重點集中到了自動化文檔和處理,但它比D T D更有前景。
X M L - D a t a在語法和概念模式之間有著顯著的區別。二者使用相同的語言,但它們卻為我們
提供不同的方式去考慮正在標記的語言。
語法模型是一個描述怎樣用標記寫文檔的規則的集合,比如D T D是一個語法模式的例子。
在一個按照我們的目錄D T D標記的X M L文檔里, < B o o k >元素能夠合法地包含< Ti t l e >、
< A b s t r a c t >、< R e c S u b j C a t e g o r i e s >和< P r i c e >元素。這個世界的一個語法XML Data 模式在詞匯表
結構上描述了近似的約束規則。
概念模型卻描述了概念或對象之間的關系,同時它們對于創建關系數據庫模型非常理想。
我們能夠使用XML Data 模式用一種脫離任何X M L文檔的方式假定一種關系—書包含標題和
價格。在這個意義上, XML Data是用來擴展X M L從關系數據庫里很容易包含信息的能力。在關
系數據庫里通過關鍵字獲得的主要的關系能正式地在XML Data 模式里得到。我們能夠用命名空
間得到比如說特別的連接里的特別關系,這要借助對連接的表聲明命名空間,根據所屬表驗證
206使用XML 高級編程
下載
查詢字段。
我們在第1 0章討論帶數據庫的模式的用途。
XML Data提供了一些有趣的工具,它們使XML Data比D T D更加強大。這些工具解決了幾
個在D T D里發現的問題,于是讓我們看一下其中幾個問題以及它們是怎樣用的。
(1) 用X M L寫
XML Data 為了模式結構使用X M L詞匯表,它允許用戶不用必須去學一種新的語法而去讀
寫模式。這也意味著我們能夠使用D O M和現有的解析器去細讀一個模式或者動態創建一個新的。
繼續概念上的比喻,我們能夠動態創建一個模式給特別的基于查詢本身的S Q L查詢。數據容
器將擁有數據和正式結構,并且將永遠不會知道這是動態創建的。
(2) 數據分類
XML Data添加了強大的元素和屬性分類,而且回答了我們最初的對于D T D的異議。這些可
能是有數據類型命名空間定義的基礎數據類型,或者復雜的,由設計者提供的模式所提供的用
戶自定義類型。這里不再需要應用程序去理解一些元素或屬性的數據類型并在使用數據前把文
本串轉換成合適的格式。這個信息能隱式地在模式里被描述,并且解析器能按照自己的需要進
行應用的轉換。
(3) 允許數值上的約束
XML Data要求在元素和屬性數值范圍上的約束被定義,比如最小值和最大值。這在很多你
驗證X M L文檔的環境里特別有所幫助。想象一下訂購系統,在那里你只接受了超過最小值1 0 0
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(75)