(计算机应用技术专业论文)基于xml的用户界面管理的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于xml的用户界面管理的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于xml的用户界面管理的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于xml的用户界面管理的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于xml的用户界面管理的研究与实现.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机应用技术专业论文)基于xml的用户界面管理的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于t - m t 的用户界面管理的研究与实现 摘要 随着信息技术的不断发展以及软件系统规模的不断扩大,开发大型软件系统 所耗费的时间和成本也不断增加。用户界面由于其复杂性,在软件开发中占用了 大量的时间。而提高用户界面的开发效率,无疑是提高整个软件系统开发效率非 常有效的手段。大型商业系统和人机交互较为复杂的软件系统不仅要求能够快速 开发出优质的用户界面,对用户界面的扩展性也提出了要求,即要求实现用户界 面的最终用户可修改性。最终用户可修改性使软件系统即便在发布之后,开发人 员和最终用户仍然可以较小的代价扩展用户界面。 本文研究了用户界面管理的基本模型。利用x m l 的的良好的扩展性、自描 述性、跨平台性、树状存储结构等特点,提出了基于m l 的用户界面管理模型, 用x m l 来描述用户界面。将菜单、工具栏、按钮、编辑框等界面元素通过用户 界面配置定制控制工具将其持久存储于可执行文件之外的x m l 文件中。在软 件启动时,先读取界面元素信息,然后根据信息动态生成图形用户界面( g u i ) 。 从而简化了用户界面的开发与维护,使软件具有良好的定制能力,达到了用户界 面的最终用户可修改性的效果。而且采用x m l 文件来存储界面信息,不仅解决 了数据流存储方案所遇到的不易扩充、不够灵活等问题,还为软件的国际化、本 地化、跨平台创造了条件。 为了解决用户界面文件散乱、不易管理以及不能同步更新的问题,本文还提 出了界面仓库的概念,用数据库来存储这些界面文件,不仅可以对用户界面集中 管理,还达到一处配置,随处可用的效果。 关键词:x m l ,用户界面管理,界面配置,界面定制, 界面控制 基于x m l 的用户界面管理的研究与实现 a b s t r a c t a si n f o r m a t i o nt e c h n o l o g yc o n t i n u e st od e v e l o pa n ds c a l es o f t w a r e s y s t e mc o n t i n u e st oe x p a n d ,t h et i m e c o n s u m i n g a n dt h ec o s to ft h e d e v e l o p m e n to fl a r g e s c a l es o f t w a r es y s t e m sw i l l c o n t i n u et oi n c r e a s e u s e r i n t e r l a c ed u et oi t sc o m p l e x i t y ,o c c u p i e dag r e a td e a lo ft i m eo nt h ep r o c e s so f s o f t w a r ed e v e l o p m e n t i m p r o v e du s e ri n t e r f a c ed e v e l o p m e n te f f i c i e n c yi s u n d o u b t e d l yav e r ye f f e c t i v em e a n so fe n h a n c et h ee f f i c i e n c yo fd e v e l o p m e n t o ft h ee n t i r es o f t w a r es y s t e m l a r g ec o m m e r c i a ls y s t e m sa n dm o r ec o m p l e x s o f t w a r es y s t e mo nh u m a n - c o m p u t e ri n t e r a c t i o nr e q u i r e sn o to n l yt h er a p i d d e v e l o p m e n to fh i g hq u a l i t yo ft h eu s e ri n t e r f a c eb u ta l s ot h ee x p a n s i b i l i t yo f u s e ri n t e r f a c e ,t h a ti st oa c h i e v et h eg o a lt h a tt h eu l t i m a t eu s e r sc a nm o d i f y u s e ri n t e r f a c e e n d u s e r sc a r lm o d 阡yt h es o f t w a r es y s t e mm a k e se v e na f t e r p u b l i c a t i o n ,d e v e l o p e r sa n de n du s e r sw i l ls p e n ds m a l l e rp r i c et oe x p a n du s e r i n t e r f a c e t h i sp a p e rd i s c u s s e st h eb a s i cm o d e lo fu s e ri n t e r f a c e t ot a k et h e a d v a n t a g eo ft h eg o o ds c a l a b i l i t y ,s i n c ed e s c r i i p t i v e ,c r o s s p l a t f o r m ,s t o r a g e t r e es t r u c t u r ec h a r a c t e d s t i c so ft h ex m lt h i sp a p e rr a i s e sx m l - b a s e du s e r i n t e r f a c em a n a g e m e n tm o d e l 。x m lu s e dt od e s c d b et h eu s e ri n t e r f a c e t h e m e n u ,t o o l b a r s ,b u t t o n s ,e d i tb o x ,a n do t h e ri n t e r f a c ee l e m e n t sp e r m a n e n t s t o r a g ei nt h ex m l d o c u m e n t so u t s i d eo ft h ee x e c u t a b l ef i l et h r o u g ht h eu s e r i n t e r f a c ec o n f i g u r a t i o n c u s t o m i z a t i o n ,c o n t r o lt o o l s b e f o r ea c t i v a t e d ,t h e s o f t w a r er e a dt h ei n f o r r n a 髓o no fi n t e r f a c ee l e m e n t s 。a n dd y n a m i c a l l yg e n e r a t e g r a p h i c a lu s e ri n t e r f a c e ( g u i ) a c c o r d i n gt ot h i si n f o r m a t i o n t h u ss i m p l i f y i n g t h eu s e ri n t e r f a c ed e v e l o p m e n ta n dm a i n t e n a n c e ,e n h a n c e i n gt h e c u s t o m i z a t i o na b i l i t yo fs o f t w a r e ,a c h i e v e i n gt h ee f f e c to ft h ee n du s e r sm a y m o d i f yt h eu s e ri n t e r f a c e m o r e o v e r , x m ld o c u m e n tu s e dt os t o r a g ei n t e r f a c e i n f o r m a t i o nn o to n l ys o l v et h ep r o b l e mo fu s e ri n t e r f a c ei m f o r m a t i o nn o te a s y t oe x p a n d ,l e s sf l e x i b i l i t yw h i c hs t o r a g ed a t as t r e a m se n c o u n t e r e di nt h e p r o g r a m , b u ta l s oc r e a t e c r o s s - p l a t f o r m c o n d i t i o n so ns o f t w a r e n t e m a t i o n a l i z a t i o na n dl o c a l i z a t i o n t os o l v et h ep r o b l e mo fu s e ri n t e r f a c ed o c u m e n t ss c a t t e r e da n dd i f f i c u l tt o m a n a g ea n dc a nn o ts i m u l t a n e o u s l yu p d a t e 。t h ep a p e ra l s o r a i s e st h e 基于x m l 的用户界面管理的研究与实现 c o n c e p t o ft h es t o r a g ei n t e r f a c ew h i c ht os t o r et h e s ed o c u m e n t sw i t hd a t a b a s e s t o r a g ei n t e r f a c en o to n l yc a nc o l l e c tt h eu s e ri n t e r f a c e ,b u ta l s oa c h i e v et h e e f f e c tt h a ty o uc a nu s ei ta n y w h e r ew h e r e v e ri th a sb e e nc o n f i g u r e d j i a n f e n gf u ( c o m p u t e r a p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db yp r o f x i a o j i a n gq i a n k e y w o r d s :x m l ,u s e ri n t e r f a c em a n a g e m e n t ,i n t e r f a c ec o n f i g u r a t i o n , i n t e r f a c ec u s t o m i z a t i o n 。i n t e r f a c ec o n t r o i m 论文独创性声明 本论文是我个人在导师指导下进行的研究工作及取得的研究成果。 论文中除了特别加以标注和致谢的地方外,不包含其他人或其他机构已 经发表或撰写过的研究成果。其他同志对本研究的启发和所做的贡献均 己在论文中作了明确的声明并表示了谢意。 作者签名: 雌 论文使用授权声明 本人同意上海海事大学有关保留、使用学位论文的规定,即:学校 有权保留送交论文复印件,允许论文被查阅和借阅:学校可以上网公布 论文的全部或部分内容,也可以采用影印、缩印或者其他复印手段保留 论文。保密的论文在解密后遵守此规定。 名:磁粹瓴业晚一 基于x m l 的用户界面管理的研究与实现 1 1 研究背景 第一章绪论 从某种意义上来说,界面对于用户而言就是整个软件系统1 1 j ,用户界面对于 软件系统的重要性不言自明。随着软件系统规模不断扩大,开发大型软件系统所 耗费的时间和成本也成倍增加。据统计,用户界面在应用软件中平均占开发量的 4 8 和运行时间1 拘5 0 m ,提高用户界面的开发效率,无疑是提高整个软件系统 开发效率非常有效的手段。因此需要通过辅助工具来设计系统的用户界面,为设 计者提供可视化、规范化的手段来实现从用户需求到实际界面的映射,快速产生 用户界面的实现代码。 用户界面同时还是软件系统中最容易发生变化的部分。大型商业系统和人机 交互较为复杂的软件系统不仅要求能够快速开发出优质的用户界面,对用户界面 的扩展性也提出了要求,即要求实现用户界面的最终用户可修改性。最终用户可 修改性使软件系统即便在发布之后,开发人员和最终用户仍然可以较小的代价扩 展用户界面。利用r a d 工具的传统开发方式,往往将用户界面代码固化在应用 程序中,一旦用户界面发生更改,则往往需要重新发布软件系统,这就极大地限 制了用户界面的扩展性网。 为了能使用户根据自己的需要管理界面,人们开发了一些用户界面工具。用 户界面工具的定义也有很多种,其中最流行的一种是用户界面管理系统( u s e r i n t e r f a c em a n a g e m e n ts y s t e m ,u i m s ) 4 d 1 。此外,许多学者还从不同的角度提 出了用户界面工具包( u s e ri n t e r f a c et o o lk i t s ) 、用户界面开发环境( u s e r i n t e r f a c ed e v e l o p m e n te n v i r o n m e n t s ,u i d e ) 、界面生成器( i n t e r f a c eb u i l d e r , i b ) 、界面开发工具( i n t e r f a c ed e v e l o p m e n tt o o l s ) 以及应用框架( a p p l i c a t i o n f r a m e w o r k s ,a f ) 等类似的概念嘲使用u i m s 来开发、管理界面。 u i m s 是借鉴数据库管理系统( d a t a b 钓em a n a g e m e n ts y s t e m s ,d b m s ) i 拘 一些观念产生的f 7 】。数据库管理系统在低层次的数据和文件之上实现了一个更高 效、更有用的抽象层。由于这种抽象,数据库管理系统将开发者和使用者隔离在 底层细节之外,从而使冗长乏味的底层工作透明化和自动化。同样的,u i m s 的 提出也是为了抽象输入输出设备等一些底层细节,在更高的层次上为设计者提供 基于x m l 的用户界面管理的研究与实现 标准和自动化的用户界面生成工具。迄今为止,国内外己经研制开发了多种类型 的试验性和商品化u i m s ,受到了系统开发者、用户接口设计者、最终用户和软 件制造商等各类用户的普遍重视。它已经成为人机交互和软件工程学中的一个重 要研究方向。 自n e w m a n 于1 9 6 8 年公布了公认的第一个u i m s :r e a c t i o nh a n d l e r 以来, u i m s 发展至现在已经经历了四代的变迁嘲。 第一代的u i m s 是仅供程序开发人员适用的外观原型生成器和显示器管理 器。这些系统面向特定交互形式i 拘h c l ( h d m a n c o m p u t e ri n t e r a c t i o n 人机交互) 的开发过程,通常因设备和应用程序而异。 第二代u i m s 多注重于提供对h c i 的运行支持而忽略对设计过程的支持,也 仅仅是开发人员而非用户使用的工具。第一代u i m s 通常用符合b a c k u s n a u r ( 已, 科斯范式,用来描述完全限定类型名称的格式,并描述在指定特殊字符、程序集 名称、指针、引用和数组时所需的语法。) 语法的宏语言描述h c i ,第二代则改用 状态转换图。 现今开发的u i m s 大多属于第三代,不仅注重对h c i 的运行支持,也支持h c i 开发过程中的设计活动,提供直接操纵( d i r e c tm a n i p u l a t i o n ) 功能,使用第三代 u i m s 来开发h c i 通常不需要大量编程。 少量一些u i m s 属于第四代。这类u l m s 不仅支持用直接操纵的方式来生成界 面,其生成的界面本身也是支持直接操纵的,通常表现于界面是由可动态操纵( 创 建、删除、修改) 的界面对象组成。支持用户定制是第四代u i m s 中一个重要的特 点,也即最终用户可修改性( e n du s e ra d a p t a b i l i t y ) 即在系统中同时提供界面定 制,控制的支持。界面定制的含义是用户通过一个定义文件定义所有的界面元素 的外观和功能,系统运行时的界面元素集是定制文件中定义的界面元素集的一个 子集,可以动态替换,但定制文件在运行期间是静态的,即在运行时,用户不能 创建一个定制文件中没有定义的新界面元素,也不能对己有界面元素的属性进行 修改。而界面控制则允许用户在系统运行期间对界面元素进行动态的创建、删除 和修改。真正意义上的界面定制应当是动态的,应当能够识别用户的定制操作, 且即刻将定制的结果反映出来,实现。所见即所得”的定制效果。 用户界面管理系统有很多优点,大致可以分为三个主要方面埘: 2 基于x m l 的用户界面管理的研究与实现 - 可创建出更优质的用户界面; - 可更加快捷、高效地创建用户界面; _ 可更加简单、经济地开发和维护用户界面代码 因此用户界面管理系统成了近年来很多学者探索和研究的方向,并取得了一 些较好的效果。 1 2 国内外研究现状 k e v i n 等人p o 提出了在交互式软件中定义人机交互的抽象用户界面模型和 符号。c h e nm i n p l 】等人对基于o s f m o t i f 的用户界面管理系统做出了成功的尝 试。陆薇等人 1 2 1 提出了在c a d 系统中作为单独组件,具有第四代u i m s 特征的交 互界面管理框架。朱军等人”司提出了基于c o r b a 的用户界面体系结构,并在此 基础上开发了试验性的o m t t o o l s 。田边等人【1 4 1 提出基于持久存储机制实现的用 户界面管理系统p d u i m s ,利用面向对象中提供的串行化方法,将实例的状态信 息转换为串行的流,通过i o 函数保存到持久存储介质中,在显示时利用反串行 化方法重新生成界面。 在u i m s 发展过程中,大多数u i m s 把生成界面代码作为其主要目的,该系统 根据开发人员对界面的定义生成出界面形态的代码,然后交由开发人员在编程过 程中进行组织与管理。这样,u i m s 所产生的界面信息与源代码处于相同级别, 对晁面信息的修改还必须通过编译、连接之后,才能反映到可执行文件中。这种 传统的界面管理方式只是简化了界面的生成与修改过程,对于用户界面的可扩展 性并没有带来实质性的好处【1 4 1 。 为了实现用户对界面的定制,必须将界面信息持久存储于可执行文件之外。 在软件启动时,先读取界面信息,然后根据界面信息生成图形用户界面( g u l ) 。 目前,有些支持用户界面定制的w i n d o w s 软件( 如m i c r o s o f to f f i c e 系列软件) 将界 面信息存储在操作系统的注册表中,其优点是信息隐蔽性强,不易被破坏;缺点 是用户对界面的定制结果只在一台计算机上保存,当软件重新安装后,界面定制 信息就会丢失,因此当用户在其他计算机上使用该软件或重装软件以后,需要对 界面重新定制,十分不方便。在p d u i m s 1 4 】系统中,使用数据流对界面信息进行 持久化存储,该方法解决了界面信息与操作系统相关联的问题,但是由于使用二 进制数据流做为存储载体,因此存在以下不足: 3 基于) 0 札的用户界面管理的研究与实现 一存储格式固定,不易扩充; _ 数据的存取是串行的过程,读写数据时需要从头至尾顺序进行,不能实 现增量存储和部分访问; _ 数据流的读写需要专门的解析接口,二进制数据流的形成与重构是数据 的串行化和反串行化过程,因此对界面的修改只能通过专门的工具来实 现,不够灵活。 所以,虽然传统的u i m s 对界面的开发提供了大量的支持,但是仍然存在一 些不足之处。界面设计是一个复杂的有不同学科参与的工程,认知心理学、设计 学、语言学等在此都扮演着重要的角色。一些u i m s 采用专门的语言描述用户界 面,对于编程知识相对较少的美术家、人机工程学家等专业人士而言,难以很好 地在界面设计中发挥作用。部分u i m s 采用编译型语言,在应对未来的扩展时存 在较大的局限性。此外,传统的u i m s 更多的是面向程序员而不是最终用户,因 此花费程序员大量精力开发出来的用户界面仍然难以获得用户好评。 x u l 【1 5 l 【1 明【17 l ( ) ( m lu s e ri n t e r f a c el a n g u a g e ) 是一种用于创建具有丰富动 态特性用户界面的标记语言,它由m o z i l l a 基金会创建,其目的是为了快速开发 m o z i l l a 项目的界面工作。x u l 完全兼容于h t m l ,它基于x m l 格式对h t m l 进行 了扩展,实现了完整、强大的图形用户界面设计功能,可以设计出复杂的图形界 面程序。x u l m c s s 来控制界面风格,用d t d 来替代字符串方便的实现本地化, 用j a v a s c r i p t j e 对用户界面的操作做出反应,提供基本的逻辑编程,用r d f 格式 来存储独立于界面的数据。但是x u l 面向的是w e b 领域,对于当前成熟的c s 和 多层分布式的应用系统显得无能为力 x a m l e 州1 明是微软推出的界面声明语言,是进入x m l g u i 竞争的新成员,使 用微软新的基于矢量的图形库( v e c t o r - b a s e dd r a w i n gl i b r a r y ) a v a l o n ,它目前只 能在w i n d o w s 中运行。x a m l 实现了用户界面和代码的完全分离,功能更强大也 更复杂。但是由于基于w i n d o w s 平台,使得x a m l 无法实现跨平台的应用。 1 3 本文的主要工作 为了能提高软件用户界面的扩展性,并同时提高界面开发的效率,使软件的 最终用户也可以通过工具对界面进行修改和定制,我们提出了一种基于可扩展标 记语言( e x t e n s i b l em a r k u pl a n g u a g e ,x ml ) 的用户界面管理模型。借鉴其他方 4 基于x m l 的用户界面管理的研究与实现 案的优点,在独立的界面文件中存储界面信息( 如菜单、工具栏、快捷键、键盘 命令、位图、图标、光标、提示等) ,不依赖于操作系统或其他软件。在存储格 式上,采用x m l 技术来管理数据,不仅解决了数据流存储方案所遇到的问题,还 为软件的国际化、本地化、服务化创造了条件。本文所做的主要工作包括: - 探讨了主要的x m l 技术。 一研究t d e l p h i n e t 开发工具与x m l 结合实现对象的持久化技术,证明了 该方案的可行性。 一深入探讨了基于m l 的用户界面管理的模型和实现机制,并且对其进行 了原型设计和实现。 - 改进了传统u i m s 模型中用户界面控制结果不能保存的不足,将用户对 界面的控制操作保存在x m l 控制文件中,在程序启动时可以读取控制 文件动态生成界面。 - 对自适应智能界面进行了研究,并用一个自适应规则实现了白适应智能 菜单。 一提出界面仓库的概念,用来集中管理用户界面文件,而且还能达到用户 界面文件同步更新的效果。 5 基于x m l 的用户界面管理的研究与实现 第二章x m l 技术特点及其应用 2 1x m l 简介 m l 是s g m l 的一个优化子集,s g m l 是i s o 国际标准化组织在1 9 8 6 年推出 的一个用来创建标记语言的语言标准 z o l 。s g m l 为出版业提供了一种将数据内容 与显示分离开来的数据表示方法,使得数据独立于机器平台和处理程序。s g m l 的确在许多大型出版系统中很有用,但是它的复杂性使其难以直接应用到 i n t e m e t 上,而h t m l 是专为w e b 上发布超文本而设计的标记语言,它是用s g m l 定义标记语言的一个典型例子。但是h t m l 本质上主要关注w e b 浏览器如何在页 面上安排文本、图像和按钮等,过多地考虑外观使其缺乏对结构化数据的表示能 力。另外,h t m l 中有限的标记不能满足很多w e b 应用的需要,如基于w e b 的大 型出版系统和新一代的电子商务。而为各种应用需要不断地往h t m l 中增加标记 显然不是最终的解决方法,究其原因是h t m l 缺乏可扩展性,解决方案应该是简 化s g m l 使之能应用到w e b 上。在此背景下,作为w e b 上使用的s g m l 的一个优 化子集x m l 应运而生 同s g m l 类似,x m l 是一种元标记语言,使用者可按需创建新的标记。x m l 的可扩展性就在于此,带标记的元素是x m l 文档的构造块,如图2 1 所示。这种 元素可以有若干个属性,并可以包含零个或多个子元素,这些子元素可以是文本 数据,也可以是带标记的元素。 6 基于x m l 的用户界面管理的研究与实现 ? x m lv e r s i o n = 。1 0 ”e n c o d i n g = 。u t f - 8 ? ! d o c t y p es h e e l i s ts y s t e m h t t p :w w w s a l e s h o e c o m s h o e l i s t d t d 。, s h o ei d = s h o e l s t y l e = 。s a n d a l 。 b t o w 蠕i z c ,91 ,2 吲s i 砰, 渤“d i s b 图2 1x m l 文档示例 x m l 文档可以在它的文档类型声明( d o c u m e n tt y p ed e c l a r a t i o n ) 中声明某 个d t d ( d o c u m e n tt y p ed e f i n i t i o n 文档类型定义) 。如上述x m l 文档的d t d 由文 件s h o e l i s t d t d ,如图2 2 所示。d t d 是关于x m l 文档中出现的标记和元素( 结 构的语法约束) ,它可用来验证一个x m l 文档d t d ,是一系列关于元素类型 ( e l e m e n t t y p e ) 属性( a t t r i b u t e s ) 实体( e n t i t i e s ) 和符号( n o t a t i o n s ) 的定义。它定义 了文档所需的标记,比如可在文档里使用的元素类型、这些元素之间可能的联系。 i e l e m e n t c u s t o m i z e 似p c d a t a i io c t o r ) 哐l e m e h r r10 c 1 o r n y , n 。n j s ts h o e # r e q u i r e d 聋r e q u i r e d , l 舯i s tc u s t o m i z ex m l - u n kc ;d a t a # f i x e d 。e x t e n d e o 。i n u n e ( r r u e i f a l s 日r r r u e f e m b e d i r e p l a c e i n e w ) 。n e w 。 i r n i s t i o c t o r u n k c d a t a # f i x e d 。1 0 c a l 0 r 。c d a l a # r e o u i r e d 图2 2 d t d 示例 x m l 语言作为一种标准语言得到的广泛应用和各大厂家的支持,必然有它自 身的优点存在。总的来说,m l 的优点主要体现在如下几个方面1 2 1 l : - 可扩展性( e x t e n s i b i l i t y ) 7 基于x m l 的用户界面管理的研究与实现 x m 蜷承了s g m l 的许多关键特性,首先是良好的可扩展性。x m l 允许使用 者创建和使用自己的标记而不是h t m l 的有限词汇表,用户可以根据应用需要定 义自己的标记语言,也可以建立起一套特定行业标记语言,做为信息共享和数据 交换的基础。 - 形式与内容分离( c o n t e n ts e p a r a t e df r o mf o r m ) x m l 的形式和内容是分离的,这样可以让数据的收集者专注于数据处理,相 同的数据无需改动a p r 在不同的s l ( x m ls t y l el a n g u a g e ) 页面下呈现不同的 风格。同时,内容和形式的分离使x m l 文档在不同应用系统之间的转换变得非常 简单,用户要做的只是将两个不同x m l 文档的d t d ( d o c u m e n t t y p ed e f i n i t i o n ) 或x m ls c h e m a 进行映射。 _ 灵活性( f l e x i b i l i t y ) h t m l 很难进一步发展,因为它是格式、超文本和图形用户界面语义的混合, 要同时发展这些混合在一起的功能是非常困难的。x m l 提供了一种结构化的数据 表示方式,使得用户界面分离于结构化数据,w e b 用户所追求的许多先进功能在 x m l 环境下易于实现。 由于x m l 文档是自描述的,m l 文档中的数据可以被任何能够对x m l 数据 进行解析的应用所提取、分析和处理,并以所需格式显示。x m l 表示数据的方式 做到了独立于应用系统,并且可以实现数据的重用。x m 啷能用来表示那些以前 不被看作文档、但是对传统的数据库来说又过于复杂而难以处理的数据,例如树 状结构在x m l 中得到了很好的体现 平台无关性( ( f l a t i n d e p e n d e n c y ) x m l 是纯文本的,不存在平台问题,能通过各种网络协议在各种网络平台和 应用平台上传输和使用。x m l 处理工具可以轻松地读取并利用这些数据,这使得 x m l 成为一种非常理想的网际语言 简明性( c o n c i s e n e s s ) 8 基于x m l 的用户界面管理的研究与实现 x m l 具有简明性,它只有s g m l 约2 0 的复杂性,但却具有s g m 嘞能的约 8 0 的功能。x m l 比完整的s g m l 简单,易学易用。 x m l 不同于普通的文件格式,由于采用封闭式标签的办法将数据组织成树型 结构,以及d t d 和x m ls c h e m a 的存在,x m l 文档具有很强的健壮性。即使文 件内容部分丢失,剩下的部分仍然可以读取。 此外,x m l 要求标记配对、嵌套、严格遵守d t d 的规定,非常注重准确性。 严格的语法要求使m l 具有良好的可读性和可维护性。 正是由于x m l 的技术先进性,业界很快接受了这项由w 3 c 推荐、允许在未 知平台下进行数据通信和信息存储的技术。例如,微软在n 日- 中广泛的应用了 x m l 技术。作为一种通用数据格式,x m l 被用于从配置文件到元数据、从r p c 到对象串行化的多种应用场合。 2 2x m l 的有关技术规范 自从x m l l 0 规范发布之后。x m l 的有关技术规范不断涌现。w 3 c 在1 9 9 9 年先后推出- t n a m e s p a c e si n m l m l 中的名字空问) 。c s s 2a s s o c i a t i n g s t y l es h e e t sw i t hx m ld o c u m e n t s ( 将样式表关联至f j x m l 文档等推荐标准) 。与 x m l 有关的重要技术规范还包括d o m 、x s lx u n k 和x m ls c h e m a 等嗍。 2 2 1d o m 围绕x m l 出现的各种标准的应用编程接i a p i 对于x m l 应用开发来说无疑 是十分重要的,应用开发者可以使用这些标准的接口来获得和设置x m l 文档中的 元素、属性、数据内容等。在这些x m l 的应用编程接口中,最重要的是w 3 c 制 定的d o md o c u m e n t0 b j o c tm o d e l 文档对象模型。d o m 是基于文档的树状结 构的,它提供了用来表示x m l 文档和h t m l 文档的一组标准的对象、组合这些对 象的标准模型,以及存取和操纵它们的一个标准接口。d o ml e v e l1 已于1 9 9 8 年1 0 月推出,它是w 3 c 为x m l 文档和h t m l 文档制定的一个独立于平台和语言 的编程接口标准,使得程序和脚本能以标准的方式存取与更新文档的内容、结构 9 基于x m l 的用户界面管理的研究与实现 和样式。其中,d o ml e v e l1 的核,l , c o r e 部分提供了能表示结构化文档的一组 低层的基本接口集,并定义了用来表示x m l 文档的扩展接口。d o ml e v e l1 的 h t m l 部分在上述基本接口集的基础上定义适用于h t m l 文档的额外的高层接 口。d o ml e v e l2 建立在d o ml e v e l1 之上,给出了用来创建和操纵文档结构和 内容的一组核心接口,并提供一组可选模块,这些模块包含了为x m l 、h t m l 、 抽象视图、类属样式表、层叠样式表、文档结构的遍历、r a n g e 对象等特制的专 用接口。 d o m 的基本对象有六个:n o d e 、d o c u m e n t 、n o d e u s t 、e l e m e n t 、a f f d b u t e 和n a m e d n o d e m a p 。d o m 中的最基本对象是n o d e ,其他节点从这个节点继承。 所有这些n o d e 组成一颗文件树,它包含t x m l 文档的几乎全部信息。在结构化 文档中,信息是按层次化的树形结构组织的,所以结构化文档的模型的组织也必 然是树形的。d o m 文档的对象结构如图2 3 所示。 图2 3d o m 文档对象结构 可以看n o d e 是其中的核心,代表了文档树中的一个抽象的节点。有两个 辅助对象,其中n o d e l i s t 实现了一个节点的序列,用于表示有顺序关系的一组节 点,比如某个节点的子节点序列,它还出现在一些方法的返回值中,例如 g e t n o d e b y n a m e 这样的依靠名字搜索节点的方法。而n a m e d n o d e m a p 表示的 是一组节点和其唯一的名字的对应关系,这个对象主要用在属性节点的表示上。 其他对象是n o d e 的子类,d o c u m e n t 是d o m 树的根,它代表一个完整的x m l 文档。它会有些自己的子节点。至少应该有一个文档元素的子节点,这个节点 类型为e l e m e n t ,是x m l 文件最外层的根元素。e l e m e n t 是常用的节点,它还可 以组成以它为根的d o m 的子树。e l e m e n t 对象代表的是x m l 文档中的标签元素, 基于x m l 的用户界面管理的研究与实现 继承n o d e ,也是n o d e 的最主要的子对象。在标签中可以包含有属性,因而在 e l e m e n t 对象中有存取其属性的方法,而任何在n o d e 中定义的方法,也可以用在 e l e m e n t 对象上。a t t r i b u t e 是x m l 元素的属性,它的父节点必然是e l e m e n t ,它 的子节点有t e x t 和e n t i t y r e f e r e n c e 。a t t r i b u t e 是被看成包含它的e l e m e n t 对象的 一部分,它并不作为d o m 树中单独的一个节点出现。这个结构如图2 4 所示。 图2 4 d o m 树的结构 我们编程的时候,有一种简单的办法,就是把各个对象都看做是n o d e 对象。 实际使用的时候,用的最多的是e l e m e n t 时象,当然它也是n o d e 对象。只是在开 始的时候,我们需要创建一个d o c u m e n t 而已。以后关注的就都是e l e m e n t 对象 了,所以需要仔细的了解e l e m e n t 的结构。e l e m e n t 的核心在于和其他对象的关 联关系,了解了e l e m e n t 的结构,就可以对d o m 树进行各种操作,进而操作x m l 文件和文本。把对象信息持久化在其中,就相当于可以存取信息持久化的容器了。 e l e m e n t 结构如图2 5 所示。 1 1 基于x m l 的用户界面管理的研究与实现 图2 5e l e m e n t 对象的结构图 2 2 2x mls c h e m a 我们知道,d t d 缺乏对x m l 文档的内容及其语义的约束机制,这将限肯= j x m l 处理器进行有效的类型检验,应用软件开发者将不得不专门编写有关类型检验的 代码,因此有必要为x m l 建立一个更全面的有效性约束机制,使x m l 处理器更 好地进行有效性检验,这样就产生y x m ls c h e m al a n g u a g e 。 用x m ls c h e m al a n g u a g e 书写的s c h e m a 文档定义了相应x m l 文档的规 则,以约束其数据元素及其关系。首先s c h e m a 文档从数据结构和数据类型两方 面更严格地约束相应x m l 文档,它可以定义d t d 所无法定义的规则,而d t d 仅 从结构上对x m l 文档进行有限的约束。其次,d t d 语言有其独立的语法形式, 而x m ls c h e m al a n g u a g e 实际上是x m l 语言的一个应用,类似h t m l 与s g m l 语言的关系。因此,s c h e m a 文档本身就是一个x m l 文档,可以用x m i i 具进行 分析,这样s c h e m a 文档也就可以用现有的d t d 语言加以描述,它们之间的关系 如图2 6 所示。 曩臣j 钵孽曩 图2 6s c h e m a 文档与x m l 文档的关系 基于x m l 的用户界面管理的研究与实现 2 3x m l 应用开发技术 虽然人们对x m l 的某些技术标准尚有争议,但是人们已普遍认识到x m l 的 作用及用途,x m l 文档无疑将成为w e b 资源的重要组成部分,而且基于x m l 的 文档资源使w e b 搜索引擎的智能化变得容易起来。而且,x m l 能够用来建立 h t m l 所不能达到的多层w e b 应用。特别地,m l 在集成异构数据源、本地计算、 数据的多种显示、w e b 应用的互操作和集成等方面有重要应用。另外,数据交换 是x m l 的最重要的用途之一,x m l 使得不同计算机应用系统之间交换数据变得 容易起来,这是因为它的可扩展特性和文档中的元数据。特别地,x m l 在电子 数据交换、a g e n t 、软件设计元素的交换等方面有重要应用。然而,x m l 应用开 发通常涉及4 个方面。 - 构造x m l 标记语言 x m l 允许任何人创建他自己的标记语言,但是设计一个好的标记语言并非易 事。首先通过d t d 来设计标记,其次还要用自然语言解释这些标记的含义,以 便程序员能正确处理x m l 文档中的元素。然而,在很多场合,用x m l1 0 中规定 的d t d 来定义标记显得有些不够。另外,人们也希望用x m l 文档来定义标记结 构及约束,为此,要设计一个x m ls c h e m al a n g u a g e 以便用x m l 文档来定义 增强的d t d ,由m i c r o s o f t 及其合作伙伴提交的x m l - d a t a 正是这种语言的一个 典型代表。 一生成x m l 文档 生成x m l 文档的数据来源多种多样,可能来自数据库,也可能来自x m l 文 档,也可能是w e b 上的其它资源。x m l - q l 、s q l x 、x q l 等查询语言及相关技 术可用来生成x m l 文档。比如:s q l x s q l e m b e d d e di n x m l 嵌入x m l 中的结 构化查询语言,是一个嵌入x m l 中的s q l 语言,它为基于d o m 的应用程序提供 了一个存取关系数据库的简便方法。s q l x 接受一个用x m l 描述的查询,并把 他翻译成一个j d b c 调用序列,查询结果被转换为d o m 结构并返回。 一解释x m l 文档 解释x m l 文档可以通过使用d o m 或s a xs i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论