




已阅读5页,还剩54页未读, 继续免费阅读
(计算机应用技术专业论文)面向xml文档的关键字查询的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 x m l 数据具有自描述性、可扩展性,既有内容也有结构信息,x m l 文档常见 于i n t e m e t 上存在的网页、商业文本、数字图书馆等,x m l 文档数量正呈指数级 增长。如何有效地解决异构的x m l 文档集的检索己变得非常重要。 x m l 关键字检索是x m l 数据检索的研究热点之一。x m l 关键字检索以元素 为粒度进行,只需返回包含关键字的文档片段,提高了检索的速度。与x m l 文档 查询语言x q u e r y 相比,x m l 的关键字检索技术的主要优势就是用户不需要学习 复杂的查询语言,也不需要对x m l 文档底层的数据结构有深入的了解,用户仅仅 需要输入与他感兴趣内容相关的关键字就可完成查询。 本文主要研究内容:考察已有的关键字查询方法研究现状的同时,借鉴x s e e k 中将关键字分类的思想,提出了一种新的基于关键字分类的查询方法。该方法将 关键字分为谓词关键字和结果关键字,谓词关键字只用于限定查询范围,不出现 在最终的结果集中,只有结果关键字用于返回结果集,从而有效地减小了结果集。 定义了简单的查询语法,提出了新的关键字查询流程,使分类的关键字表达式在 查询过程中发挥出“类结构化查询 的作用,从而有效地提高查询精度。定义了 “相似节点对 ( s n p ) 的概念,提出了s n p 发现算法和有效相似节点对( m s n p ) 判定方法,为寻找关键字匹配节点引入了新的思路。构建名称节点、值节点和主 d e w e y 码节点的索引结构,以加快节点和其d e w e y 码之间的相互查找。实验结果 与分析表明,基于关键字分类的查询方法比传统关键字查询方法能够更好地表达 用户的查询意图。 关键词:分类;语义表达能力;关键字查询;x m l ;x m l 文档片段 分类号:t p 3 1 1 1 3 i 匕立交通太堂亟堂僮途塞旦sir g ! a bs t r a c t x m li sas e l f - d e s c r i b i n ga n de x t e n s i b l el a n g u a g e ,w h i c hs p e c i f i e st h ec o n t e n t sa 8 w e l la st h es t r u c t u r ei n f o r m a t i o n t h e r eh a sb e e na ne x p o n e n t i a li n c r e a s ei nt h ea m o u n t o ft h ex m ld o c u m e n t si nw e bp a g e so ni n t e m e t ,c o m m e r c i a lt e x tr e p o s i t o r i e s ,d i g i t a l l i b r a r ya n ds oo n ,a n dn a t u r a l l y , e f f i c i e n ti n f o r m a t i o nr e t r i e v a lf r o mt h e s eg r e a ta m o u n t s o fx m ld o c u m e n t si sb e c o m i n ge x t r e m e l yi m p o r t a n t x m l k e y w o r dq u e r y i n gi sah o t s p o tf o rr e s e a r c h i n gi nx m l d a t as e a r c h i n gf i e l d x m ld a t ac a r r yo u tt h ek e y w o r dq u e r y i n gt h a tt a k i n ge l e m e n ta st h eg r a i nd e g r e ea n d o n l yr e t u r nt h et e x t f i l ep a r ti n c l u d i n gak e y w o r d ,w h i c hr a i s e dt h es e a r c hs p e e d c o m p a r e dt ot h es e a r c hl a n g u a g ew i t hx m l s u c ha sx q u e r y , t h em a i na d v a n t a g eo ft h e k e y w o r dq u e r y i n gi st h ec u s t o m e rd o e s n tn e e dt os t u d yc o m p l i c a t e ds e a r c hl a n g u a g e , n o rn e e dt oh a v et h o r o u g hu n d e r s t a n d i n gt ot h es t r u c t u r eo ft h ex m lt e x tf i l eo nf i r s t f l o o r , t h ec u s t o m e ro n l yn e e d st oi n p u tt h ek e y w o r d sr e l a t e dt oh i si n t e r e s t e di nc o n t e n t s t h em a i nc o n t e n t si nt h et h e s i s :a n a l y z e dt h er e s e a r c ha c t u a l i t yo fx m lk e y w o r d q u e r y i n g ,t h ec a t e g o r i z a t i o nc o n c e p tf o rk e y w o r dp r o p o s e d i nx s e e kh a sb e e na b s o r b e d i nm yt h e s i s ,w h i c hi n s p i r em et op r o p o s ean e wk e y w o r dq u e r y i n gm e t h o db a s e do n k e y w o r dc a t e g o r i z a t i o n t h i sm e t h o dc a t e g o r i z e sk e y w o r da sp r e d i c a t ek e y w o r da n d r e s u l tk e y w o r d p r e d i c a t ek e y w o r di su s e dt or e s t r i c tr a n g eo fq u e r y i n gw h i c hw i l ln o t o c c u ri nt h er e s u l ts e t s w h i l eo n l yt h er e s u l tk e y w o r dm a k ei t sa p p e a r a n c ei nr e s u l ts e t s t h i si d e am a k e sm u c hc o n t r i b u t i o nt or e d u c et h es i z eo fr e s u l ts e t s d e f i n es i m p l eq u e r y g r a m m a r ;b r i n gf o r w a r d an e w q u e r yp r o c e s s i n gf l o w , m a k i n g t h ec a t e g o r i z e dk e y w o r d s p l a yd i f f e r e n tr o l e si nt h ec o u r s eo fq u e r y i n ga s “s t r u c t u r e - l i k e dq u e r y a sar e s u l t ,t h e a c c u r a c yo fq u e r y i n gh a sb e e nr a i s e de f f e c t i v e l y d e f i n et h en o t i o no f s i m i l a rn o d ep a i r ( s n p ) ,b r i n gf o r w a r das i m i l a rn o d ep a i r sf i n d i n ga l g o r i t h mt o f i n ds n pa n da j u d g e m e n to fm e a n i n g f u ls n p , a l lt h i s e f f o r t sf o c u so nm a t c h i n gt h er i g h tk e y w o r d s n a m en o d ei n d e x ,v a l u en o d ei n d e xa n dm a i nd e w e yi n d e xa r ec o n t r u c t u r e dt oq u i c k e n t h ec o u r s eo fm u t u a ls e a r c hb e t w e e nn o d ea n di t sd e w e yn u m b e r t h ee x p e r i m e n t a l r e s u l t sd e m o n s t r a t et h a tt h en e wq u e r ym e t h o db a s e do nk e y w o r dc a t e g o r i z a t i o nd o b e t t e ri ne x p r e s s i n gt h eb s e r sq u e r y i n gi n t e n t i o nt h a nt h et r a d i t i o n a lk e y w o r dq u e r y k e y w o r d s :c a t e g o r i z a t i o n ;s e m a n t i cc a p a b i l i t y ;k e y w o r dq u e r y i n g ;x m l ; s e g m e n to fx m l d o c u m e n t ; c i a s s n 0 :t p 3 1 1 13 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:孔金磊 签字同期:渺亨年月6 日 导师签名: 签字同期:明确年多月舌1 7 1 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 学位论文作者签名:泵么磊 签字同期:泓曙年么月j 日 5 5 致谢 本论文的工作是在我尊敬的导师须德教授的悉心指导下完成的,从论文的选 题,论文的撰写,一直到论文的最终定稿,须老师一直给予我细心的指导和无尽 的关怀。须老师以敏锐的眼光、饱满的智慧、渊博的知识和卓越的才华站在学术 的前沿,作为须老师的学生我深感骄傲和自豪。在研究生期间,须老师始终给我 严格的要求、充分的信任、热情的鼓励和全面锻炼的诸多机会。学术研究中,我 深受须老师渊博的学识、开阔活跃的思维、对学术前沿的敏锐触感和准确把握、 严谨的治学态度和勤奋的敬业精神所熏陶和激励,并且从中获益良多;在生活和 为人上,须老师更是勉励我自励上进,正品端德,给予了我无微不至的关怀。在 此,我对恩师表示最崇高的敬意和最诚挚的感谢! 宋泽海老师对于我的科研工作和论文都提出了许多的宝贵意见,宋老师治学 态度严谨,工作作风踏实细致,工作热情饱满向上,是我学习的好榜样,在此向 宋老师表示衷心的感谢。 感谢我的师兄蔺旭东博士,在蔺师兄的悉心指导下,我渐渐融入了实验室这 个大家庭,在实验室的研究生活主要都是在蔺旭东博士的指导下进行的。在交大 的学习和科研中他给了我很多帮助,每当迸发出一个好的想法,我总是与蔺师兄 交流、探讨,他也总能给我指出其中存在的问题或引出更好的思路,这些指点最 终促成了本文的完成。 在实验室工作及撰写论文期间,牛玲、刘裕玲、李锦善、谢作将等同学对我 论文中的研究工作给予了热情帮助,在此向他们表达我的感激之情。 另外也感谢我的父母,他们的理解和支持使我能够在学校专心完成我的学业。 最后,衷心地感谢在百忙之中审阅论文的各位老师和专家,恳请各位老师多 多批评指正,并提出宝贵的意见。 1 引言 1 1 研究背景 互联网目前己经成为全球信息传递与共享的重要资源和途径。随着i n t e m e t 的 发展,异构信息源集成以及存储技术的进步,网络中涌现出大量诸如w e b 页面和 x m l 文档等半结构化数据资源。x m l 逐渐成为数据表示、存储和交换的标准之 一。越来越多的w e b 应用,如网格、电子商务、数字图书馆等采用x m l 作为数 据的表示形式。如何高效表示、存储和查询x m l 文档引起越来越多的研究人员的 关注。 传统的x m l 查询可以分为两类:第一类是结构查询,x p a t h t l l 和x q u e 2 】是 其代表。对于结构查询而言,用户需要了解所查询x m l 文档的结构,才能够构造 查询表达式。这种查询表达式可以准确地描述用户的查询意图,但是,现实世界 中大多数的x m l 文档并没有提供其结构信息,如;d t d 。即使这种结构信息存在, 描述同样内容的x m l 文件,其结构也可能干差万别。因此,用户需要对特定的 x m l 文档编写特定的x m l 查询表达式;第二类是关键字查询。由于查询表达式 中仅仅包含关键字,用户即使不知道所查询的目标x m l 文档的任何结构信息,也 可以方便地构造查询。x m l 文档关键词查询和传统的信息检索技术有着显著的区 别。它们的查询表达式都是若干关键字,而区别在于查询返回的结果。在传统的 信息检索中,查询对象往往是大量的包含各种信息的文件,例如:h t m l 页面, 文本文件等。而查询返回的结果是以单个h t m l 页面为单位,即:只要某个文件 中包含查询表达式中所有的关键字,就将其作为一个查询结果返回。 与传统的信息检索技术不同,在x m l 文档关键字查询中,查询对象有可能是 单个的、包含大量内容信息的x m l 文档,而查询返回的结果是该x m l 文档的一 些片断。 1 2 研究现状 国外对x m l 数据的信息检索研究开始于6 年前【3 1 ,随即成为数据库和信息检 索界研究热点之一。欧洲d e l o sn e t w o r ko f e x c e l l e n c ef o rd i g i t a ll i b r a r i e s 与i e e e ” c o m p u t e rs o c i e t y 于2 0 0 2 年共同启动i n i t i a t i v eo fe v a l u a t i o nf o rx m lr e t r i e v a l ( i n d e x ) 创新活动,旨在采取统一的计分过程为研究者的x m l 检索方法进行 评估,同时为研究机构比较其成果提供一个论坛。每年一次的i n d e x 会议吸引了 众多研究机构与学者参与x m l 信息检索问题的讨论。 在x m l 关键字查询领域,已有的方法包括m e e t l 4 1 ,x r a n k ! n ,s c h e m a - f r e e 6 1 , x s e a r c h q ,x s e e k t 8 】等。x m l 文档关键字查询的一个基本问题是,对于x m l 文 档中的任意两个节点,如何判断其是否语义相关。现有的大多数方法都是基于l c a ( l o w e s tc o m m o na n c e s t o r ) 的概念来判别。 m e e t 运算符将节点的最小公共祖先( l c a ) 直接作为查询结果返回。它提出 了一种递归计算l c a 的算法,但是没有考虑节点的语义相关性问题,所以查询的 准确率往往较低。x r a n k 提出了种基于栈的l c a 算法,以及查询结果排序的算 法,但x r a n k 同样没有考虑l c a 的语义。s c h e m a - f r e ex q u e r y 在l c a 的基础上, 提出了m l c a ( m e a n i n g f u ll c a ) 的概念。对于m l c a 而言,x m l 文档中的节点 只与某个节点集合中与其最近的节点语义相关。m l c a 的判断标准在大多数情况 下都是适用的,能够得到用户满意的查询结果。但是,m l c a 的查询语言使用了 扩展的x q u e r y 语言,因此要求用户在编写查询表达式时预先知道文档的结构,并 且对于不同的x m l 文档,需要编写不同的查询表达式。x s e a r c h 是一个基于关键 词语义的x m l 搜索引擎。它提出了用于判断两个节点之问是否语义相关的 i n t e r c o n n e c t i o n 概念。具体而言,对于x m l 文档中的两个节点,若在连接这两个 节点的路径上没有出现两个相同标签的节点,则认为它们语义相关;否则认为其 不相关。i n t e r c o n n e c t i o n 这种判别方法具有其合理性,能够起到较好的语义区分作 用,但x s e a r c h 的不足之处在于,它需要预先计算所有节点对之间相关与否,或 者在查询时即时判断节点对之间的关系。然而,前者需要占用大量的存储空间, 后者由于需要涉及递归计算,时间效率较低,特别是在x m l 文档深度较大时所需 时间更长。 x s e e k 参考了结构化查询中将输入关键字分类的思想,于是将关键字分成两 类:指定查询条件的关键字和表明返回结果的关键字,以此来体现更多的查询语 义。然而遗憾的是,x s e e k 并没有使这两种类型的关键字充分发挥其各自不同的作 用,使得多数情况下仍无法准确的捕捉用户的查询意图。 总之,现有的研究工作没有有效地解决x m l 文档关键字查询问题。它们或者 没有考虑查询结果的语义闯题,或者实现技术的时间、空间复杂度较高。 1 3 本文完成的工作 随着i n t e m e t 的发展,x m l 逐渐成为了一种信息发布和交换的标准,越来越 多的人需要从x m l 格式存储的文件中查询信息。因此,如何快速有效地执行x m l 2 文档的查询成为了一个重要的问题,并成为当前研究领域内的一个研究热点。 传统的使用查询语言对x m l 文档查询,需要用户事先掌握复杂的查询语法并 且了解x m l 文档的结构,不利于普通用户使用;而关键字查询则克服了这样的缺 点,具有广阔的发展前景。 在上述背景之下,本文完成的工作是: 首先,介绍了) ( m l 数据查询的研究背景,总结了关键字查询领域的研究 现状,指出了已有查询方法的特点和不足之处。 其次,叙述了x m l 数据查询的理论和相关技术,介绍了两种查询方法: 使用查询语言进行查询和关键字查询。以作为查询语言标准的x q u e r y 为 例,介绍了使用查询语言进行查询的基本情况。 第三,理论部分重点叙述了关键字查询的理论基础,包括d e w e y 编码及 其基本操作,关键字匹配的方法以及关于返回结果排序问题的解决思路。 随后对x r a n k 、x s e a r c h 和x s e e k3 种搜索引擎进行了分析和比较。 第四,考察了已有的关键字查询方法的同时,借鉴x s e e k 中将关键字分类 的思想,提出了一种新的基于关键字分类的查询方法。该方法将关键字分 为谓词关键字和结果关键字,谓词关键字只用于限定查询范围,不出现在 最终的结果集中,只有结果关键字用于返回结果集,从而有效地减小了结 果集。定义了简单的查询语法,提出了新的x m l 关键字查询流程,使分 类的关键字表达式在查询过程中发挥出“类结构化查询 的作用,从而有 效地提高查询精度。定义了“相似节点对 ( s n p ) 的概念,提出了s n p 发现算法和有效相似节点对( m s n p ) 判定方法,为寻找关键字匹配节点 引入了新的思路。构建名称节点、值节点和主d e w e y 码节点的索引结构, 以加快节点和其d e w e y 码之间的相互查找。随后详细叙述了基于关键字 分类的x m l 关键字查询算法,给出了具体的步骤和流程。 最后,通过实验比较新的基于关键字分类的查询方法和传统关键字查询 x s e e k 方法,结论是基于关键字分类的查询方法具有更强的语义表达能 力,能够更为准确的捕捉用户的查询意图,从而减小了返回结果集;性能 实验从不同查询用例、不同关键字数目以及不同数据集大小3 个方面进行 基于关键字分类的方法与传统关键字查询方法在返回时间方面的比较,得 出最终结论,基于关键字分类的方法可以返回更匹配的查询结果,同时具 有良好的时间性能。 3 1 4 论文的组织结构 第l 章给出了课题的出发点以及研究的问题及范围,简要介绍了x m l 文档中 关键字查询领域的研究背景、研究现状以及本文所完成的工作。 第2 章是全文的理论基础,分别介绍了x m l 相关知识,包括x m l 的产生与 发展、x m l 的特点及其主要标准;叙述了x m l 文档的一种传统查询方法一使 用查询语言进行查询。总结了已有的各种查询语言的特点,单独介绍了作为查询 语言标准的x q u e r y ;重点介绍了关键字查询的相关技术,包括d e w e y 编码及其基 本操作,关键字匹配的方法以及关于返回结果排序问题的解决思路;还叙述了在 x m l 关键字查询领域比较出色的3 个搜索引擎,进行了比较,给出了各自的框架。 第3 章是本文的核心部分,详细叙述了一种新的基于关键字分类的查询方法, 包括定义了简单的查询语法,分析了查询处理过程,提出了“相似节点对 概念 以及相似节点对发现算法、有效相似节点对的判定方法;结合d e w e y 编码,分别 建立起3 种索引结构:名称节点索引、值节点索引和主d e w e y 码节点索引;最后 给出了基于关键字分类查询算法的详细流程。 第4 章给出了本文的实验过程和结果。首先介绍了实验环境及b e r k e l e yd b 的 相关情况,然后详细描述了实验方法,接下来使用不同的查询用例在两种数据集 上分别进行语义实验和性能实验并记录实验结果,最后对实验结果进行比较和分 析,得出结论。 第5 章总结全文,对本课题研究做了分析和总结,明确提出了本文的主要研 究成果及创新点所在,并给出了本课题将来的研究内容和方向。 图1 1 是本文研究内容的组织结构图。 图1 1 论文的组织结构 f i g u r e1 1 s t r u c t u r eo ft h et h e s i s 4 2x m l 数据查询技术概述 随着因特网的迅速发展,网站和w e b 页面也急剧膨胀,用户要在w e b 的信息 海洋中找到符合需要的信息就必须使用搜索引擎。目前,搜索引擎的使用已成为 排在收发电子邮件之后的第二大互联网应用技术。搜索引擎起源于传统的信息检 索理论,即计算机程序通过扫描每一篇文章中的每一个词,建立以词为单位的倒 排索引文件,检索程序根据检索词在每一篇文章中出现的频率和每一个检索词在 一篇文章中出现的概率,对包含这些检索词的文章进行排序,最后输出排序结果。 可以看到关键字检索技术是搜索引擎的核心支撑技术,本文研究的就是x m l 关键 字查询技术。 当前的通用搜索引擎通常都是针对静态h t m l ( 超文本标记语言) 设计的。 由于h t m l 只是一种简单的表示语言:它的功能不是用来描述页面内容,而是用 来描述这些内容是如何显示的,所以无法对检索信息作精确定位,导致w e b 信息 传输量大,查询的结果极不精确。 例如,现在的搜索引擎经常会返回一些无关的信息。为了搜索位于b a t h 市的 所有旅店的信息,我们输入关键字h o t e l 和b a t h ,搜索引擎往往返回所有的带有卫 生间( b a t h r o o m ) 的旅店消息,却可能会丢失位于b a t h 市的旅店信息。更糟糕的 是,这样的查询会返回所有包含这两个关键字的文档,比如那些卫生设备公司在 旅店举办会议的消息、出版物等。返回这些不合格的结果并不是因为查询算法的 缘故,而是因为h t m l 自身的缺陷。目前流行的基于h t m l 的搜索引擎g o o g l e 是通过关键字或者是内容来搜索隔离信息的,因为他们所有的操作对象都是 h t m l 文档。所有基于内容的搜索引擎,其查询效果都不太理想 9 1 。 随着x m l 的出现,这一切都有了转机。与h t m l 相比,x m l 以一种开放的 和自描述的方式来定义数据的结构,它不但定义了数据的结构同时也描述了数据 的内容。我们可以把x m l 看作是一种数据描述语言。它同时也是一种标识语言, 通过标识来定义数据的结构,而这些标识是由我们自己定义的,包含了特定的含 义,表示着数据的内容。这和h t m l 有着本质的区别。h t m l 的标识是预先定义 的,描述的是这些数据应该如何被显示。用x m l 描述w e b 数据使得数据的结构 和表示相分离,用x m l 语言来描述数据的语义和内容,使得基于知识的、基于语 义的和基于内容的搜索成为可能。 i n t e r n 烈上已经涌现了大量的x m l 页面、站点和应用开发工具,x m l 已成为 w e b 信息发布和交换事实上的标准,对x m l 的深入研究将有力促进企业的信息化 和电子商务,具有巨大的应用前景和经济效益。 5 2 1x m l 概述 x m l 作为互连网上一种信息交换标准,包含的内容非常丰富,主要技术有: x m l 模式语言( d t d 和x m ls c h e m a ) 、x m l 文档解析技术( s a x 和d o m ) 、 x m l 文档查询技术( x p a t h 、x q u e r y 等) 以及x m l 文档表现技术( x s l ) 等。 与h 刑l 相比,x m l 具有许多优点: ( 1 ) x m l 简单,自我描述且易于解析。使得x m l 具有机器可读性,一个应用 可以按照各种方式解析、过滤、重构x m l 文档。 ( 2 ) h t m l 中的标记是固定的,不能扩展,而x m l 的标记由用户定义,可以 任意地扩展。x m l 的嵌套结构可以表示现实世界中各种复杂的对象,各种格式的 数据都可以比较容易地转化为x m l 数据,这使得x m l 非常适合于w e b 信息的发 布与集成。 ( 3 ) h t m l 中的标记表示的是数据的显示格式,没有任何语义。而x m l 的标 记则明确指出了数据的含义,使得细粒度的x m l 数据处理成为可能。 ( 4 ) x m l 实现了内容、结构和表现三者的分离。文档类型定义( d t d ) 描述 了文档中元素和子元素的嵌套结构,不同的用户可以通过x s l 按照不同的显示方 式显示全部或部分的文档内容。 h t m l 语言是面向显示的,信息的内容是靠用户来理解的,而x m l 语言是面 向内容的,其语义隐含在语言的标记中。因此,x m l 语言更适合用来表示数据, 而且它的面向数据交换的图形推动了w e b 应用模式的发展,它反映的是有结构并 具有自描述能力的数据。以x m l 数据为基础的新一代的w w w 环境是直接面对 w e b 数据的,不仅可以很好地兼容原有的w e b 应用,而且可以更优地实现w w w 这一分布于计算机环境下的信息共享与交换。因此,它是w e b 信息技术发展的必 然趋势。 2 1 1x m l 的产生与发展 目前,w e b 上的通用标识语言是超文本标识语言h t m l ( h y p e r t e x tm a r k u p l a n g u a g e ) ,正是由于h t m l 的出现,才使得i n t e r n e t 迅速发展到今天这样庞大的 规模。但是随着i n t e m e t 的发展,人们反过来又逐渐认识到h t m l 的不足之处: h t m l 是用于描述数据的显示形式而非对数据本身的描述,因此,在w e b 上对 h t m l 文档内含数据的处理显得非常困难;h t m l 的非扩展性也给它的应用带来 一定的局限性。h t m l 的文本中只能利用规定的标签,由此造成的接受文本一方 如果要进行有特定含义的处理时,单凭已有的标签,其信息量是远远不够的。也 6 就是说,靠h t m l 无法在网络上实现复杂的业务系统,因为业务系统中往往包含 着已定义标签无法表达的众多的特定含义。1 9 9 6 年,万维网协会( w 3 c ) 开始对 h t m l 的后续语言进行研究,并于1 9 9 8 年2 月正式推出了可扩展标识语言x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 。 x m l 是i s o 定义的标准通用标记语言s g m l ( s t a n d a r dg e n e r a lm a r k u p l a n g u a g e ) 的一个子集,用于支持i n t e m e t 上有结构文档的交换。x m l 是面向内 容的,和h t m l 相比,它具有更多样化的结构和更丰富的语义,并具有可扩展性 良好、易于掌握、自描述等特点,适用于w e b 上的数据交换。可以预言,x m l 将 成为数据组织和交换的事实标准【l 们,大量的x m l 数据将出现在w e b 上。x m l 数 据模型与半结构数据模型有着很多的相似性,它既为半结构数据的研究提供了广 阔的应用前景,同时也推动了半结构化数据研究的发展。随着x m l 标准的推出, x m l 不仅用在自然语言上,也广泛用在其它各类信息的表示、交换、检索、挖掘 及各种商业应用中。 x m l 是一种元标记语言( m e t a m a r k u pl a n g u a g e ) ,可提供描述结构化资料的 格式,用来描述数据的语言。x m l 数据的元素标记表示数据的意义而不是描述数 据的显示( 像在h t m l 中那样) ,数据元素的联系通过简单的嵌套和引用来表示。 x m l 由若干规则组成,这些规则可用于创建标记语言,并能用解析器处理所有新 创建的标记语言,正如h t m l 为第一个计算机用户阅读i n t e m e t 文档提供一种显 示方式一样,x m l 创建了一种任何人都能读出和写入的世界语。x m l 解决了 h t m l 不能解决的两个w e b 问题】,即i n t e m e t 发展速度快而接入速度慢的问题, 以及可利用的信息多,但难以找到自己需要的那部分信息的问题。x m l 能增加结 构和语义信息,可使计算机和服务器即时处理多种形式的信息。因此,运用x m l 的扩展功能不仅能从w 曲服务器下载大量的信息,还能大大减少网络业务量。 x m l 中的标记( t a g ) 是没有预先定义的,使用者必须要自定义需要的标记, x m l 是能够进行自描述( s e l f - d e s c r i b i n g ) 的语言。x m l 使用d t d ( d o c u m e n tt y p e d e f i n i t i o n 文档类型定义) 来显示这些数据,x s l ( e x t e n s i b l es t y l es h e e tl a n g u a g e ) 提出一种来描述这些文档如何显示的机制,它是x m l 的样式表描述语言。x s l 包 括两部分:一个用来转换x m l 文档的方法;一个用来格式化x m l 文档的方法。 x l l ( e x t e n s i b l el i n kl a n g u a g e ) 是x m l 连接语言,它提供x m l 中的连接,与 h t m l 中的类似,但功能更强大。使用x l l ,可以多方向连接,且连接存在于对 象层级,而不仅仅是页面层级。由于x m l 能够标记更多的信息,所以它就能使用 户很轻松地找到他们需要的信息。 7 2 1 2x m l 文档主要特点 一个x m l 文档由嵌套的元素层次结构构成,每个文档有一个唯一的根节点, 一个元素有一个标记,描述该元素的含义,一个元素由从起始标记到终止标记的 区域构成,该区域可以是嵌套的子元素,也可以是属性或文本串值。图2 1 显示了 一个描述研究项目信息的x m l 文档样例,该文档介绍了以项目p r o j e c t 元素为根 的一个x m l 文档。 从图2 1 中我们不难发现,在x m l 文档中,一个元素可以由其一个或多个子 元素描述;其次,x m l 数据是半结构化的数据,一个元素可以有多个标记相同的 子元素,且标记相同的子元素可能具有不同的结构,如:p r o j e c t 有两个异构的 m e m b e r 子元素。 图2 1x m l 文档 f i g u r e 2 1x m ld o c u m e n t x m l 文档有两种基本类型: ( 1 ) 良构型x m l 文档 良构是x m l 文档基本的要求,良构型文档必须符合某些一致性约束并且不引 用任何外部的d t d 。一个符合x m l 的标记规范的文档被称为良构( w 色l l f o r m e d ) 的文档,一个良构型x m l 文档可以没有d t d 定义。良构型文档不必遵守其内部 8 的d t d ,尽管它可能自身带有d t d 。 ( 2 ) 有效型x m l 文档 有效型x m l 文档是良构的,且必须满足正确性约束。有效型文档标注的结构 必须符合某个和文档关联的d t d ,它必须在内部包含d t d 或者显式地指明它所引 用的外部d t d 文件,d t d 可以是预先定义的,在创建和操纵整个有效型x m l 文 档过程中都必须符合该d t d 。 x m l 数据的主要特点如下: ( 1 ) 简单性。x m l 经过精心设计,整个规范简单明了,它由若干规则组成, 这些规则可用于创建标记语言,并能用解析器处理所有新创建的标记语言。x m l 的严格定义使人类和机器都能更容易地阅读文档。 ( 2 ) 开放性。x m l 技术根据标准规范,允许数据在任何平台上读取和处理。 x m l 作为与平台无关语言的成功范例,究其原因在于简单的文本形式。任何人都 只要了解了x m l 语言的基本规则和语法就可以创建x m l 文档。 ( 3 ) 可扩展性。x m l 在两个意义上是可扩展的。首先,它允许用户创建自己 的d t d ,有效地创建可被用于多种应用的“可扩展的 标记集。其次,使用几个 附加的标准,用户可以对x m l 进行扩展,这些附加标准可以向核心的x m l 功能 集增加样式、链接和参照能力。作为一个核心标准,x m l 为可能产生的别的标准 提供了一个坚实的基础。 ( 4 ) 互操作性。x m l 可以在多种平台上使用,而且可以用多种工具进行解释。 因为文档的结构是相容的,所以解释它们的语法分析器就可以以较低的费用建立。 x m l 支持用于字符编码的许多主要标准,允许它在全世界许多不同的计算环境中 使用。因此,x m l 不仅能在不同的计算机系统之间交换信息,而且能跨国界和超 越不同文化疆界交换信息。 2 1 3x m l 的主要标准 x m l 作为一种元语言,提供的是描述具体应用语言的基本方法。针对具体的 应用领域需要制定相应的应用标准。例如,具体的标记所表示的语义,附加的语 法约束等。另外,针对x m l 应用中的公用特征、方法或规则,w 3 c 制定了一些 x m l 的基础标准。x m l 基础标准是为x m l 的进一步实用化制定的标准,规定了 采用x m l 制定标准时一些公用特征、方法或规则。 d t d ( d o c u m e n tt y p ed e f i n i t i o n ,文档类型定义) :d t d 规范实际是x m l 规 范的一部分,同时又是可选的,用户可以写一个没有d t d 的x m l 文档。d t d 规 定在x m l 文档中可以包含的标记种类和有效布置,因此可保证用户不会创建一个 9 无效的x m l 结构。结构满足d t d 要求的x m l 文档称为有效的文档。 x m ls c h e m a ( l 模式) :x m ls c h e m a 是另一种确定x m l 文档有效性的 方法。它定义一个文档可以包含的元素类型,它们的关系和它们可包含的数据。 它包含d t d 所提供的全部功能并有所扩展,标准本身用x m l 书写,其灵活性远 远超出了现有d t d 规范的方式。 n a m e s p a c c s ( 命名空间) :n a m c s p a c e 用于保证x m ld t d 中名字的一致性, 以便不同的d t d 中的名字在需要时可以合并到一个文档中。 d o m ( d o c u m e n to b j e c tm o d e l ,文档对象模型) :d o m 是w 3 c 发展的浏览 x m l 文档的一种标准a p i ,其不仅提供了对存储在内存中的x m l 文档的一个完 全的表示,也提供了随机访问整个文档的方法。因此,可将d o m 看作一个标准的 连接文档和应用程序或脚本语言的结构体系,提供给用户一个接口以装载、定位、 操作和序列化l 文档。 s a x ( s i m p l ea p if o rx m l ) :s a x 是一个基于事件的x m l 文档解析标准, 通过事件驱动来识别x m l 文档的内容,即当它在x m l 文档中发现特殊符号时, 它就会触发相关的事件。s a x 的这一特性使应用程序开发人员可以在相应的事件 中写入特定的处理代码。s a x 以序列的形式处理文档,不需要在内存中建立整个 文档的树结构,因此与d o m 相比,s a x 对内存的需求要少得多,可认为其是一 个轻量级的接口集合。 x p a t h ( x m lp a t hl a n g u a g e ,x m l 路径语言) :x p a t h 是一种既精密又复杂的 语言,描述如何识别、选择、匹配x m l 文件中的各个构成元件,包括元素、属性、 文字内容等。x p a t h 定义了一些可对x m l 文档中的数据进行“寻址 的表达式, 其操作对象是x m l 树状结构中的节点。 x s l ( e x t e n s i b l es t y l e s h e e tl a n g u a g e ,可扩展样式单语言) :x s l 定义了x m l 的语法规范,该语法规范将被用来把x m l 文件转换成h t m l 、x m l 或其他格式 的文档。一个x s l 样式表集合了一系列设计规则,用于从x m l 文件中抽取信息, 并将其转换成h t m l 等其他格式。此外,x s l 使数据与其表现形式相互独立。 x m l 文档有两种解析方式s a x 和d o m 。前者由事件驱动,通过串行的方式 来处理文档,即当它遇到一个开始或者结束标记的时候,它向应用程序发送消息, 由应用程序决定如何进行处理;后者则根据文档内容建立一个层次的数据结构, 提供用户一个操作文档的接口。 d o m 操作x m l 文档时,首先读取该文档,然后将其分割成单个的对象( 例 如元素、属性、注释等) ,再在内存中创建一个关于该文档的树结构。d o m 解析 方式使得开发人员能够反复使用该文档信息,但当文档很大时,所需消耗的内存 空间就非常可观。而s a x 不会因为x m l 文档尺寸的增大而增加对内存的需求, 1 0 因此其对内存的需求比d o m 要小得多。然而,正因为s a x 解析器没有将整个文 档存放到内存中,因此其不能随机的定位到文档的特定部分,也不能实现复杂的 搜索。开发人员在处理过程中也必须按顺序处理信息。s a x 允许用户在任何时候 终止对x m l 文档的解析,这使得处理文档的部分信息成为可能在得到某些特 定信息后,就可终止解析,这一特性使得系统资源得到极大的优化。 s a x 和d o m 是两种最流行的应用于x m l 的编程a p i ,这两种技术的根本 差别在于应用程序得到的x m l 文档数据的方式不同,s a x 是事件驱动模型,这 意味着当解析器识别出文档特性时,应用程序不断地接受到通知。而相反地,d o m 模型是基于对象的,整篇x m l 文档作为分层次排列的对象来解析和存储,应用程 序可以随机访问这些对象,如表2 1 所示应用程序的特性决定采用哪种方法,比如 x m l 数据被用作实时消息发送协议,那么事件驱动可能是合适的;然而对于x m l 文档用作一个简单数据库的应用程序来说,对象模型可能更适当些。 表2 1d o m 和s a x 的对比 t a b l e2 1c o m p a r i s i o no fd o ma n ds a x d o ms a x 创建一个位于内存中的文档树副本解析时不从x m l 文档中存储数据 位于内存中的文档树是可以修改的不支持对x m l 数据的修改和编写 必须在应用程序建立可用文档树之前解在解析时文档的数据是可用的 析出完整的文档 2 1 4x m l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 常州网格化管理办法
- 原材料出库管理办法
- 新任职经理管理办法
- 天津楼门牌管理办法
- 南宁局道口管理办法
- 沈阳群租房管理办法
- 水管员生产管理办法
- 室内钓鱼馆管理办法
- 团费收缴及管理办法
- 大学数学部管理办法
- 阁楼钢结构制作合同范本
- 儿童防治传染病课件
- 2025至2030中国电液执行机构行业发展现状及未来趋势前景预判报告
- (2025)《中华人民共和国监察法》知识考试题库及参考答案
- 2024 年度投资者知权行权维权调查报告
- 物业费的催费技巧培训
- 2025年夏季防暑降温安全知识培训试题
- 空调维修服务管理制度
- 基于隐私保护的图像加密技术研究-洞察阐释
- 护理事业十五五发展规划(2026-2030)
- 营业执照过户协议书
评论
0/150
提交评论