




已阅读5页,还剩58页未读, 继续免费阅读
(计算机应用技术专业论文)xml在飞行数据处理服务中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
) m 儿在飞行数据处理服务中的应用 专业:计算机应用 研究生:陈锐指导教师:滞甚胜教授 v 7 7 s 3 6 s 随着我国航空事业的发展,空中交通管制也越来越受到关注。与此同时,航 空电报的拍发量也越来越大,电报的使用成为了空中交通管制的关键环节。因此 对空管系统飞行数据处理服务器的电报处理技术的要求也越来越高。本文在当前 产品所使用的电报处理解决方案的基础上,提出了一种基于x m l 和正则表达式 的电报处理解决方案。本文主要有以下4 点内容: ( 1 )简要介绍了x m l 和正则表达式。介绍了x m l 的优势以及x m l 的几个 要素,x m l 文档的结构,x m l 解析器的原理以及正则表达式的语法。基 于x m l 和正则表达式的优点,分析了这两种技术在飞行数据处理服务中 的应用。 ( 2 ) 探讨了基于文档对象模型( d o m ) 的x m l 解析器的设计思路,解析器具 体类的设计以及关键算法的实现,为后面研究使用x m l 解析器进行报文 译码的方案打下基础。经实验证明,这种面向对象的解析器设计方法是可 行的,运行起来是高效的。 ( 3 )着重探讨了报文译码技术。在使用前面阐述过的x m l 解析器的基础上, 提出了一种基于x m l 技术来实现报文译码规则,用正则表达式进行模式 匹配的报文译码方案,经实验证明这种方法是可行的,高效的。和当前系 统所使用的译码方法比较起来,这种方法报文识别率更高,出错定位更加 准确。而且由于在方案中使用了正则表达式,程序的可靠性更高,代码也 更加精练,更有利于系统的维护和升级。 ( 4 ) 探讨了如何将x m l 和正则表达式应用于报文的接收和发送流程。这些应 用包括:报文译码、报文结果的保存以及报文的自动组装。 关键词;x m l ,f d p ,解析嚣,译码规则,译码算法 i 】 a b s tr a c t a p p l i c a t i o no f x m l i nf l i g h td a t ap r o c e s s m a j o r :c o m p u t e ra p p l i c a t i o n g r a d u a t e :c h e nr u ia d v i s o r :p m y o uz h i s h e n g w i t ht h ed e v e l o p m e n to f a v i a t i o n ,0 1 1 rc o u n l r yp a y sm o r ea n dm o r ea t t e n t i o nt oa i r t r a f f i cc o n t r 0 1 a tt h es a m et i m e ,t h ea m o u n to f a v i a t i o nt e l e g r a mi sm u c hm o r eb i g g e r t h a nb e f o r e t h eu s i n go ft e l e g r a m sb e c o m e st h ek e yp a r to fa i rt r a f f i cc o n t r 0 1 i t b e c o m e sv e r yu r g e n tt od e v e l o ph i g h - q u a z i t yt e l e g r a md e a l i n gs c h e m ef o rh y m gd a t a p r o c e s si na i rt r a f f i cc o n t r o ls y s t e m b a s e do nt h es c h e m eu s e di nt h ep r o d u c t ,t h i s p a p e rg i v e sak i n do f t e l e g r a md e c o d i n gs c h e m e x m la n dr e g u l a re x p r e s s i o na r ek e y p a r tf o rt h i ss c h e m e i ti sr e l a t e di nt h ef o l l o w i n g4p a r t s : ( 1 ) ii n t r o d u c e dx m la n dr e g u l a re x p r e s s i o n i n c l u d i n gt h ea d v a n t a g eo f x m l , t h ee s s e n t i a lo f x m l , x m ld o c u m e n ts t r u c t u r e , t h ep r i n c i p l eo f x m lp a r s e r a n dt h es y n t a xo fr e g u l a re x p r e s s i o n b a s eo nt h ea d v a n t a g e so fx m la n d r e g u l a re x p r e s s i o n , ib r o u g h tf o r w a r dt h ea p p l i c a t i o n so ft h o s et w o t e c h n o l o g i e si nf l y i n gd a t ap r o c e s s ( 2 ) ir e l a t e dt h ed c s i g 血gm e t h o da n dk e yf u n c t i o nf o ra nx m lp a r s e rb a s e do n d o c u m e n to b j e c tm o d e l ( d o m ) i ti st h ef o u n d a t i o nf o rb r i n g i n gf o r w a r da k i n do ft e l e g r a md e c n d m gs c h e m ew h i c hw i l lu s ex m lp a r s e r x l a r o u g h e x p e r i m e n t , w ec a nf i n do u tt h a tt h ed e s i g n i n gm e t h o di so f r e a lu s e ( 3 ) b a s e d0 1 1t h ex m lp a r s e rr e l a t e da b o v e ,ib r o u g h tf o r w a r dak i n do f t e l e g r a m d e c o d i n gs c h e m ew h i c hu s e sx m ld o c u m e n tt or e s o l v et h ed e s i g n i n go f d e c o d i n gm l ea n dr e g u l a re x p r e s s i o nt op u tu pp a t t e r nm a t c h i n g t h r o u g h ( 4 ) e x p e r i m e n t , w ec a l lf i n do u tt h a tt h i ss c h e m ei s & r e a lu s e c o m p a r i n gw i t ht h e s c h e m eu s i n gi nt h ep r o d u c t , t h ed e c o d i n gp e r f o r m a n c eo f t h i ss c h e m ei sb e t t e r a n dt h ee r r o rc h e c k i n gi si l l o r ea c c u r a t e a f t e ru s i n go fr e g u l a re x p r e s s i o ni n t h es c h e m e ,t h ep r o g r a mi sm o r er e l i a b l ea n dt h ec o d ei sm o r ec o n c i s e ii n t r o d u c e dt h ep r o c e s so fs e n d i n ga n dr e c e i v i n gt e l e g r a mi na i rt r a f f i c c o n t r o ls y s t e m t h e n , ig a v et h ea p p l i c a t i o no f x m la n dr e g u l a re x p r e s s i o n i nt h et w op r o c e s s ,i n c l u d i n g :t e l e g r a md e c o d i n g ,t h ee x p r e s s i o no fd e c o d i n g r e s u l ta n dt h ea s s e m b l i n go f t e l e g r a m k e yw o r d s :x m l ,f o p ,p a r s e r ,d e c o d i n gr u _ e ,d e c o d i n gf u n c t i o n v 1 绪言 1 1 空管自动化系统简介 1 1 1 我国空中交通管制的现状与规划 空中交通管制系统( 朋) 的目的是对航空器的空中活动进行有效的管理, 维护空中交通秩序,保障空中交通畅通,保证飞行安全和提高飞行效率,防止航 空器相撞,防止机场及其附近空域内的航空器同障碍物相撞。 我国目前的空中交通管制水平与国外相比还处于相对比较落后的状况。就全 国范围来说,实行“统一管制、分别指挥”的体制。就民航内部来说,空管系统 实行“分级管理”的体制,即各级空管部门分别隶属于民航总局、地区管理局、 省( 市、区) 局以及航站。经过不断的建设,我国的空中交通管制基本形成了比 较完善的通信、导航、情报、气象保障系统。在管制方式方面,目前,尽管大部 分管制区配备了二次或一、二次雷达,但管制方式还没有进行根本性的变革,绝 大多数单位仍采用程序管制,或者雷达监视条件下缩小间隔的程序管制。 未来,我国民航空管系统的建设主要围绕空中交通管理系统的现代化展开。 总体建设思路是:以管制需求为先导,以三大管制中心建设为龙头,以航路通信 和二次雷达建设为主线,以通信网络和信息化建设为依托,以区域化和系统化建 设为组织实施方式,以技术培训和规章建设为保障手段,东部和中部地区积极推 进雷达管制建设,西部地区完善程序管制建设并积极应用a d s 等新技术。 在未来几十年,我国将大力发展新航行系统。发展新航行系统是一项重大变 革,新航行系统方案已获得国际民航组织第十届航行会议批准,美国、澳大利亚、 俄罗斯等国对新航行系统有了较长时间的研究和准备。美国、俄罗斯分别发射了 g p s 、g l o n a s s 全球卫星系统,为新航行系统的发展和推广提供了可能。我国空管 系统发展新航行系统拟分三步进行,首先在2 0 0 0 年以前,主要进行新航行系统的 试验,在我国西部地区筹建新航行系统航路,提供试验陛服务,用于积累经验; 其次在2 0 1 0 年前,制订并完善新航行系统标准和运行法规,完成现有飞机的改造, 逐步建设新航行系统各子系统,与现行系统并存运行,并作为现行系统的辅助设 施。再次,在2 0 1 0 年以后,全面发展推广新航行系统,对现行系统进行根本性的 改造,逐步与国际接轨。与此同时,为适应新一代空管系统的应用,我国空管体 制将仿效世界上先进国家的作法,采用囤家统一管制的模式,建立统一管理、集 中指挥的空管体制。 1 1 2 空中交通管制系统研发的意义 随着我国经济稳定陕速地增长,尤其是加入w t o 以后,我国的航空事业得 到了迅猛的发展,空中交通日益繁止。我国民用航空飞行量以每年将近2 0 0 o k 三= 右 的速度迅速增长。其中主要飞行量仍在东部地区,京广线以东地区的机场起降架 次占全国的7 6 以上,该地区空域内的飞行矛盾非常突出,同时中西部地区飞行 量也呈快速增长势头。由于近年来我国各地加快了航空港建设步伐,使航空港数 量及其吞吐量不断加大,航空港地理分布也日趋密集:机场的增多以及各航路流 量的增大,致使在航空港密集地区,如珠江三角洲、长江三角洲、京津地区等, 各机场间起落航线交叉重叠,互相影响,空中交通安全问题十分突出,现有空中 交通管制( a r c :a i rt r a f f i cc o n t r 0 1 ) 设备己不能有效地实旋调度和管理,严重制约 了我国航空运输业的发展。为满足进一步发展的需要,提高航空运输效率,保证 飞行安全和航班正常,保持空管系统与航运协调同步发展,我国民航发展急需加 快空管系统的系统化、自动化、网络化和信息化建设,研究建设现代化空管系统 是当务之急。 我国目前进口的a t c 系统价格昂贵,远不能满足我国的国情和实际需要, 因此我国迫切需要通过对空管系统关键技术的研制,开发具有自主知识产权的新 一代空管自动化系统,从而打破国外的技术封锁。我们研发的系统提供了很多符 合管制工作习惯的、减少工作量的功能,在飞行情报界面优化、飞行计划冲突预 调配、计划航路通报地址自动生成、电子飞行进程单和电子卡片、模拟训练等方 面具有鲜明的特色。该系统具有完全的自主知识产权,在很大程度上弥补了我国 在该方面的技术空白,也打破国外的技术封锁,具有重大的意义。 1 1 3 空管系统的总体架构 空中交通管制系统是一个庞大的系统工程,主要包括以下几个子系统:飞行 数据处理子系统、雷达数据处理子系统、人机界面子系统和系统监控子系统等。 图i 一1 是空管自动化系统结构示意图。 图l l 空管自动化系统结构示意图 ( 一) 飞行数据处理子系统 飞行数据处理( f d p ) 作为整个空管中心系统的数据处理核心之一,任务 主要是以飞行计划处理、飞行情报传输和处理为核心,完成与飞行有关的数据 和飞行情报的接收、发送、验证和自动处理,向管制员提供实时更新的飞行计 划、动态和辅助管制的工具和抉择依据,并且实时处理响应各管制席位进行的 操作,将这些信息分发到系统内外有关的用户。自动化的飞行数据处理增强了 空中交通管制能力,实时有效的数据处理为空中飞行的安全提供了保障。 飞行数据处理系统通过通信处理机与外界交换数据,提供了与飞行情报网 接口的能力,实现了与用户相邻单位现有空中交通管制中心系统的之间的互连 互通,飞行情报传输稳定、可靠。其主要功能有: ( 1 ) 飞行数据输入和修改 ( 2 ) 飞行计划处理 ( 3 ) 飞行航线处理 ( 4 ) 飞行计划与航迹配对及致性监视 ( 5 ) 飞行计划冲突探测和预先调配 ( 6 ) 飞行情报收发预处理 ( 7 ) 飞行情报处理 ( 8 ) 管制移交警示 ( 9 ) 炮射计划处理 ( 1 0 ) s s r 代码管理 ( 】) 重复性飞行计划管理 ( 1 2 ) 空域管理 ( 1 3 ) 飞行数据分配 ( 二) 雷达和a d s 处理 雷达和a d s 数据处理,也称为监视数据处理,是空管自动化系统的核心之 一,完成对外部输入的雷达数据( 含气象通道数据) 、a d s 数据这些监视数据的 处理,主要的功能包括: ( 1 ) 监视数据的外部输入 ( 2 ) 监视数据的预处理 ( 3 ) 监视数据的融合处理 ( 4 ) 雷达告警 ( 5 ) 实时质量监控 ( 6 ) 系统航迹和气象数据输出处理 4 同时通过网络系统向雷达数据显控席位、飞行数据处理系统发送系统航迹信 息及经处理的气象信息。雷达接口可根据实际需要选择接收1 1 6 路雷达信号, 它可以支持多种数据通讯协议,具有多种雷达数据接口:t o s h i b a ,a l e n i a , r a y t h e o n 、w e s t i n g h o u s e 、t h o m s o n 等。 ( 三) 人机界面 本系统的人机界面包括如下几个部分:雷达管制席、助理管制席、飞行情报 编辑席、技术监控席、系统支援席以及受训席和模拟飞行员席。对于雷达管制席 和助理管制席的工作模式包括系统模式、重演模式、旁路模式、训练模式四种模 式。人机界面子系统包括如下功能:情况显示、飞行数据列表及操作、飞行动态 显示及操作、报文编辑、报文发送、报文接收、报文检索、航行数据管理、气象 数据管理、飞行进程单打印、临时s s r 代码管理、飞行计划预调配、航路项可视 化编辑、系统监控信息显示与操作、用户专用背景图编辑、模拟飞行员操作、景 象数据记录与重演、v s p 参数管理等。 ( 四) 系统监视与控制 系统监控子系统是一个由分布于系统各处理机的监控代理,和位于服务器中 的系统主监控组成。监控子系统负责收集以下信息:雷达接口的监视信息、外部 接口的监视信息、处理机的监视信息、设备监视信息和双冗余网络监视信息等。 同时根据以上所收集的信息,分析当前系统的工作模式、整理出系统中主机的状 态角色l 模式信息和变化情况、整理出系统中设备的工作状态和状态变化情况、 整理出系统监视控制指令从发出到执行的情况。监控子系统还可以根据系统的需 要,控制系统自动进入紧急模式。同时,监控子系统还可以接收技术监控席位的 控制命令,将命令转发成对监控代理的控制指令。 1 2 选题背景 飞行数据处理系统的任务就是对飞行计划和相关数据的自动数据处理,并分 发到各个管制席位和雷达数据处理系统,改善空中交通管制服务。飞行数据处理 系统提高了安全性,增强了交通管制能力,减少了等待延时。 飞行数据处理系统包括与航空电报网的接口和飞行数据处理机。电报接n 完 成对航空动态电报的实时接收和发送,并进行译码。飞行数据处理机实现对飞行 计划和动态飞行数据自动管理,飞行进程的管理,为雷达显控系统和飞行数据显 控系统提供后台数据支持。 为了适应我国民航的发展,提高工作效率,逐步实现空管电报的自动化和飞 行信息处理自动化,民航总局制定了中国民航动态固定电报的拍发规定。如何根 据这种对电报格式的规定实现电报译码已成为空管电报处理自动化中必不可少的 一部分。另外由于我国报文格式不规范,报文格式的易变性,实现灵活稳定的译 码方法已变成飞行数据处理系统的技术关键。 在当前系统的报文处理流程中,报文译码模块进行出错定位不太准确,在编 发报文时不能很好的指示填写出错的项目。报文组装模块采用分支程序进行报文 组装,若规范发生变化,则需要更改源程序,不利于系统的维护和升级。 本文讨论了一种基于文档对象模型的x m l 解析器的设计,并针对上述系统 中报文处理的一些缺点,讨论了如何通过x m l 和正则表达式实现报文译码,并 讨论了如何通过x m l 实现译码结果的保存和报文的自动化组装。 1 3 作者参与的工作 2 0 0 3 年7 月,作者开始参与空中交通管制系统飞行数据处理服务器的研发工 作,对于飞行数据处理流程和报文的译码与组装具有了定的知识基础。本人主 要做了以下一些工作: 基于上下文无关文法的电报译码算法的研究和改进工作。 基于当前系统中的解决方案,研究报文接收和发送流程中可以进行的改进工 作,提出了用x m l 和正则表达式来实现报文译码,译码结果保存以及报文 组装。 基于当前开源的x m l 解析器,研究x m l 解析器的设计和实现方法。 译码规则的编写,包括自定义格式的电报译码规则和用x m l 文档表述的电 报译码舰贝u 。 6 基于x m l 和正则表达式技术的报文译码算法的研究。 本文结合我们所从事的空中交管系统的研发工作,着重介绍了x m l 技术在 空管系统飞行数据处理服务器中的应用。本文提出了一种x m l 解析器的设计思 想和实现方法,然后介绍了基于这种解析器,如何通过使用和正则表达式 对报文进行译码和对结果进行保存以及报文的组装技术。 本文第二章简单介绍了x m l 和正则表达式以及在飞行数据处理中的应用。 介绍了x m l 的优势,x m l 的几个要素,x m l 文档的结构,x m l 解析器的原理 以及正则表达式的语法。基于几和正则表达式的优点,分析了这两种技术在 飞行数据处理服务中的应用,包括报文译码,译码结果的保存以及报文的组装技 术。 第三章探讨了一种基于d o m 的x m l 解析器的设计思想和实现方法。这种 解析器是用x m l 技术和正则表达式实现报文译码的基础。 第四章探讨了报文译码技术。首先介绍了a f i n 报文规范,然后提出了种 基于x m l 技术和正则表达式的报文译码技术,分析了如何用v 几文档形式编 写报文译码规则,给出了一种译码算法的实现。 第五章主要从飞行数据处理器的角度介绍了报文的接收和发送流程。探讨了 x m l 和正则表达式在这两个流程中的具体应用,包括报文译码、译码结果的保 存和报文的组装。 最后一章是对全文的总结。 2x 舭和正则表达式 2 1x m l 简介 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 ( 可扩展置标语言) 的缩写。是由w 3 c ( w o r l d m d e w e b c o n s o r t i u m ,互连网联合组织) 于1 9 9 8 年2 月发布的种标准, 是s g m l ( s t a n d a r dg e n e r a l i z e dm a r k u pl a n g u a g e ,标准通用置标语言) 的一个简 化子集l ”。于它将s g m l 的丰富功能与h t m l 的易用性结合到w e b 的应用中, 以一种开放的自我描述方式定义了数据结构,在描述数据内容的时候能突出对数 据结构的描述,从而体现出数据之间的关系。这样所组织的数据对于应用程序和 用户都是友好的、可操作的。自x m l 推出以来,迅速得到软件开发商的支持和 程序开发人员的喜爱,显示出强大的生命力。 x m l 的优势之一是开放性,它允许各个组织、个人建立适合自己需要的标量 集合,并且这些置标可以迅速地投入使用。这特征使得x m l 可以在电子商务、 政府文档、司法、出版、c a d c a m 、保险机构、厂商和中介组织信息交换等领 域中一展身手,针对不同的系统、厂商体统各具特色的解决方案。 x m e 的优势之二是分离性,它的数据存储格式不受显示格式制约。一般来说, 一篇文档包括三个要素:数据、结构以及显示方式。对于h t m l 来说,显示方式 内嵌在数据中,这样在创建文本时,要时时考虑输出格式,如果因为需求不同而 需要对同样的内容进行不同风格的显示时,要从头创建一个全新的文档,重复工 作量很大。此外h t m l 缺乏对数据结构的描述,对于应用程序理解文档内容,抽 取语义信息都有诸多不便。 x m l 把文档的三要素独立出来,分别处理。首先把显示格式从数据内容中独 立出来,保存在样式单文件( s t y l es h e e t ) 中,这样如果需要改变文档的显示方式, 只要修改样式单文件就行了。x m l 的自我描述性质能够很好地表现许多复杂的 数据关系,使得基于x m l 的应用程序可以在x m l 文件中准确高效地搜索相关 的数据内容,忽略其他不相关部分。x m l 还有其他许多优点,比如它有利于不 8 同系统之间的信息交流,完全可以充当网际语言,并有希望成为数据和文档交换 的标准机制。 2 2x m l 的几个要素 2 2 1 标记 x 札标记负责提供和描述一个瑚l 文件或数据包( 也就是大家所熟知的x 札实体) 的内容结构【2j 。它们由界定内容的不同部分的标记( t a g ) 组成,负责提供到特殊 符号和文本宏的引用,或者将特殊指令传递给应用软件,以及把注释传递给文档编 辑器。x m l 使用尖括号来界定标记,以小于号( ) 结尾。与h 瑚 不同,几乎所有的) a 也标记都是大小写敏感的,其中包括元素的标记名和属性值: 也就是说:之所以大小写敏感,主要是满足) 眦国际化的设计目标和简化处理过程 的需要。大多数非英语语言并不把字母表分成若干种写法,( 即使是罗马字符) 许 多字母可能也没有对应的大写或小写。例如,在法语中“9 ”就不定是“9 ”( t g 可以是“c ”) 。希腊字母“西格马”只有一个大写形式,但却有两个小写形式; 阿拉伯语则对每一个字母使用多种形式的写法;等等。合并写法会存在许多缺陷, 尤其是对于非a s c l l 码更是如此,而x m l 的设计者们大多选择避这些问题。 2 2 2 元素 元素是) 。儿标记的基本组成部分。它们可以包含其它的元素、字符数据、字符引 用、实体引用、p i 、注释和或c d a t a 部纠“。这些合在起被称作元素内容( e l e m e n t c o n t e n t ) 。所有的儿数据( 除了注释、p i 和空白) 都必须包容在其他元素中。元 素使用标记( t a g ) 进行分隔。由一对尖括号( “ ”) 围住元素类型名( 个字 符串) 。每一个元素都必须由一个起始标记和一个结束标记分隔开,这与要求比较 松的h t 儿不同,后者的结束标记可以省略。这项规则唯一的例外是没有任何内容的 元素,即空元素( e m p t ye l e m e n t ) ,它既可以使用起始标记、结束标记对,也可 以使用短小精悍的混合形式:空元素标记。 元素是删l 对内容的包容器。它可以包容字符数据、其他元素以及其它标记( 注 释、p l 、实体引用等等) 。既然元素代表的是一些离散的对象,我们可以把它们看 作是x 3 1 l 语言中的名词。 一个元素开始的分隔符被称作起始标记。起始标记是个包含在尖括号里的元 素类型名。我们也可以把起始标记看作是“打丌”了一个元素,就像我们打开一个 文件或通信链路样。 一个元素最后的分隔符被称作结束标记。结束标记由一个反斜杠和元素类型名 组成,被围在对尖括号中。每一个结束标记都必须与一个起始标记相匹配,我们 可以把结束标记理解为关闭了一个由起始标记打开的元素 所以,带有完整的起始、结束标记的元素应该是如下形式: 包含的内容 ,某个标记, 空元素可能不包含任何内容。比如说想准确地指明文档中的某些特定位置。我 们可以只加入起始标记和结束标记而不在其中包含任何内容: 当然,如果你只是想指定一个点,而不是提供一个包容器,节省些空间可能会 更好。所以,x m l 指定空元素可以用缩略形式表示,它是起始和结束标记的混合体。 它既短小精陴,而且还能明确指出该元素既不会有内容,也不允许有内容。空元素 标记由一个元素类型名称紧跟一个反斜杠组成并围在一对尖括号中: 2 2 3 属性 如果说元素是) 。儿中名词,那么属性就是这种语言的形容词。在很多情况下,我 们会希望将某些信息附着在元素上,它们与元素本身包含的信息内容有所不同。我 们利用属性( a t t r i b u t e ) 来做到这一点,它们都包括一个名称与值的组合,使用 的格式有如下两种形式1 2j : a t t r i b u t e = a t t r i b u t e v a l u e ” a t t r i b u t e = a t t r i v u t e _ v a l u e 属性值必需是分隔开的字符串( 字符甲规则的要求) ,其中可能包含实体引用、 0 字符引用,以及文本字符。但是,任何一个受保护的标记字符( 和) 都不能简单 地在属性值中当作字符使用它们必须用1t :或唧实体引用来替代。 2 2 4 注释 这种机制对于在文档当中插入提示,或者叫注释( c o n l n e n t ) 来说是相当有帮助 的。这些注释可能提供修订记录、历史信息或者其他类型的可能对创建者或者文档 编辑者来说有着特殊意义但又不是真正的文档内容的元数据1 2i 。注释可能出现在文 档中除其他标记部分以外的任何地方。x m l 注释的基本语法是: 注释内容部分不能以连字号( “一”) 结尾,因为这可能造成结束分隔符的混 乱。注释并不是文档的字符数据的组成部分。在注释部分当中,实体不可能展开, 任何标记也不会被解释。 x m l1 0 规范允许,但并不要求x m l 处理器为应用程序提供一种方法来获取注 释的文本。因此,x m l 应用程序永远不能依靠使用注释来传输特殊指令( 而这却 是一个相当流行的h t m l 技巧) 。 2 2 5u n i c o d e 字符集 文本由字符构成,如果要表示文本,则必须表示组成文本的字符。因此,必 须确定位和字节层次的字符表示方法,这叫做字符编码。同时还必须确定文档中 允许使用的字符,这就是字符集。高度限定型字符集或许只认可大写字符。而极 大型字符集可能包含象形文字和阿拉伯字符。 母语为英语者可能只需要5 2 个大写和小写字符、一些标点符号和几个音调符 号。通行的7 位a s c i i 字符集非常适合。它所包含的1 2 8 个字符包括所有英文字 母、标号、一些音调符号和其它杂项。a s c i i 既是字符集,又是字符编码方式。 它定义可用的字符集以及如何利用位与字节进行编码。 x m l 的字符集是u n i c o d e ,一种增强型a s c i i l 2j 。u n i c o d e 囊括了源于世界 各地语言中的数千个字符。不过,u n i c o d e 的前1 2 8 个字符与a s c i i 致,而且 还有u n i c o d e 的字符编码方式,即与7 位a s c i i 一致的u t f - 8 。这表明,在位与 字节层次,u r f 。8 u n i c o d e 的前1 2 8 个字符与7 位a s c i i 相同。每一个a s c i i 文 档自动形成u n i c o d e 文档。利用u n i c o d e 的这一功能,文档作者就可以使用标准 普通文本编辑器立即创建x m l 文档。 2 2 6 命名 在x m l 中使用的结构几乎总是被命名的。所有儿命名都必需以字母、下划线或 冒号开头,后面跟着的是有效命名字符2 1 。有效命名字符除了前面的内容,还包括 数字、连字符、句点。在实际应用当中不应该使用冒号,除非是用作命名空间的分 隔符。字母并非局限于a s c i i 码,因为不晚英语的人们可以把自己的语言用在标记 当中。 x m l 规范还定义了种名叫命名令牌的相关观念,它可以是命名字符的任意组合 而没有词首字母的任何限制。 在命名方面另一个限制是它们不能由字符串“x m t ”、“x m l ”或任何以此顺序 排列的这三个字母的各类组合( 例如“x m l ”或“x m l ”) 开头。w 3 c 保留对以这三 个字母开头的命名的使用权。 下面就是一些合法的命名: b o o k b o o k t e s t :b o o k 注意前两个命名并不等同,x m l 的命名是大小写敏感的。第三个是使用建议的命名 空间分隔符( 冒号) 的典型例子。 下面是一些非法的命名: 一b o o k 3 4 b o o k a m o u n t s x m l d o c 头两个例子开头使用的字母( “一”和3 ) 虽然是合法的命名字符,但作为 首字母却是非法的。第三个例子的字符根本就是非法字符( “$ ”) 。最后一个例 子违反了“x m l 是保留字符”的限制( 当然,如果它们是由w 3 c 定义的则是另外一回 事了) 。在这种隋况或前两个例子中,如果开头字母是下划线( 例如,“一4 2 b o o k ”、 “一x m l ”或“x m l ”) ,这些命名就成为合法的了。 2 2 7 。文档结构 一个格式正规的x m l 文档由三个部分组成:序言,文档主体和尾声【2 i 。 ( 1 ) 序言 x m l 文档是以序言开头的。它用来表示x 儿数据的开始,描述字符的编码方法, 为x m l 解析器和应用程序提供其他一些配置线索。序言的组成包括:一个可选的x m l 声明,可能紧跟着几个( 或者没有) 注释、处理指令、空白字符,其后可能有一个 可选的文档类型声明( 再带着几个可选的注释、处理指令和空白字符) 。由于这些 内容都是可选择的,所以就意味着序言可以被省略,而文档仍然是格式正规的。下 面是一个正确的x m l 序言的例子: ( 2 ) 文档主体 文档的主体( b o d y ) 由一个或多个元素组成,其形式为一个可能包含字符数据 ( c h a r a c t e rd a t a ) 的层次树。元素之间能够嵌套,形成一棵层次树来构成文档主 体。元素之间的嵌套必须合乎规则,也就是说,必须用标记来界定元素的起始位置, 如下是一个正确的嵌套: x i lh a n d b o o k c h a r l e sf g o l d f a r b ( 3 ) 尾声 可选的“鱼龙混杂”的尾声( e p i l o g ) ,其内容包括注释、处理指令( p r o c e s s i n g i n s t r u c t i o n ,p i ) 和紧跟元素树后面的空白。x m l 尾声可能包含注释、p i 和空白。 p i 不一定非要应用到文档中尾声之前或接下来的数据中( 如果有的话) 的元素中。 这种方案可能本身就是自找麻烦,或者说它本身就存在着问题。因为儿没有定义 任何文档结束指示符号,所以大多数应用程序把文档元素的结束标记用于这种目 的。这样一来,网络链路可能在遇到根元素的结束标记时就关闭了,而不再对尾声 进行任何处理。而且,文档之间的处理指令在某种程度上也有些模糊不清。尾声被 t i mb r a y ( x m ll 。0 推荐标准的作者之一) 认为是一个“真正的设计错误”。如果 没有很好地利用,使用它可能是一种错误,我们应当注意到它不太可能具备与其他 x m l 应用程序的互操作性。 以下是一个照构的x m l 文档: x l d l 技术在飞行数据处理服务器中的应用 x m l 解析器 译码算法 当前有两种类型的x m l 解析器,一种是基于文档对象模型( d o m ) 的解析 器,另种处理x m l 文档的方式是s a x 接口| i j 。 2 3 1 文档对象模型( d o m ) 文档对象模型一词在w e b 浏览器领域并不陌生。窗口、文档和历史等对象都被认 为是浏览器对象模型的一部分。然而,任何做过w e b 开发的人都知道各种浏览器实 现这些对象的方式不尽相同。对于如何通过w e b 访问和操作文档结构这个问题,为 了创建更加标准化的方法,w 3 c 提出了目前的w 3 ci ) o m 规范。w 3 ci ) 0 m 是一种独立于 语言和平台的定义,即:它定义了构成d 叫的不同对象的定义,却没有提供特定的 实现,实际上,它能够用任何编程语言实现。例如,为了通:过d o m 访问传统的数据 存储,可以将d o m 实现为传统数据访问功能之外的一层包装。利用d o m 中的对象,开 发 、员可以对文档进行读取、搜索、修改、添加和删除等操作。d o m 为文档导航以 及操作啊札和x m l 文档的内容和结构提供了标准函数。 当你使用d o m 对儿文本文件进行操作时,它首先要解析文件,将文件分解为独 立的元素、属性和注释等。然后,它以节点树的形式( 在内存中) 创建) o d l 文件的 表示。此后,开发人员可以通过节点树访问文档的内容,并根据需要修改文档。 事实上,d o m 执行了更进一步的操作,它将文档中的w i 项目看作节点;元素、 属性、注释和处理指令,甚至构成属性的文本。 访问x m l 文件,d 。m 永远只能算作可选的访问方法之。与其它用于产生x 札文档 的机制相比,例如:直接向一个流写入,使用d o m 有以下几点优越性: ( 1 ) d o m 能够保证正确的语法和格式正规性。 ( 2 ) d 洲能够从语法中提取内容。 ( 3 ) d 0 h i 能够简化内部文档操作。 ( 4 ) d o m 能够贴切地反映典型的层次数据库和关系数据库的结构。 2 3 2s a x 接口 s a x 即x m l 简易应用程序编程接i j ,全称是扩展标记语言简易应用程序编程 接口。 s a x 的接口风格完全不同于文档对象模型。文档对象模型应用程序通过遵循内存 中的对象参照来要求文档中的内容;使用s a x ,解析器通过向应用程序报告解析事 件流来告知应用程序文档的内容。 d o m 解析器分析文档并在内存里创建对文档内容树状的表达方式,解析器将输出 传递给文档对象模型。这样程序可以从树的顶部开始遍历,按照从一个树单元到另 一个单元的引用,从而找到需要的信息。而s a x 的做法是用解析器读取文档,当解 析器发现标签时告知程序它发现的标签。例如它会告知它何时发现丁个开始标 签,何时发现了一些特征数据,以及何时发现了一个结束标签。这叫做事件驱动接 口,因为解析器告知应用程序它遇到的有含义的事件。 2 4 正则表达式简介 正则表达式的“祖先”可以一直卜溯至对人类神经系统如何工作的早期研究。 w a r r e nm c c u i l o c h 和w a i t e rp i t t s 这两位神经生理学家研究出一种数学方式来 描述这些神经网络。 1 9 5 6 年,一位叫s t e p h e nk e e n e 的美国数学家在m c c u | o c h 和p i t t s 早期 工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则 表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因 此采用“正则表达式”这个术语。 随后,发现可以将这一工作应用于使k e nt h o m p s o n 的计算搜索算法的一些早 期研究,k e nt h o r p s o n 是u n i x 的主要发明人。正则表达式的第一个实用应用程 序就是u n i x 中的q e d 编辑器。 如他们所说,剩下的就是众所周知的历史了。从那时起直至现在正受u 表达式 都是基于文本的编辑器和搜索工具中的一个重要部分。 2 4 2 使用正则表达式 在典型的搜索和替换操作中,必须提供要查找的确切文字。这种技术对于静 态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜 索动态文本时就有困难了,甚至是不可能的。使用正则表达式,就可以: ( 1 ) 测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在 该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数 据有效性验证。 i 2 ) 替换文本。可以在文档中使用一爪正则表达式来标识特定文字,然后可 以全部将其删除,或者替换为别的文字。 ( 3 ) 根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字 段中查找特定文字。 例如,如果需要搜索整个w e b 站点来删除某些过时的材料并替换某些h t m l 格 式化标记,则可以使用正则表达式对每个文件进行测试,看在该文,件中是否存在 所要查找的材料或h t m l 格式化标记。用这个方法,就可以将受影响的文件范围 缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过 时的材料,最后,可以再次使用币则表达式来查找并替换那些需要替换的标记。 2 4 3 正则表达式语法 一个正则表达式就是由普通字符( 例如字符a 到z ) 以及特殊字符( 称为元 字符) 组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符 串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 下表是元字符及其在正则表达式上下文中的行为的一个列表: 字符 描述 将下个字符话记为一个特殊字符、或个原义字符、或个后向引用、或个八进制转义符。 例如,”匹配字符n 。匹配一个换行符。序列w 匹配、而。y ”则匹配v 匹配输入字符串的开始位置。 $匹配输 字符串的结束位置。 匹配前面的子表达式零次或多次。例如,z o + 能匹配。_ 以及”z o o ”。等价于 0 ,) 。 匹配前菌的于表达式一次或多次。例如,切v 能匹配”“以及”,但不能匹配”z 。+ 等 价子 l , 。 ? 匹配前面的子表达式零次或一次。例如,q 嘶哟? 可以匹配 d o ”或 d o e s 中的恤”。7 等 价于f o a 。 ” 是个非负整数。匹配确定的月次。例如r b ( 2 ) 1 ;能匹配”b o b ”中的v ,但是能匹配”f o o d ” 中的两个o 。 n ,)h 是个非负整数。至少匹配n 次。例如山 2 , 小能匹配”b o b ”中的b ,但能匹配“f o o o o o d ” 中的所有o 。o l , 。等价干计。b o ,) 则等价于b ”。 n 川m 和n 均为非负整数,其中” = m 。域少匹配 次且最多匹配m 次。刘,”o o ,3 l 将匹配 ”f o o o o o o d ”中的前三个o 。o ( 0 1 i 等价于b ? 。请注意在逗号和哺个数之间不能有空格。 当该字符紧眼芷任何一个其他限制符( ,+ ,t 枷 札 ,伽朋) ) 后面时,遥配模式是非贪婪的。 非贪婪模式尽可能少的匹配所搜索的字符串而默认的贪婪模式则尽可能多的匹配所搜索的字 符串。例如对于字符串”o o o o ”,”? 将匹配单个”o ,而b + 。将匹配所有v 。 匹配除“之外的任何单个字符。要匹配包括、n 在内的任何宁符,请使用像【m 1 的模式。 ( p a t t e r n )匹配p a t t e r n 并获取这一匹配。 ( ? 4 t t e r n )匹配p o a e m 但不获取匹配结果,也就是说这是个非获取匹配,不进行存储供以后使用a 这 在使用”画字符( d 来组合一个模式的各个部分足很有用。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有关专项施工方案的试题
- 福建省福州文博中学2026届英语九年级第一学期期末质量检测模拟试题含解析
- 教学培训开幕式
- 2026届四川省南充市南部县化学九年级第一学期期中复习检测试题含解析
- 2026届辽宁省葫芦岛市名校英语九上期末达标测试试题含解析
- 幼儿园对督导工作总结
- 肯德基储备经理工作总结
- 2026届吉林省长春市第三中学化学九上期中学业水平测试模拟试题含解析
- 2026届黑龙江省哈尔滨光华中学九上化学期中调研模拟试题含解析
- 2026届辽宁省沈阳134中学九年级化学第一学期期中检测试题含解析
- 公安审讯技巧培训
- GB/T 24477-2025适用于残障人员的电梯附加要求
- 出纳基础知识单选题100道及答案
- 高校辅导员安全培训
- 智慧树知到《伦理与礼仪(武汉科技大学)》2025章节测试答案
- 医院空调清洗保养流程规范
- 《人体解剖学(第二版)》高职全套教学课件
- 中职高教版(2023)语文职业模块-第一单元1.2宁夏闽宁镇:昔日干沙滩今日金沙滩【课件】
- 高考数学压轴题专项训练:集合、常用逻辑用语、不等式(新定义高数观点压轴题)含答案及解析
- 建筑幕墙知识培训课件
- 呼吸道合胞病毒护理查房
评论
0/150
提交评论