基于XML的三个常用元数据描述工具的评价与比较
;rdf:resource=“”/>
</rdf:Description>
<rdf:Description ID=“RECORD”>
<rdf:type rdf:resource=“http://www.w3.org/ 1999/02/22—rdf—syntax—ns # Property”/>
<fdfs:label>RECORD</rdfs:label>
<rdfs:isDefinedBy rdf:resource=“”/>
</rdf:Description>
<rdf:Description ID=“DATAFIELD”>
<rdf:type rdf:resource=“http://www.w3.org/ 1999/02/22—rdf—syntax—ns # Property”/>
<rdfs:label>DATAFIELD</rdfs:label>
<rdfs:isDefinedBy rdf:resource=“”/>
</rdf:Description>
<rad:Description ID=“DATAFIELD”>
<rdf:type rdf:resource=“http://www.w3.org/ 1999/02/22—rdf—syntax—ns # Property”/>
<rdfs:label>SUBDATAFIELD</rdfs:labcl>
<rdfs:is DefinedBy rdf:resource=“”/>
</rdf:Description>
通过上例,我们可以看到针对DTD种种不足而提出的RDF建议克服了DTD的主要缺点,具有以下几个优点:
①易控制性。由于RDF使用简单的资源——属性——值三元组,所以很容易控制,即使是数量很大的时候。
②包容性。在RDF这种元数据模型中既可以定义自己的词汇集,也可以嵌入DC元数据或别的类型的元数据。
③可交换性。由于XML是目前最具发展前景的标记语言,使用XML作为描述语法的RDF在未来也就可以成为一种可以携带多种元数据来往于网络上的框架工具。
④易综合性。在RDF中资源的属性是资源,属性值以及关于资源的陈述也可以是资源,都可以用RDF进行描述,这样可以很容易地将多个描述综合,以达到发现知识的目的。
总之,RDF是一个公认的极佳的强有力的元数据描述工具,这也部分地实现了它结束在元数据描述领域一切努力的雄心。但是,RDF的这种强有力也导致了它严重的缺陷,就是在一些日常应用中显得太复杂了,设计者不仅需要定义对象和属性,而且需要定义复杂的陈述。一个复杂的标准是很难在短时间内被广大网络应用开发人员接受、掌握和应用的,因此这个复杂的标准也就很难在网络上推广和被接受。就象复杂的SGML很少有人使用,而对其进行简化后形成的XML则迅速被接受一样,RDF在网络上尤其是Internet上是很难有市场的,而只会在一些特定的领域得到应用。Internet上的元数据描述需要的应该是一种简单而且可靠的解决方案。
4 XML Schema
Schema是一种描述信息结构的模型,它是借用数据库中一种描述相关表格内容的机制,为一类文件建立一个模式。从这一层意义上讲,DTD实际上也是一种Schema,只不过这种Schema使用了古怪的EBNF语法,因而带来了诸多的不便。RDF Schema可能是由于RDF的原因,W3C最终只推出了RDF Schema的草案,一直未能更进一步推出正式的建议(即标准)。XML Schema是2001年5月由W3C推荐的用于描述XML文件结构的一个框架,它的语法与XML相同,但Schema文件所描述的是引用它的XML文件中的元素和属性的具体类型。以前面所描述的MARC元数据定义为例,使用XML Schema可以定义如下:
<xsd:schema xmlns:xs
<xsd:element name=“mare”type=“marc”/>
<xsd:complexType name=“marc”>
<xsd:sequence>
<xsd:element name=“recurd” minOccurs=“0” maxOccurs=“unbounded”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=“datafield” type=“datafield”minOccurs= “0” maxOccurs=“unbounded” />
</xsd:sequence>
<xsd:attribute name=“rectype” type=“xsd:string”/>
<xsd:attribute name=“recinfo” type=“xsd: string”/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name=“marctype” type= “xsd: string”/>
</xsd:complexType>
<xsd:complexType name=“datafield”>
<xsd:sequence>
<xsd:element name=“subdatafield”type=‘xsd: string”minOccurs=“0”maxOccurs=“unbounded”content =“textOnly”>
<xds:attribute name=“code” type=“xsd: string”/>
</xsd:element>
</xsd:sequence>
<xsd:attribute name=“tag” type=“xsd:string”/>
<xsd:attribute name=“ind1”type=“xsd:string”/>
<xsd:attribute name=“ind2”type=“xsd:string”/>
</xsd:complexType>
</xsd:schema>
通过上例,我们可以看到XML Schema本身就是一个XML文件,但不同的是,Schema文件所描述的是引用它的XML文件中的元素和属性的具体类型。相比DTD,XML Schema具有以下优点:
①一致性。Schema使得对XML的定义不必再利用一种特定的形式化的语言,而是直接借助XML自身的特性,利用XML的基本语法规则采定义XML文档的结构,使得XML达到了从内到外的完美统一,也为XML的进一步发展奠定了坚实的基础。
②扩展性。Schema对DTD进行了扩充,引入了数据类型、命名空间,从而使其具备较强的可扩展性。
③互换性。利用Schema,我们能够书写XML文档以及验证文档的合法性。另外,通过特定的映射机制,还可以将不同的Schema进行转换,以实现更高层次的数据交换。
④规范性。同DTD一样,XML Schema也提供了一套完整的机制以约束XML文档中置标的使用,但相比之下,后者基于XML,更具有规范性。Schema利用元素的内容和属性来定义XML文档的整体结构,如哪些元素可以出现在文档中、元素间的关系是什么、每个元素有哪些内容和属性、以及元素 《基于XML的三个常用元数据描述工具的评价与比较(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/61438.html
</rdf:Description>
<rdf:Description ID=“RECORD”>
<rdf:type rdf:resource=“http://www.w3.org/ 1999/02/22—rdf—syntax—ns # Property”/>
<fdfs:label>RECORD</rdfs:label>
<rdfs:isDefinedBy rdf:resource=“”/>
</rdf:Description>
<rdf:Description ID=“DATAFIELD”>
<rdf:type rdf:resource=“http://www.w3.org/ 1999/02/22—rdf—syntax—ns # Property”/>
<rdfs:label>DATAFIELD</rdfs:label>
<rdfs:isDefinedBy rdf:resource=“”/>
</rdf:Description>
<rad:Description ID=“DATAFIELD”>
<rdf:type rdf:resource=“http://www.w3.org/ 1999/02/22—rdf—syntax—ns # Property”/>
<rdfs:label>SUBDATAFIELD</rdfs:labcl>
<rdfs:is DefinedBy rdf:resource=“”/>
</rdf:Description>
通过上例,我们可以看到针对DTD种种不足而提出的RDF建议克服了DTD的主要缺点,具有以下几个优点:
①易控制性。由于RDF使用简单的资源——属性——值三元组,所以很容易控制,即使是数量很大的时候。
②包容性。在RDF这种元数据模型中既可以定义自己的词汇集,也可以嵌入DC元数据或别的类型的元数据。
③可交换性。由于XML是目前最具发展前景的标记语言,使用XML作为描述语法的RDF在未来也就可以成为一种可以携带多种元数据来往于网络上的框架工具。
④易综合性。在RDF中资源的属性是资源,属性值以及关于资源的陈述也可以是资源,都可以用RDF进行描述,这样可以很容易地将多个描述综合,以达到发现知识的目的。
总之,RDF是一个公认的极佳的强有力的元数据描述工具,这也部分地实现了它结束在元数据描述领域一切努力的雄心。但是,RDF的这种强有力也导致了它严重的缺陷,就是在一些日常应用中显得太复杂了,设计者不仅需要定义对象和属性,而且需要定义复杂的陈述。一个复杂的标准是很难在短时间内被广大网络应用开发人员接受、掌握和应用的,因此这个复杂的标准也就很难在网络上推广和被接受。就象复杂的SGML很少有人使用,而对其进行简化后形成的XML则迅速被接受一样,RDF在网络上尤其是Internet上是很难有市场的,而只会在一些特定的领域得到应用。Internet上的元数据描述需要的应该是一种简单而且可靠的解决方案。
4 XML Schema
Schema是一种描述信息结构的模型,它是借用数据库中一种描述相关表格内容的机制,为一类文件建立一个模式。从这一层意义上讲,DTD实际上也是一种Schema,只不过这种Schema使用了古怪的EBNF语法,因而带来了诸多的不便。RDF Schema可能是由于RDF的原因,W3C最终只推出了RDF Schema的草案,一直未能更进一步推出正式的建议(即标准)。XML Schema是2001年5月由W3C推荐的用于描述XML文件结构的一个框架,它的语法与XML相同,但Schema文件所描述的是引用它的XML文件中的元素和属性的具体类型。以前面所描述的MARC元数据定义为例,使用XML Schema可以定义如下:
<xsd:schema xmlns:xs
d=“http://www.w3.org/2001/ XMLSchema”>
<xsd:element name=“mare”type=“marc”/>
<xsd:complexType name=“marc”>
<xsd:sequence>
<xsd:element name=“recurd” minOccurs=“0” maxOccurs=“unbounded”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=“datafield” type=“datafield”minOccurs= “0” maxOccurs=“unbounded” />
</xsd:sequence>
<xsd:attribute name=“rectype” type=“xsd:string”/>
<xsd:attribute name=“recinfo” type=“xsd: string”/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name=“marctype” type= “xsd: string”/>
</xsd:complexType>
<xsd:complexType name=“datafield”>
<xsd:sequence>
<xsd:element name=“subdatafield”type=‘xsd: string”minOccurs=“0”maxOccurs=“unbounded”content =“textOnly”>
<xds:attribute name=“code” type=“xsd: string”/>
</xsd:element>
</xsd:sequence>
<xsd:attribute name=“tag” type=“xsd:string”/>
<xsd:attribute name=“ind1”type=“xsd:string”/>
<xsd:attribute name=“ind2”type=“xsd:string”/>
</xsd:complexType>
</xsd:schema>
通过上例,我们可以看到XML Schema本身就是一个XML文件,但不同的是,Schema文件所描述的是引用它的XML文件中的元素和属性的具体类型。相比DTD,XML Schema具有以下优点:
①一致性。Schema使得对XML的定义不必再利用一种特定的形式化的语言,而是直接借助XML自身的特性,利用XML的基本语法规则采定义XML文档的结构,使得XML达到了从内到外的完美统一,也为XML的进一步发展奠定了坚实的基础。
②扩展性。Schema对DTD进行了扩充,引入了数据类型、命名空间,从而使其具备较强的可扩展性。
③互换性。利用Schema,我们能够书写XML文档以及验证文档的合法性。另外,通过特定的映射机制,还可以将不同的Schema进行转换,以实现更高层次的数据交换。
④规范性。同DTD一样,XML Schema也提供了一套完整的机制以约束XML文档中置标的使用,但相比之下,后者基于XML,更具有规范性。Schema利用元素的内容和属性来定义XML文档的整体结构,如哪些元素可以出现在文档中、元素间的关系是什么、每个元素有哪些内容和属性、以及元素 《基于XML的三个常用元数据描述工具的评价与比较(第2页)》