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