XML解析技术研究

合集下载

XML文档快速解析技术研究

XML文档快速解析技术研究
由于 X ML文档 能应用 在不 同平 台上 , 实现 数据 的协 同工作 , 它现在 已成 为不可缺 少的企业 技术 的一 部分 。比如 , ML增加 了在商场 中的 电子商务 和交 流 X
1 X ML解 析 的必 要 性
X ML解 析器 是 X ML应用 的基 础。X ML本身 只 是以纯 文 本对 数 据 进行 编 码 的一 种 格 式 , 想 利 用 要 X ML, 或者说利用 X ML文件中所编码 的数据 , 须先 必
S ML Sadr ee le ru ag ae标 准 通 G ( t adG nr i dMa pLn ug , n az k
存储结构都带来 了很大的负载压力 , 这就 导致 了 X ML
的两个关键问题 : 长和性能 。
1冗长 : X ) 以 ML格 式储存 的数 据要 比以其他 数 据库格式储存 占有的空 间要大得 多。
2 性能 : ) 由于 X ML固有的冗余 特性 , X 对 ML数 据 的管理将增大应用服务器的负担。
用标记语言) 的子集 , 它保 留了 S ML主 要使用 功 能 G 的同时大大缩 减 了 S GML的复 杂性 。它 独立 于任何 语 言和体系结构 , 是公认 的下一代 网络标记语言。
Ab t a t I to u e h h o yo a tp r igo XM L d c me t n sr c : n r d c d t et e r ff s a s n f o u n ,a d y e h d a t g sa d d s d a tg o wo p r igm e h d z dt ea v n a e n ia v a e ft a sn n s to s
陈 娟 ,李 晖 , 鱼 雷

基于事件模型的MusicXML解析器

基于事件模型的MusicXML解析器

1
武汉科技学院计算机科学学院 2009 年毕业设计论文
1.2 发展状况
现在,有许多的音频文件格式,但是并不是所有的数据格式对音乐数据交换 有意义,因为这里我们谈到的音乐数据指的是电子乐音和电子乐谱。我们接触到 的大多数都是音频格式,记录声音是直接的或间接的记录声音的波形,直接的记 录波形的方式对音乐数据 的表示作用不大,几乎不大可能从波形中得到乐谱信 息,一段 8.8kHz 的高音质 CD 虽然完全重现了声音,但是那些 0 和 1 用来表示波 形的数据只是记录的混合后的波形数据,无法得到乐器,拍号,节奏等音乐特征 信息。间接的记录波形,从间接的数据中利用软件模拟出波形的方式,恰当的中 间数据更容易帮助分析乐谱, MIDI 是间接记录声音的方式,它在电子音乐交换 中具有重要地位, 在电子乐器交换中具有重要的地位。MIDI(musical instrument digital interface)[4-7] 是一种工业的电子乐器通讯协议, MIDI 不直接记录声 音波形,只传输音调和音乐强度数字信息,MIDI 文件的数据特点便于分析乐谱, 但乐谱分析往往不能正确还原乐谱,毕竟 MIDI 只记录了声音信息,乐谱的小节, 音乐符号具体的表现没有记录,一般的基于 MIDI 的解释都是基于音轨的分析方 法,同时各种软件开发商定制的文件格式辅助存储音乐符号信息,开发者的思想 直接影响乐谱信息。从音乐家在电子乐器视谱演奏,再从录制的 MIDI 中用各种 软件分析乐谱和原谱对照谱子很可能大相径庭,各不相同。早期的乐谱软件都是 基于 MIDI, 同时为了弥补对乐谱呈现的短处, 这些软件都会对 MIDI 进行在包装 , 设计数据结构辅助存贮乐谱信息,各种软件厂商缺乏统一,使得这些乐谱只能部 分的工作在桌面程序中,无法实现阵阵意义的网络音乐服务。笔者大量接触过著 名的 cakewalk 和 guitar pro 乐谱软件,它们就是分别自定义了文件格式 .wrk 和.gtp 用于辅助存贮乐谱信息,guitar pro 是功能强大的吉他谱软件,为了满 足吉他的特点,被包装的 MIDI 文件上有很多的细节处理,如:为了表现扫弦的 过程和方向,和弦各级音都按时间进行了散列,而在 cakewalk 中和弦被认为是 在同一时间点上产生的声音事件,当把 MIDI 文件从一种软件导出,再在另外一 种软件中导入时,乐谱完全不堪入目。 基于 MIDI 在乐谱交换上的不足,人们又开发了新的数据交换格式,这个时 期最具有代表性的是 NIFF[8](notation interchange file format), 它将 音乐

XML文档解析技术研究

