基于XML的三个常用元数据描述工具的评价与比较 【内容提要】随着Internet和WWW的飞速发展,XML凭借其自身的特点,为网络信息的管理、搜索以及Web上各种应用的链接提供了极大的便利,从而得到了广泛应用。XML的一个重要特点就是允许用户定义自己的标签,从而实现对信息的存储和管理。XML中较常用的标签定义工具有DTD和XML Schema,而RDF是一个专用的元数据描述框架。本文结合一个MARC元数据描述的实例,对
这三个工具进行了比较细致的分析和对比,并对未……
1 引言
XML是继HTML之后的又一种WEB标记语言,它为用户提供了灵活的标记扩展机制,使得不同内容的资源能以格式良好的自定义的标记元素来表现。元数据是描述信息资源或数据等对象的数据,主要用来识别、评价、追踪资源,以及方便对资源的管理、发现、查找和交换。随着计算机网络的发展,特别是Internet的普及,网络环境下信息的描述和处理成为一个重要的问题,相应地网络环境下的元数据问题也成为一个研究的热点。DTD和XML Schema是XML中常用的进行标记扩展的工具,RDF是专用的元数据描述工具,网络环境下的元数据描述通常就是借助这几个工具,利用XML的标记可扩展性来完成。在这三个工具中,DTD随着XML1.0最早被提出,伴随着XML应用的普及和人们对DTD认识的加深,又进一步提出了RDF和更有发展潜力的XML Schema。
2 DTD
DTD作为XML1.0规范的重要组成部分,它使用EBNF(Extended Backus Naur Form)语法完成XML文档结构的定义,即XML文档中标记的定义。一个XML文档只能对应一个DTD,一个DTD由一系列标记定义组成,包括元素定义(element declaration)、属性定义(attribate declaration)、实体定义(entity declaration)、注释定义(notation declaration),是目前支持和应用最广泛的一种标记扩展工具。例如,一个用于描述MARC元数据的XML文档的DTD可以定义如下:
<!DOCTYPE mare [
<!ELEMENT marc (record) *>
<!ATTLIST mare TYPE (CN |US| UN11) # REQUIRED>
<!ELEMENT record (datafield) *>
<!ATTLIST record
type CDATA # REQURED
info CDATA # REQUIRED>
<!ELEMENT,datafield (subdatafield) *>
<!ATTLIST datafield
tag CDATA # REQUIRED
ind1 CDATA # IMPLIED
ind2 CDATA # IMPLIED>
<!ELEMENT subdatafield (# PCDATA)>
<!ATTLIST subfield
code CDATA # REQUIRED>
]>
上例中各个标记和属性的作用如下:
<MARC>:用于标记内容的开始和结束,属性“type”用于标记MARC类型,如CNMARC,USMARC,UNIMARC。
<RECORD>:用于标记MARC记录的24byte定长头标区,属性有“type”和“info”。
<DATAFIELD>:MARC记录数据字段区的数据字段标记,对应MARC记录中每个字段的内容,属性“tag”、“ind1”和“ind2”分别代表字段标识、第一和第二指示符。
<SUBDATAFIELD>:MARC记录数据字段区中数据字段的子字段标记,属性“code”为子字段标识。
通过该例,我们可以看到DTD较好地完成了XML的标记扩展(即元数据描述)的任务,目前在Internet上已有大量使用DTD描述的元数据存在。但是DTD提出较早,人们在使用过程中也发现它有很多的不足之处。其主要特点如下: