- 相關推薦
基于XML的三個常用元數(shù)據(jù)描述工具的評價與比較
【內容提要】隨著Internet和WWW的飛速發(fā)展,XML憑借其自身的特點,為網絡信息的管理、搜索以及Web上各種應用的鏈接提供了極大的便利,從而得到了廣泛應用。XML的一個重要特點就是允許用戶定義自己的標簽,從而實現(xiàn)對信息的存儲和管理。XML中較常用的標簽定義工具有DTD和XMLSchema,而RDF是一個專用的元數(shù)據(jù)描述框架。本文結合一個MARC元數(shù)據(jù)描述的實例,對這三個工具進行了比較細致的分析和對比,并對未……1 引言
XML是繼HTML之后的又一種WEB標記語言,它為用戶提供了靈活的標記擴展機制,使得不同內容的資源能以格式良好的自定義的標記元素來表現(xiàn)。元數(shù)據(jù)是描述信息資源或數(shù)據(jù)等對象的數(shù)據(jù),主要用來識別、評價、追蹤資源,以及方便對資源的管理、發(fā)現(xiàn)、查找和交換。隨著計算機網絡的發(fā)展,特別是Internet的普及,網絡環(huán)境下信息的描述和處理成為一個重要的問題,相應地網絡環(huán)境下的元數(shù)據(jù)問題也成為一個研究的熱點。DTD和XMLSchema是XML中常用的進行標記擴展的工具,RDF是專用的元數(shù)據(jù)描述工具,網絡環(huán)境下的元數(shù)據(jù)描述通常就是借助這幾個工具,利用XML的標記可擴展性來完成。在這三個工具中,DTD隨著XML1.0最早被提出,伴隨著XML應用的普及和人們對DTD認識的加深,又進一步提出了RDF和更有發(fā)展?jié)摿Φ腦MLSchema。
2 DTD
DTD作為XML1.0規(guī)范的重要組成部分,它使用EBNF(ExtendedBackusNaurForm)語法完成XML文檔結構的定義,即XML文檔中標記的定義。一個XML文檔只能對應一個DTD,一個DTD由一系列標記定義組成,包括元素定義(elementdeclaration)、屬性定義(attribatedeclaration)、實體定義(entitydeclaration)、注釋定義(notationdeclaration),是目前支持和應用最廣泛的一種標記擴展工具。例如,一個用于描述MARC元數(shù)據(jù)的XML文檔的DTD可以定義如下:
。!DOCTYPEmare[
。!ELEMENTmarc(record) *>
。迹TTLISTmareTYPE(CN|US|UN11) #REQUIRED>
。!ELEMENTrecord(datafield) *>
。!ATTLISTrecord
typeCDATA#REQURED
infoCDATA#REQUIRED>
<!ELEMENT,datafield(subdatafield) *>
<!ATTLISTdatafield
tagCDATA#REQUIRED
ind1CDATA#IMPLIED
ind2CDATA#IMPLIED>
。!ELEMENTsubdatafield(#PCDATA)>
。!ATTLISTsubfield
codeCDATA#REQUIRED>
]>
上例中各個標記和屬性的作用如下:
。糓ARC>:用于標記內容的開始和結束,屬性“type”用于標記MARC類型,如CNMARC,USMARC,UNIMARC。
。糝ECORD>:用于標記MARC記錄的24byte定長頭標區(qū),屬性有“type”和“info”。
<DATAFIELD>:MARC記錄數(shù)據(jù)字段區(qū)的數(shù)據(jù)字段標記,對應MARC記錄中每個字段的內容,屬性“tag”、“ind1”和“ind2”分別代表字段標識、第一和第二指示符。
<SUBDATAFIELD>:MARC記錄數(shù)據(jù)字段區(qū)中數(shù)據(jù)字段的子字段標記,屬性“code”為子字段標識。
通過該例,我們可以看到DTD較好地完成了XML的標記擴展(即元數(shù)據(jù)描述)的任務,目前在Internet上已有大量使用DTD描述的元數(shù)據(jù)存在。但是DTD提出較早,人們在使用過程中也發(fā)現(xiàn)它有很多的不足之處。其主要特點如下:
①難以理解和書寫。由于采用的是不同于XML的名為EBNF的語法,因為需要先了解EBNF,這對于人們的閱讀和書寫都帶來了困難。
、陔y以使用程序進行元數(shù)據(jù)的自動處理。由于使用EBNF語法,這給DTD的自動處理也帶來了麻煩。通常情況下,我們需要對DTD進行驗證,這時使用DOM就不可能對使用EBNF語法書寫的DTD進行分析,而必須使用專門的分析程序進行分析驗證。
、跠TD不支持數(shù)據(jù)類型。DTD只支持包括文檔類型在內的少數(shù)幾種數(shù)據(jù)類型,這意味著在實際使用過程中經常需要進行類型的轉換才能達到預想的效果。
、蹹TD不支持Namespaces。由于必須把所有的元數(shù)據(jù)放在一個DTD文件中,如果需要對已有的DTD進行擴充則只能在原文件的基礎上進行重寫,這對于元數(shù)據(jù)的維護和擴充都十分不方便。
總之,DTD在簡單的文檔結構定義方面是較出色的,如果考慮到XML,是源自同樣使用DTD的SGML的話,理解在XML1.0中選擇了DTD就不難了。但如果我們考慮到XML的用途現(xiàn)在已不僅局限于文檔處理,那么DTD的這些缺點就變得日趨嚴重。因此W3C(WorldWideWebConsortium)在看到了DTD的諸多問題之后,提出了一系列用來代替DTD的建議(Recommendation,即正式標準),包括RDF、XML-Data、DCD、XMLSchema等,其中以RDF和XM
【基于XML的三個常用元數(shù)據(jù)描述工具的評價與比較】相關文章:
基于XML的果園環(huán)境數(shù)據(jù)采集和數(shù)據(jù)表示03-19
基于XMLSchema的元數(shù)據(jù)方案實現(xiàn)03-21
基于XML的作業(yè)答疑系統(tǒng)XML+SQL03-30
基于XML的智能應用程序的研究03-07
基于XML的三層C/S模型03-20
實現(xiàn)基于網頁的數(shù)據(jù)庫數(shù)據(jù)導入03-18