XML文档解析技术研究
文献5提到基于事件的拉pul1模式的解析方式xppxmlpullparser指出并行解析技术将会成为xml解析技术的一个新的关注点但是实现xml文档的并行解析目前还存在一定的困难1畅1domjaxpcrimson解析器解析dom是以层次结构组织的节点或信息片断的集合是xml数据的一种树型表示文档中所有的元素属性文本都会被解析成节点
用。 …无论是异构数据库信息的交换还是高效检 索 网页 中的 X ML数 据 , 都 需要 将 X ML数据 包含 的 内容 解 析 出来 , 从 而 得 到有 效 信 息节 点 。对 于 较小 的 XML数 据 流 , 可 以解 析 后 直 接 在 内存 中 进行处 理 , 然 后 在 缓 冲 区 中接 收 下 一 X ML数 据
具有很 好 的 自我 描 述 能 力 。X ML 以结 构 化 的方
流 。然而 , 当需要 处理 以 G B为 单 位 的大 量 X ML
信息 时 , 流处 理 和 内存缓 冲 区显 得 力 不从 心 。研
式描述 各种 类 型 的数 据 , 几 乎 可 以描 述 所 有领 域 的数据 。XML用严 格 的嵌 套标记 表 示数 据信 息 , 特别适 合 在 国际互联 网 的多点数据 交换 环境 下使
( 1 . De p a r t me n t o f C o mp u t e r S c i e n c e a n d T e c h n o l o g y , B e n g b u Co l l e g e , B e n g b u 2 3 3 0 0 0 ;
中图分类 号 : T P 3 1 1
Re s e a r c h o n t h e XM L Do c u me n t Pa r s i n g Te c h n o l o g y

基于StAX中指针API的XML数据解析技术研究

基于StAX中指针API的XML数据解析技术研究
推 。 是 一 种 低 层 A I尽 管 效 率 高 , 是 没 有 提 供 这 P, 但
SA t X作 为 用 Jv a a语 言 处 理 X ML 的最 新 标
底层 X ML结 构 的 抽 象 ,其 主要 A I XML t a P为 Sr m e
R a e.另一 种 是较 为 高级 的基 于 迭代 器 的 A I它 ed r P,
单 易读 .
关键词:SA X ; ML解析 t X; ML X
中图分 类号 :P 1 T 32 文献标 志码 : A
Jv E 5新 推 出 的 SA Sra ig A Ifr aa E t X ft m n P o e
系列 的事 件流 , 由应 用 程序 来控 制解 析过 程 , 即应 用
Jv 、 aa的 事件 驱动 的 、 用拉式 解 析方 法 的流式 A I 采 P. SA 允许 创建 双 向的 XM tX L解 析器 , 速度 快 , 易 它 容 编 程 ,占用 内存 少l l 1 .
SA 是 由 B A 公 司 领 头 开 发 的 ,同 时 得 到 tX E S n Mi oyt 公 司 的支 持 . 初 以 JR 1 3 即 u c ss ms r e 最 S 7 (
塑ห้องสมุดไป่ตู้


I 代 A) 卜 器P I
图 1 SA 的解 析机 理 tx
Fi . p r i g m e h n c f S AX g1 a sn c a is o t
S X 包括 2种处 理 X t A ML的 A I P ,它 们 分别 提
13号 Jv 范请 求 ) 布 , 于 2 0 7 aa规 公 并 0 4年 3月 通 过 了 Jv aa社 区过 程 (aa Cmm nt Poes的最 终 Jv o u i rcs) y 投 票 批 准 (t : c .g n r eali=7 )目前 , ht / po / / ti d l3. p/ re j d ? SA 已经是 Jv E 5的组 成 部 分 (t :jv. n tX aaE ht /aa u . p/ s

XML模式匹配技术研究

XML模式匹配技术研究
( ) 成 阶 段 3合 合 成 不 同 匹 配 器 的 输 出 结 果 , 进 行 要
1X 前景与特点 ML
交 换 很 难 得 到 实 现 , 为 各 种 组 织 的 应 用 因
可扩 展标 记 语言 (x e s l Mak p 程 序 对 相 同 的 标 记 名 称 也 有 不 一 样 的 理 E tn i e b ru La g a e 简称 XML) n ug , 的产生 改 变 了We b的 解 。 xM L 的模 式 出现就 是 为 了保证正 确 的 根 本 面貌 。 9 8 2 , 3 全球 互 联 网联 XML 档 的 元 素 和 属 性 , 立 一 个在 数据 1 9 年 月 W C( 文 建 盟 ) 出了正 式 的版 本XML 1 0 并 且正 式 交 换 过 程 中 的标 准 。 守 XML 式 , 范 给 ., 遵 模 规 规 定 XML 下 一 代互 联 网标 准 。 为 与HTML XML 文 档 定 义 为 有 效 文 档 , 的 当前 应 用 最 相 比X ML 有许 多优 点 : ML 具 ①X 很简 单 , 进 广 泛 的 两 种 XML数 据 模 式 语 言 是 xM L 行 自我 描 述 而 且 易于 解 析 。 ②HTML中的 S h m 进 行扩 展 , 是 X 可 ML 的 标 记 则 由 用户 定 义 , 任 意 的 扩 展 。 能 ③ 3 X 锯 析 ML HTML 的标 记 表 示 方 法 是 数据 的显 示 格 中 对 xM L文 档 进 行 操 作 的 不 是 应 用 程 式, 无任 何 语 义 , 可是 XML 的标 记 就 明确 规 序 , 是首 先 由XML 而 分析 器 分析 X ML 文档 , 定 数 据 的含 义 , 细 粒 度 的XM L 为 数 据 然 后 , 过xML 让 成 通 分析 器所 提 供 的DO M接 E l 处理。 ④XML 实现 了结 构 、 表现 和 内 容 三者 或 S Ax接 口应 用 程 序 对 分 析 结 果 进 行 操

XML的相关技术及数据交换研究

XML的相关技术及数据交换研究

1 X 的 相关技 术 ML
X 为 e tni e ru a gae ML X es l Mak PL n ug 的简称 , b 即可扩 展标记语 言。X ML是以一种 简单 、 标准 、 可扩 充的厅式 , 将各种 信息 如文本 、 表格以及罔形等以原始数据的方式储存 。 XMI 具有扩 展性 强 、 简单 易懂 、 在不 同平 台问信息传 递 的优点 。 同时 X 可 MI 支持 多语 种文件 U i d , 开始设计 nc e 在 o X ML时 , 设 ‘ 者便考虑 到信息 的流通 不应该 只受限于一个 国家或是一 个 区域 , 随着 It n t ne e在伞 世 的普及 . 一份文件 能 r 将
X MI 文水本身可以看成是数据库 中的数据 区 , T D D或者 S hma 可以看成是数据库模式设计 , Q 几 以看成是数据库查询语 ce s X Ll 『
[ 收稿 日期 ]0 9 1— 9 2 0 — 0 0 [ 作者简介 ] 王智军 (9 3 )男 , 17 一 , 内蒙古赤 峰人 , 讲师 , 硕土 。
11 口扩展 的样式语 言 .. 』 2
XL S 是用于规定 X ML文档样式的语言 。X L能使 We 浏览器改变文 的表示法 。X L能使 We S b S b
浏 览器直接根 据用户 的不 同需求 改变文 档的显示 法 。例 如 , 不需要 与服务器 进行交互通 信 , 町以改变数据 的显示顺 序 。 就 通过变换样式表 , 可以展 开或折叠文档。基于 X 的 网站除 了运行速度更快 、 ML 更易使用外 , 而且 对用 电是透明的。 11 可扩展链接 语言 .3 . X L 持 目前 We 上 已有的简单链 接 , L支 b 并且将进 一步扩展链 接 , 包括结 求死链接 的间接链 接 以及

XML技术在信息共享领域的应用研究

关键 词 : 息共 享 X 技 术特 点 xML 术 的应 用 X L 信 ML 技 M 的信 息共 享模 型 中图 分类 号 : 7 6 F l 文献标识码 : A 文章 编号 :0 79 1 (0 1o —120 10 —4 62 1)80 0 -3
Applc i i at on nd a Res ar h e c ofXM L
K y e wors i f r t n s a n , d : o mai h r g XM L tc n cl e t r s XM L a p i t n XM L b sd i fr t n s a n d 1 n o i eh ia fau e, p l ai , c o — ae o mai h r gmo e. n o i
no ig die ty e ta t d a h rd.Th rf r ,h tben r cl xr ce nd s a e e eo e ow fe t l o e c a g nd s a ei o ai t e n hee o e e ssse a c e ci y t x h n e a h r nfr t ve m on bew e tr g n ou y t msh sbe om ea n i po tn ee rh t p c n ti a r ppiainsa d a v ntg so m ra trs ac o i.I hsp pe,a l to n d a a e fXM L t c oog n t n o ai h rngf l sr sac e Thed veop e to c e hn l y i heif r t m on s a i ed i ee r h d. i e l m n f i o ain s a nga d faurso M L e h l y sa lz d, rncp ea mplm e tto fXM L~b sd if r t ha ngi sude . nfr to h r n e t e fX m i t c noog i nay e p i il nd i e n ain o a e n o mai s r s t id on i

XML技术在铁路信息交换中的应用研究

X ML文档 的 内容不 受信 息 显示 方 式 的影 响 . 结构 其
形 式可 以通 过 c sc sa igSyeS et, 联 样式 s (acdn tl h es级 单 ) 者 X LE t s l SyeL n u g . 扩展 的样 或 S (xe i e t a g a e 可 n b l
维普资讯
铁 道 技 术 监 督
第3 4卷
第 l 0期
志、 内容模式 、 属性和实体等方面的描述来规定和检 查X ML文档 有效性 ,只有有 效 的 X ML文档才 能传
输 , 后再把 消 息翻译 成本 地 代码 , 然 最后 映射 成本 地 数据 库 的数 据操 作指 令 , 以便在 数 据库 中存储 、 改 修 和 删 除数 据 . 果 X 如 ML文 档缺 乏 有 效性 , 么在 接 那 受 和发送 XML消 息时 就要经 过 代码转 化 。 消息 的返 回过 程 与上 述 过程 相 反 , 生 成 X 先 ML消 息 , 再将 本 地代 码转换 为标 准代 码返 回给消息 源 。 实际 上 , 次 一
维普资讯
第3 4卷 第 1 O期
Vo.4 1 3 No 1 .0
铁 道 技 术 监 督
R IWA U LT O T O A L Y Q A IY C N R L
标准化 工作
S ANDA T RD Z I ORK I AT ON W
运营。 XM ( x n i eMakL nu g L Et s l e b r a g ae可扩 展 标 记 语
利用 X L M 技术 , 铁路企业的信息可 以准确 、 及 时、 完整地传送到 目的地的内部信息系统 。 是网际服 务器 与应用 程序 之 间 ,应 用程 序 与用户 之 间进行 数

XML技术研究

对当今 瞬息万变的商业 环境 , 一个公司 想要成功 , 必须把信息技术转化为 自己的商业 优势 , 其中包括能够在合适的时问 , 把合适的信 息交到合适的人手中。 不幸的是 , 现实于此截然



6O 一
关键词: XMLHT ; 记 语 言 ; ML标
的解释。浏览器中预定义 了特定标记的特定显 对给定的 X L M 文档进行变换之后生成的。 现在 示 或逻辑方 案 ; T L的主要功能 在于通过浏 我们要将 网站的内容放在一本书中,只需要重 HM 览器完成对信息的显示 , 即信息 的格式化控制。 新定义 X L , ST 给出变化规则 , 可以将 内容完 就 X ML是 S ML是文档的精简版本 。S ML过 于 美的再现在另外 的一种形式中了。 G G 复杂 ,学习难度和开发难度都很大 ;M X L的主 6 M 用于通信。 M 的应用在于于计 .x L 2 X L 算机之间的数据交换。当—个系统可能有几台 相反 , 几乎所 有 的 n 部门 , 被巨大 、 ’ 都 错综复 要特点如下 : 杂、 新旧交替的系统所 累, 而且受到资源的极大 41不同系统平台的信息互通。 . 服务器 ,同时使用不同的操作 系统和数据库的 时候 ,不同系统之间的数据交换将变成一个十 制约。 4 . 2整合多种不同数据源的数据 。 由于世界上存在着如此多 的、 完全不 同的 M 我 43平衡 客户端和服务器端的处理负荷 。 分令人头疼的事情。当采用 X L规范以后 , _ 客户平台 , 在不同平台问交换数据 , 同时还要保 44以灵活多变的方式显示数据。 . 们只需要接收 X L M 标记 的数据 ,遵循在 I D Y r 45更精确的数据检索。 . 中定义的规范 ,而不需要知道对方 的系统是什 证数据的完整和服务的高效 ,这是 件令人头痛 的事情 。在大型 We b应用中, 工程师们往往被 5有了 H ML 为什么还需要用 X ? T , ML 么。 因为 X L M 数据不与任何类型的客户方栓在 数据格式的转换弄得疲惫不堪 ,即便是整理完 S ML的一个重要的派生 ,就是超文本标 起 。 以它提供 了一种很容易在 网络上传输 G 所 成 的数据 , 如何让各种客户端都能正确获取和 记语言 H ML T 。几乎所有的用户都熟悉 H ML 的非常简单的数据表示方式。 T , 理解也是不小的麻烦。 最终 , 这一问题成为制约 人们感谢 H ML 正是 由于 IF T , T ML标 准的出现 , 6 M 用于配置 。作为应用程序服务器 .X L 3 增加了技术的可移植性 。 实际 we e i 发展的瓶 颈。近年来 , b Sr c ve 随着企业运 才使 It t ne 走出了实验室 , me 成为人人皆可使用 的配置说明文档 , 营 国际化的趋势越来越明显,垮平台垮语言 的 的工具, 也成为影 响世界最重要的技术 , 它不但 上,从 s M 派生出 X L G L M 子集的主要原因是 , 远程调用成为一种迫切需要的能力 ,人们需要 改变了人们的生活 , 也改变 了世界运转的方式 , 编写处理 S M G L文档的应用程序太笨拙 了。如 种平台无关的、能够同时被人类和机器所理 同时 , 更为软件的开发形式带来 了多元化的形 果希望 X L M 有实用性 , 那么它就必须很容易编 解 和处 理 的 文本 数 据 格 式 。 而这 种 技 术 的核 心 , 式 。 写文档处理程序、 文档浏览器和其它程序 , 只有 就是 X 。 ML 因为现在网络 应用越来越 广泛 ,仅仅靠 这样 , 使用 X L的代价才不会太大 。 M 2X ML概 述 HM T L单一文件类型来处理干变万化的文档和 7使用 X L M 的好处 X ML是 E t s l Mak p L n u g xe i e n b ru a g a e的 缩 数据 已经力不丛心 , 而且 H ML本身语法十分 T 71X 可 以广泛地运用 于 W b . ML e 的任何 写, 中文含义为“ 可扩展标 记语 言” M 。X L首先 不严密 , 严重影响网络信 息传送和共享。 人们早 地方。 是一种标记语言而且是用来创造标 记语言 ( 已经开始探讨用什么方法来满足网络上各种应 比 7 M 可以满足网络应用的需求 。 .X L 2 如 HM ) T L的元语 言 ; 其次 , 它是一种 可扩展 的 用 的 需 要 。 7 . 3使用 X L M 将使编程更加简单 。 标记语言 , 因为在 X 中允许用户 自己来创建 ML 74XML便于学习和创建 。 . 使用 S M 是可以的, S M 太庞大 , G L 但 G L 编 标签 , 所以叫做可扩展性 。 程复杂 ,于是最终选择 了 “ 减肥”的 S ML— G 7 ML . X 代码将清晰和便于阅读理解。 5 标 记语言是 指在 普通文本 中加 入一些具 X ML作为下一代 We b运用的数据传输 和交互 8结 论 有特定含义的标记 ,以对文本的内容进行标识 的工具 。和 H ML一样 ,ML 是依据 S ML标 T X G 新旧技术的集成是当今商业面对的一个巨 和说明的一种文件表示方法 。标记语言对文档 准演 化 而 来 的 。W3 此 建 立 了 X C为 ML工 作 组 大的挑战 , 在许多企业环境 中, 每一种平台都有 的意义进行了分析和细化 ,使得计算机应用软 ( xwG) 开 始 创建 XM 来 L的进 程 。X ML将 派 生 它工作的最佳范围,一个平台不可能 良好 的完 件对文本的意义也就有了一定程度 的理解。 于 S L,但与 S ML相 比, L将大 幅度简 成包 罗万象的任务 , GM G XM 基础结构是在发展中逐渐 3XML的标记特性 化, 原则上它只使用 2 % G L 0 S M 标准 , 但需要发 充实 完善 的,因此 ,M X L技术的研究还有更大 3 . 1作为一种标记语言 , 它最基本的功能 挥 了 8 %的效力 。同时与 H ML相比 , 0 T 它需要 的发 展 空 问 。 就是在文档中添加标记, 而且, 标记的添加必须 更加严谨 ,而且更适合于计算机之间的数据交 参 考文 献 遵循一定的规则。最为直观的规则就是标记必 换 。 『 1 1周爱武, 李孙长, 程博等. M 数据库的研究 X L 须成对出现 。 6X ML的应 用 与应 用 【1 J .计算机 技 术与 发展 ,0 9 1 () 2 0 ,99 : 2 4. 8 3 . 2所使用的标记都是非预定 义的,即用 61X . ML用于表示 内容。内容与表现形式 21 - 2 户 自己定义的。只要遵守 X ML的标 记命名规 的分离 , 一个 X ML文档中几乎所有的内容都是 『1苗 维 杰, .基 于 X 2 天辉 ML代 码 生成 技 术 的应 则, 可以在文档中添加任何标记。 数据和数据结构 , 它主要用于传递数据, 对数据 用研 究 . 元 器件 应 用 ,0 9 l(o:5 8 . 电子 2 0 ,11)7 — 2 3 . 3用户 自 定义的标记 , 户可在文档内, 的表 现 完全 被 剥 离 。 用 f】陈腾 . 3 基于 XML数据发布的设计和 实现m. 也可以在文档之外进行说明。 标记的说明称为: 现在的大部分 网站都是用 H M T L编写的。 地 理 空间 信 息 ,09 75:7 9 . 2 0 ,()8 — 1 DT D。 网页设计师们精心设计的网页 , 能够在 We b浏 f1 治俊, 4 邢 王凌飞, 谢声时等. 浅谈 X ML解析 3 M 文档的标记只描述文 档的内容, 览器上很漂亮的显示出来 ,但是如果想把这些 技 术 明. 南金 融 电脑 ,0 9 1fo: 15 . .X L 4 华 2 0 ,】】 ) - 2 5 具体说 , 只描述文档的结构和意义 。 不描述其任 网页所 包含的内容重新设计在一本书 中的话 , 作 者 简 介 : 宁 (9 5 ) 女 , 师 , 士 , 任 17 一 , 讲 硕 研 何显示 、 出等格式化信息。 输 显然 , 浏览器上 的漂亮 内容就不能很方便 的在 究方 向 为软 件 工程 和 网络技 术 。 4XML和 H ML的 比较 T 书中体 现出来 了。但是 ,ML的出现为解决这 X H ML通过在 文档 中添加具 有特定 意义 种问题提供了一种 良好 的解决方案 。 T 的标记来组织 文档 ; T L所使用 的标 记都 是 HM 因为 XM L只是定义数据 , 它并不关心数据 预定义 ( 固有的标 记) 不同的 H M 版本具 是如何显示 的, 的, T L 所以用 X MI设计出的网站其 内 有不同的标 记集合 ; 浏览器完成对 H M 文 档 容和显示是分离的。一般的网页是通过 X L TL ST

XML技术在IEC 61850标准中的应用研究

维普资讯
20 0 7年 1月
西







Jn 2 0 a .0 7
Vo .2 No 1 1 1 .
第 1 2卷 第 1 期
J OURNAL OF XIAN ’ UNI VERS TY OF P T AND TELE OM M UN I ATI I OS C C ONS
1 XML应用 于变 电站 配 置 的研 究
1 1 变 电站配 置语言 分 析 .
标记语 言 ) 万 维 网联 盟 ( c) 建 的一 组 规 范 , 是 w3 创 用 于在 w e 上 组织 、 布各 种信 息… b 发 1。它不 仅 可 以 满足迅 速增 长 的网 络 应 用 的需 求 , 能 够 确 保 网络 还
能 电子 装置 能力 描述 和变 电站系统 与 网络通信 拓扑 结构 描 述 J 体包 括 以下 内容 : 。具 描述 一 次 系统 结
进行交互操作时具有 良好的可靠性与互操作性 。
XML的语 法类 似 H TML, 标 签 来 描述 数 据 。 用
H ML的标签是 固定 的, T 用户只能使用, 不能修改。
收稿 日期 :0 6 9 5 2 0 —0 —1
构包括使用哪些一次设备功能、 设备如何连接 ; 描述
作者简介 : 黄文华( 9 0 , , 18 一)女 江苏江阴人 , 西安邮 电学院信息与控制系讲 师。 朱渝宁( 9 7 , , 17 一)男 辽宁辽阳人 , 重庆市 电力公司江津供电局工程师 。
X ML则 不 同 , 没 有 预先 定 义 好 的标 签 可 以使 用 , 它
引 言
IC 680作 为 下 一 代 变 电 的 无 缝 通 信 标 E 15
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

XML解析技术研究摘要:XML作为过去十年中出现的最流行的技术之一,得到了广泛的应用,而其中XML解析技术是XML应用的关键。

本文介绍了XML解析技术的研究动向,分析和比较了4种XML解析技术的优劣,并归纳总结了应用系统设计中选取合适的XML解析技术的原则。

1 引言XML(eXtensible Markup Language,可扩展标记语言)是由World Wide Web 联盟(W3C)定义的元语言,即一种关于语言的语言。

XML的设计源于SGML (Standard Generalized Markup Language,标淮通用标记语言),是SGML的子集,其目的是为了促进Internet上结构化文档的交换。

简单的说,XML是一组规则和准则的集合,用于以无格式文本来描述结构化数据[1].1996年W3C联盟就开始从事XML的标准化工作,并于1998年2月10日发布了XML1.0.XML的出现给分布式计算领域带来了重大影响,其力量源于它的数据独立性[1].XML是纯数据描述,与编程语言、操作系统或传输协议无关,从而将数据从以代码为中心的基础结构所产生的约束中解放出来,让数据能够在Web上更自由的流通。

然而XML本身只是以纯文本对数据进行编码的一种格式,要想利用XML,或者说利用XML文件中所编码的数据,必须先将数据从纯文本中解析出来,因此,必须有一个能够识别XML文档中信息的解析器,用来解释XML文档并提取其中的数据。

然而,根据数据提取的不同需求,又存在着多种解析方式,不同的解析方式有着各自的优缺点和适用环境。

选择合适的XML解析技术能够有效提升应用系统的整体性能,因此,了解和区分各种不同的XML解析技术就显得尤为重要。

2 XML解析技术分析所有的XML处理都从解析开始,无论是使用XSLT或Java语言,第一步都是要读入XML文件,解码结构和检索信息等等,这就是解析,即把代表XML文档的一个无结构的字符序列转换为满足XML语法的结构化组件的过程。

2.1 XML解析技术的分类根据从XML中获取数据的简易性,性能和最终所得到的数据模型的不同,XML 解析技术大致可分为以下四类:1)面向文档的流式解析;2)面向文档的对象式解析;3)面向文档的指针式解析;4)面向应用的对象式解析;这四类解析技术分别处于不同的抽象层次,适用于不同的应用场景,有着各自的优缺点。

