- 相關(guān)推薦
基于XML的三個常用元數(shù)據(jù)描述工具的評價與比較
【內(nèi)容提要】隨著Internet和WWW的飛速發(fā)展,XML憑借其自身的特點,為網(wǎng)絡信息的管理、搜索以及Web上各種應用的鏈接提供了極大的便利,從而得到了廣泛應用。XML的一個重要特點就是允許用戶定義自己的標簽,從而實現(xiàn)對信息的存儲和管理。XML中較常用的標簽定義工具有DTD和XMLSchema,而RDF是一個專用的元數(shù)據(jù)描述框架。本文結(jié)合一個MARC元數(shù)據(jù)描述的實例,對這三個工具進行了比較細致的分析和對比,并對未……1 引言
XML是繼HTML之后的又一種WEB標記語言,它為用戶提供了靈活的標記擴展機制,使得不同內(nèi)容的資源能以格式良好的自定義的標記元素來表現(xiàn)。元數(shù)據(jù)是描述信息資源或數(shù)據(jù)等對象的數(shù)據(jù),主要用來識別、評價、追蹤資源,以及方便對資源的管理、發(fā)現(xiàn)、查找和交換。隨著計算機網(wǎng)絡的發(fā)展,特別是Internet的普及,網(wǎng)絡環(huán)境下信息的描述和處理成為一個重要的問題,相應地網(wǎng)絡環(huán)境下的元數(shù)據(jù)問題也成為一個研究的熱點。DTD和XMLSchema是XML中常用的進行標記擴展的工具,RDF是專用的元數(shù)據(jù)描述工具,網(wǎng)絡環(huán)境下的元數(shù)據(jù)描述通常就是借助這幾個工具,利用XML的標記可擴展性來完成。在這三個工具中,DTD隨著XML1.0最早被提出,伴隨著XML應用的普及和人們對DTD認識的加深,又進一步提出了RDF和更有發(fā)展?jié)摿Φ腦MLSchema。
2 DTD
DTD作為XML1.0規(guī)范的重要組成部分,它使用EBNF(ExtendedBackusNaurForm)語法完成XML文檔結(jié)構(gòu)的定義,即XML文檔中標記的定義。一個XML文檔只能對應一個DTD,一個DTD由一系列標記定義組成,包括元素定義(elementdeclaration)、屬性定義(attribatedeclaration)、實體定義(entitydeclaration)、注釋定義(notationdeclaration),是目前支持和應用最廣泛的一種標記擴展工具。例如,一個用于描述MARC元數(shù)據(jù)的XML文檔的DTD可以定義如下:
。!DOCTYPEmare[
。!ELEMENTmarc(record) *>
。!ATTLISTmareTYPE(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>:用于標記內(nèi)容的開始和結(jié)束,屬性“type”用于標記MARC類型,如CNMARC,USMARC,UNIMARC。
<RECORD>:用于標記MARC記錄的24byte定長頭標區(qū),屬性有“type”和“info”。
。糄ATAFIELD>:MARC記錄數(shù)據(jù)字段區(qū)的數(shù)據(jù)字段標記,對應MARC記錄中每個字段的內(nèi)容,屬性“tag”、“ind1”和“ind2”分別代表字段標識、第一和第二指示符。
。糞UBDATAFIELD>:MARC記錄數(shù)據(jù)字段區(qū)中數(shù)據(jù)字段的子字段標記,屬性“code”為子字段標識。
通過該例,我們可以看到DTD較好地完成了XML的標記擴展(即元數(shù)據(jù)描述)的任務,目前在Internet上已有大量使用DTD描述的元數(shù)據(jù)存在。但是DTD提出較早,人們在使用過程中也發(fā)現(xiàn)它有很多的不足之處。其主要特點如下:
、匐y以理解和書寫。由于采用的是不同于XML的名為EBNF的語法,因為需要先了解EBNF,這對于人們的閱讀和書寫都帶來了困難。
②難以使用程序進行元數(shù)據(jù)的自動處理。由于使用EBNF語法,這給DTD的自動處理也帶來了麻煩。通常情況下,我們需要對DTD進行驗證,這時使用DOM就不可能對使用EBNF語法書寫的DTD進行分析,而必須使用專門的分析程序進行分析驗證。
、跠TD不支持數(shù)據(jù)類型。DTD只支持包括文檔類型在內(nèi)的少數(shù)幾種數(shù)據(jù)類型,這意味著在實際使用過程中經(jīng)常需要進行類型的轉(zhuǎn)換才能達到預想的效果。
、蹹TD不支持Namespaces。由于必須把所有的元數(shù)據(jù)放在一個DTD文件中,如果需要對已有的DTD進行擴充則只能在原文件的基礎(chǔ)上進行重寫,這對于元數(shù)據(jù)的維護和擴充都十分不方便。
總之,DTD在簡單的文檔結(jié)構(gòu)定義方面是較出色的,如果考慮到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ù)描述工具的評價與比較】相關(guān)文章:
基于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)基于網(wǎng)頁的數(shù)據(jù)庫數(shù)據(jù)導入03-18
基于Perl的DoS工具設(shè)計與實現(xiàn)03-10