针对具体的应用需求,选择合适的解析技术,往往能够减少内存消耗,缩短处理时间,更方便地获取数据,提高应用系统的整体性能。

2.2 面向文档的流式解析技术流式解析是一种基于事件的解析过程,解析器顺序读取XML文档,产生一个对应的事件流,并向事件处理程序发送所捕获的各种事件,如元素开始和元素结束等,而事件处理程序则通过不同的方法处理这些事件。

流式解析是将XML文档作为一个数据流来处理,因此,它具有类似于流媒体的优点,能够立即开始读取数据,而不是等待所有的数据被处理。

而且,由于应用程序只是在读取数据时检查数据,不需要将整个文档一次加载到内存中,使得在处理大型文档时具有较好的时间和空间上的效率。

然而效率的代价是易用性的降低,流式解析编程较为复杂,程序员需要负责更多的操作。

并且由于应用程序没有以任何方式存储数据,所以使得更改数据或在数据流中往后移是不可能的。

再加上它的单遍解析特性,意味着它也不支持随机访问。

流式解析又分为两种解析方式:推式解析(SAX)和拉式解析(StAX)。

这两种方式的主要区别在于是由解析器还是应用程序控制读循环(读入文件的循环)。

2.2.1 推式解析(SAX解析技术)SAX(Simple API for XML)解析技术就是一种推式解析,在这种解析方式中,解析器控制着读循环,在文档结束之前控制权不会返回给应用程序[3].解析器通过回调的方式进行数据处理。

SAX提供了一个用于处理XML的,基于事件驱动的简单API.它的设计开始于XML-DEV邮件列表成员间的讨论,他们开发出的第一个接口草案SAX1.0于1998年1月发布,其后在2000年5月发布了SAX2.0,目前最新版本是2004年4月发布的SAX2.0.2.SAX没有经过官方的标准机构认可,它不由W3C联盟或其它任何官方机构维护(现在,SAX由David Megginson维护) [4],但它被广泛使用并视为XML社区事实上的标准。

SAX最初是为Java而定义的,但也可以用于Python、Perl、C++等其它语言。

SAX是基于事件驱动的,即SAX解析器在读取XML文档的过程中生成一个事件流,并且对于每个事件通过回调事件处理程序中相应的方法来进行处理。

比如元素开始和结束标记,元素内容,实体,语法分析错误等事件。

针对下面的简单XML文档,所产生的事件如图1所示,注意针对元素内的空格或回车也会生成一个文本事件。

图1 SAX解析器生成的事件SAX中的核心事件处理程序是一个实现了ContentHandler接口的类。

此接口中定义了处理与XML文档本身关联的事件的方法,如 startDocument、endDocument、startElement、endElement、Characters等SAX解析技术具有所有流式解析技术的优点和缺点,但是由于在整个解析过程中,解析器掌握着控制权直到文档结束,应用程序很难在获得所需的部分数据后停止解析过程(可以通过抛出异常的方式终止解析过程,但较为复杂,而且终止后也无法继续解析过程),因此产生了由应用程序掌握控制权的拉式解析方式。

2.2.2 拉式解析(StAX解析技术)StAX(Streaming API for XML)解析技术是一种拉式解析,在这种解析方式中,应用程序控制着读循环。

循环中,应用程序负责反复调用解析器获得下一个事件,直到文档结束。

通过保留解析过程的控制权,可以简化调用代码来准确地处理它预期的内容,并且可随时停止解析。

此外,由于该方式没有基于处理程序回调,应用程序也不需要像SAX中那样模拟解析器的状态。

StAX针对同样的XML文档所获得事件类型和SAX基本相同,但是StAX包含了两套处理XML的API:基于指针的API和基于迭代器的API,分别提供了不同程度的抽象[5].基于指针的API简单的返回事件,此时事件用数值形式来表示。

这是一种低层API,没有提供底层XML结构的抽象,所有的状态信息直接从流读取器获得,不需要创建额外的对象。

从而节约内存,拥有较高的效率。

而较为高级的基于迭代器的API则以对象方式返回事件,每个事件对象都封装了它所表示的特定XML结构固有的信息,因此可直接利用其方法获得属于该结构的信息,但也需要额外的对象创建开销。

相对于基于指针的API,基于迭代器的API具有更多的面向对象特征,因此更便于应用于模块化的体系结构。

StAX也是用Java定义的,其StAX1.0于2004年3月发布,并且成为了JSR-173 规范,最新版本为2006年6月发布的StAX1.2.StAX作为用Java语言处理XML的最新标准,比早期出现的XPP (Xml Pull Parser)拉式解析器功能更为强大,也得到了更为广泛的应用。

2.3 面向文档的对象式解析技术由于流式解析方式固有的无法更改数据和不支持随机访问特性,尤其是没有对XML文档的结构建模,使得应用程序很难对XML文档进行搜索、修改、添加和删除等操作。

为了解决这些问题,产生了面向文档的对象式解析技术——DOM.DOM(Document Object Model)是用与平台和语言无关的方式对XML文档进行建模的官方W3C标准[6],其目标是提供一个可以通用于各种程序语言、操作系统和应用程序的接口。

DOM最初被当作Web浏览器识别和处理页面元素的方式,即在W3C介入之前的功能,称为“DOM Level 0”。

W3C于1998年10月提出了“DOM Level 1”建议,支持XML1.0和HTML处理。

随后于2000年11月提出了“DOM Level 2”建议,对Level 1进行了扩展,支持XML1.0、命名空间和CSS,也支持用户接口和树形操作事件,并且添加了DOM树形操作功能。

最新的“DOM Lev el 3”建议于2003年6月提出,在level 2的基础上添加了对DTD、XML模式和XPath的支持[1].DOM作为一种对象式解析技术,定义了层次化对象模型来表示XML文档。

即为XML语法中的每个概念(如元素,属性,实体,文档等)定义对应的类,而解析器在读入XML文档的时候,会建立XML语法和类之间的一一映射。

实际上,DOM 的层次化对象模型是一个树形结构,它将一个XML文档看作一棵节点树,每个节点代表一个XML文档中的元素。

DOM的基本节点对象有5个[1]:(1)Document 对象:是树的最高节点,也是对整个文档操作的入口;(2)Element和Attr对象:对文档中元素和元素属性的映射;(3)Text对象:作为Element和Attr 对象的子节点,代表了元素或属性的文本内容;(4)NodeList对象:对节点按指定的方式进行遍历。

例如对于2.2.1中的XML文档,其对应的DOM节点树如下图所示(注意元素内的空格或回车也会被当作文本对象):图2 DOM节点树(矩形框表示元素节点,椭圆表示文本节点)利用DOM在内存中建立的完整的XML文档的树形结构,开发人员就可以方便的对XML文档进行一系列操作,如遍历、增加、删除、修改文档内容等,且具有良好的导航能力。

同时DOM所具有的对象特性也非常便于面向对象编程。

然而,由于DOM在使用数据前需要完整的遍历XML文档,在内存中构建树形结构表示,因此需要消耗大量的内存,尤其是对于大型文档,性能下降的很快。

而且必须一次解析整个XML文档,不可能只做部分解析,当只关注XML文档的小部分数据时,效率很低。

(Axis2项目中的Axiom对象模型实现了对XML文档的部分解析,可构建不完整的节点树,但实现较为复杂)由于DOM是与语言无关的,当DOM接口进入指定语言的数据结构时,会产生不必要的复杂性,无法利用语言本身的优势。

因此出现了许多与DOM类似的针对特定语言的对象模型。

如JDOM就是针对Java的特定文档对象模型,JDOM使用具体类而不使用接口,简化了API,并在API中大量使用了Java集合类。

DOM4J 则是JDOM的一种智能分支,它提供了对XPath和XML Schema的支持,并且通过DOM4J API和标准DOM接口使其具有并行访问功能[5].它们都属于面向文档的对象式解析技术。

2.4 面向文档的指针式解析技术前面提到的面向文档的流式解析效率较高,但易用性差,而对象式解析易用性强,却效率较低,这两种方式似乎处于两个极端。

相关文档
最新文档