




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安卓开发基础期末论文姓名:汤斌斌学号:H11114036学院:经济学院XML简介及其在Android平台上的应用(H11114036 汤斌斌 经济学院)摘要:XML全称 Extensible Markup Language,翻译为扩展的标记语言,是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。它与HTML一样都是SGML(Standard Generalized Markup Language,标准通用标记语言)。比SGML简单得多,比HTML更令编程人员喜爱,它包含了很多SGML特性,继承了SGML的优点,文档结构严谨,层次分明,语义更加明确,具有良好的可读性、易编写和易维护等特性,而且使得多媒体信息在不同的系统之间相互交流成为现实。本文通过例子,简单介绍XML的发展、特点、优势,及其在Android平台上的应用,从中感受XML易于掌握和使用。关键词:XML技术 历史发展 优点Android平台 应用XML的应用越来越广泛、无论在数据交换、Web服务、内容管理、Web集成,还是配制数据等,都在使用XML。 XML是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。今后支持XML的软件也将会越来越多XML离我们的工作生活也将越来越近。一、XML简介1、XML的发展概况 XML是什么?XML是Extensible Markup Language的缩写,译为可扩展的标记语言。XML是一套完善的定义语义标记的规则。XML的发展历史如图所示。 在20世纪80年代末期,位于瑞士的欧洲原子物理实验室(CERN)的研究人员为了使他们的工作方便而开发了WEB技术,他们的目的是将实验室网络上的研究文档共享。到了1986年,ISO国际标准化组织颁布了ISO 8879号国际标准,即SGML(Standard Generalized Markup Language一标准通用标记语言),它是一种通用的文档结构描述置标语言。由于SG ML非常复杂,不易使用,在1992年,CERN的研究人员把WEB技术(纯文本浏览器和最初版本HTML一简化的SGML)提交给INTERNET协会,从此,HTML(Hyper Text MarkupLanguage)开始流行,并逐渐发展成一个庞大的家族,版本由原来的HTML 1.0,HTML 2.O,HTML 3.2,HTML 4.0到目前的HTML4.1,以及兼容XML格式的XHTML 1.0(Extensible Hyper Text Markup Language),XHTML 1.1和 XHTML 2.0 (XHTML 2.0的第五个工作草案在2003年5月6口公布)。虽然HTML己经非常流行,并且现在的程序员大多数都在使用它来创建WEB网站,但是,由于HTML是一个实例置标语言,无法完整描述数据内容,也不能描述矢量图形、科学符号等对象,格式表现不能独立,结构不严格等诸多因素,在1998年2月10日,国际互联网论坛W3C(World Wide Web Consortium)发布XML 1.0,随后在 2000年10月6日发布了XML 1.0 (Second Edition), 2003年10月30口发布了XML 1.0 (Third Edition)。为简单化SGML,XML重新定义了一些SGML的内部值和参数,并删去大量繁杂的、不常用的、使编程复杂的特征。其实XML是SGML的一个子集,它包含了很多SGML特性,继承了SGML的优点,但是要比SGML简单得多,比HTML更令编程人员喜爱。正是由于这些原因,XML的Internet应用大量涌现。如化学标记语言(Chemical Markup Language)、数学标记语言(Mathematical Markup Language)、同步的多媒体集成语言(Synchronized Multimedia Integration Language)、可伸缩的矢量图形(Scalable Vector Graphics)、矢量标记语言(Vector Markup Language)、音乐标记语言(MusicML)、语音朗读标记语言(VoxML)、濒道定义格式(Channel Definition Format)等等。2、XML的优点 XML和HTML都从属于SGML,但是XML是一种无标记语言。XML描述的是文档的结构和意义,而不描述页面元素的格式化,用户可以根据自己的需要定义标记来描述和创建文档,这样的文档结构严谨,层次分明,语义更加明确,更适合人类的阅读习惯和更便于计算机的查找、存档。例如,描述广东省气象局各处室科室的电话写码。通常人们用Microsoft Word描述的格式如下: 广东省气象局 电信台: 运行科电话:87754050 运行科Email :YXK 网络科电话:87625482网络科Email:WLK气象台:短时科电话:87777786短时科Email:DSK短期科电话:87778667短期科Email:DQK如果改为用XML来描述,则为如下:运行科87754050YXKGRMC.GOV.CN网络科87625482WLKGRMC.GOV.CN 比较上述两种文档,XML格式描述的结构和语义更加清晰明了,易于理解,并且XML文档是一种纯文本,非专有的格式,不受版权、专利等其他知识产权的限制,可以使用任意的编辑器进行编辑,可以显示在各种设备上。而用Word等其他专用编辑软件编辑的文档受到专有格式的限制,不利于数据交换,不利于计算机的查找。XML和HTML相比,两者都支持统一字符编码协会(Unicode Consortium)制定的通用字符集(UCS-Universal Character Set),都支持层叠样式单( CSS-Cascading Style Sheets)外观输出;不同在于XML支持文档类型定义DTD ( Document Type Definition ),支持专有的可扩展的样式语言(XSL-Extensible Style Language),支持比HTML更为复杂的XLink和XPointer链接等。在信息交互方面,XML同样可以使用列表(有序olist和无序ulist)和表格(table)来组织和表示数据,创建表单(form)和XML数据库,通过“POST”方法将表单中的控件(文木框TEXT、口令框PASSWORD、复选框CHECK、单选框RADIO等)内容提交给服务器完成信息交互。除此之外,XML的有点还有以下几点:、良好的可扩展性。XML允许各个不同的行业根据自己独特的需要制定自己的一套标记,同时,它并不要求所有浏览器都能处理这成千上万个标记,同样也不要求一个置标语言能够适合各个行业各个领域的应用,这种具体问题具体分析的方法更有助于置标语言的发展。 、内容与形式的分离。正如前面所说,XML中信息的显示方式已经从信息本身中抽取出来,放在了“样式单”中。这样做便于信息表现方式的修改,便于数据的搜索,也使得XML具有良好的自描述性,能够描述信息本身的含义甚至它们之间的关系。 、遵循严格的语法要求。XML不但要求标记配对、嵌套,而且还要求严格遵守DTD的规定。这增加了网页文档的可读性和可维护性,也大大减轻了浏览器开发人员的负担,提高了浏览器的时间空间效率。 、便于不同系统之间信息的传输。不同企业、不同部门中往往存在着许多不同的系统,XML可以用作各种不同系统之间的交流媒介,是一种非常理想的网际语言。、具有较好的保值性。XML的保值性来自它的先驱之一一一SGML语言,可以为文档提供50年以上的寿命。3、XML语法规则 XML数据具有高度的层次化结构,严格的语法规则,其在XML 1.0中就有了明确的规范。如果文档内容和结构不符合这种规范,它就不可能被任何XML处理器所处理。 下面是一些基本的语法规则: 一个XML文档首先应当是“格式良好的”(Well-Formed)“格式良好的”XML文档除了要满足根元素唯一的特性之外,还包括:元素的属性值必须由单引号()或双引号(“”)包含。每个文档有且仅有一个根元素(Root),其他所有元素都是它的子元素。每个元素(Element)都必须有开始和结束标记(,) 起始标签和结束标签应当匹配;结束标签是必不可少的;元素的内容可是其它的元素、符数据、字符引用、实体引用、PI、注释和CDATA(CharacterDATA,字符数据)节,元素也是能够拥有属性的唯一基本类型。大小写应一致,XML对字母的大小写是敏感的。XML是半结构化数据,可以用XML描述树来表示其结构,所以它的逻辑结构和语法都有严格定义(如使用DTD或Schema)。每个元素对的上下文(Context)关系要正确。即元素之间必须正确的嵌套,子元素应当完全包括在父辈元素中。下面的例子就是嵌套错误: 正确的嵌套方式如下: 属性必须包括在引号中;元素中的属性是不允许重复的。 XML文档的“有效性”是指一个XML文档应当遵守DTD文件或是Schema的规定,“有效的”XML文档肯定是“格式良好的”。4、XML结构 可以借助逻辑或物理结构描述XML文档。 逻辑结构:文档的逻辑结构包括元素和属性。它还包括交叉引用,这是指向文档其他部分或外部对象的链接。这种链接植根于基本XML语言,但不依赖于XML链接语言。当想在某处插入一张图、一个脚注或参考文献时,这种链接非常有用。每个XML文档,不管是否具有一个DTD模式还是仅仅是良构的,都具有某种预先定义的结构或模型。结构部件称为元素。元素包含信息或内容并且可能包含其他元素(它们可能既包含信息,又包含其他元素,也可能是空的)。其中有一个元素称为根元素,它包含所有其他元素。有些元素具有利用属性添加的额外信息。属性可与标签或形容词相比,它们还可能提供元数据一关于数据的数据。例如,如果正在撰写关于各种型号的小汽车,属性可能定义颜色、引擎动力、等等。根据文档的DTD或XML模式,属性可能是必须的,也可能是可选的。 物理结构:逻辑结构是指概念文档,物理结构描述实际数据及它们存储在哪里。按照XML规范的定义,“XML文档可能由一个或许多存储单元组成,它们称为实体”。实体的命名惯例类似于逻辑结构中元素和属性的命名惯例。有一个实体包含整个XML文档,它称为根实体或文档实体。XML处理器XML文档看成一系列以顺序方式读取的字符。当它看到实体引用时,它就读取该实体的名字,并用实际文本块、图形或其他媒体来替代该实体引用。一个实体可能是从单个字符到一个庞大文件的任何东西,但是用户常常将文档分解为小块数据,形成更易于操作的实体。实体可以是任何类型的媒体(一个图形、一个声音剪辑文件、一幅动画等等),也可以存储在任何地方,例如,存储在数据库、远程服务器的平面文件或Web网站中。 以“广东省气象局各处室科室的电话写码”为例创建一个简单的结构完整的XML文档。如下: Metelephone.xml ! 一一注释XML文档声明,必须以结束,version为当前XML版本号,encoding为编码方式,GB2312表示以中国汉字编码,缺省为压缩的Unicode UTF-8,standalone表示有没有外部文件导入,yes表示没有,no表示有一一 !一一使用可扩展的样式语言XSL格式输出,当然,XML也支持层叠样式单CSS格式输出,语句改写为一一 运行科 87754050 YXKGRMC.GOV.CN 网络科 87625482 WLKGRMC.GOV.CN Metelephone.dtd Metelephone.xsl 广东省气象局联系信息 电话: EMAIL : 5、XML解析技术 Java里边解析XML一般有四种常用的技术:、Document Object Model (DOM),W3C里边一种成熟的标准。 、Simple API for XML (SAX),第一种被广泛接受的XML的API,成为事实上的标准。 、Streaming API for XML (StAX),在JSR-173中提到的一种很有前途的新型解析模型。 、JDOM,可以理解为DOM模式的修改; DOM解析是基于树结构的,它通过在内存构建整棵文档树,允许完全、动态访问XML文档的任何节点。 SAX解析XML采用事件驱动的方式。虽然并不是W3C的标准,但它的API是公认的,很多解析器都是基于它的。当SAX解析器读取文档的时候会引发很多事件,这些事件会交给对应的事件处理者(event handlers)。三种基本的事件: 、DTD Handler访问XML的DTD内容 、Content Handle:访问文档的内容 、ErrorHandler解析错误 StAX是一种令人振奋的新型解析技术,和SAX一样,它也采用了事件驱动模型。不过,在对于事件的处理上,SAX采用了“推模式”(push modal),而StAX则使用的是“拉模式”(pull model)。说得更加明白一些,就是这样: SAX是自己按顺序把整个文档解析完,在它解析的过程,会主动产生事件交给程序中相应的处理函数来处理当前内容;而StAX是由程序来驱动整个解析过程,只有当程序发出解析请求的时候,解析器才会告诉相应的事件,然后程序再决定如何处理当前内容。 从这个原理来判断的话,StAX的实现显然要更加灵活,程序可以选择自己需要处理的部分,而SAX则一定会遍历整个文档。而据我的理解,将StAX叫成“程序驱动模型”可能更利于理解一些。 DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像SAX那样是一次性的处理。DOM使用起来也要简单得多。另一方面,对于特别大的文档,解析和加载整个文档可能很慢且很耗资源,因此使用其他手段来处理这样的数据会更好。这些基于事件的模型,比如SAX。 JDOM的目的是成为Java特定文档模型,它简化与XML的交互并且比使用DOM实现更快。由于是第一个Java特定模型,JDOM一直得到大力推广和促进。正在考虑通过“Java规范请求JSR-102”将它最终用作“Java标准扩展”。从2000年初就已经开始了JDOM开发。JDOM与DOM主要有两方面不同。首先,JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但是也限制了灵活性。第二,API大量使用了Collections类,简化了那些已经熟悉这些类的Java开发者的使用。JDOM文档声明其目的是“使用20%(或更少)的精力解决80%(或更多)Java/XML问题”(根据学习曲线假定为20% )。JDOM对于大多数Java/XML应用程序来说当然是有用的,并且大多数开发者发现API比DOM容易理解得多。JDOM还包括对程序行为的相当广泛检查以防止用户做任何在XML中无意义的事。然而,它仍需要用户充分理解XML以便做一些超出基本的工作(或者甚至理解某些情况下的错误)。这也许是比学习DOM或JDOM接口都更有意义的工作。JDOM自身不包含解析器。它通常使用SAX2解析器来解析和验证输入XML文档(尽管它还可以将以前构造的DOM表示作为输入)。它包含一些转换器以将JDOM表示输出成SAX2事件流、DOM模型或XML文本文档。JDOM是在Apache许可证变体下发布的开放源码。 SAX处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。一般来说,SAX还比它的替代者DOM快许多。对于需要自己编写代码来处理XML文档的开发人员来说,选择DOM还是SAX解析模型是一个非常重要的设计决策。DOM采用建立树形结构的方式访问XML文档,而SAX采用的事件模型。DOM解析器把XML文档转化为一个包含其内容的树,并可以对树进行遍历。用DOM解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用DOM解析器的时候需要处理整个XML文档,所以对性能和内存的要求比较高,尤其是遇到很大的XML文件的时候。由于它的遍历能力,DOM解析器常用于XML文档需要频繁的改变的服务中。SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag。特别是当开发人员只需要处理文档中所包含的部分数据时,SAX这种扩展能力得到了更好的体现。但用SAX解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。DOM与SAX的比较如表所示。二、XML在Android平台上的应用 Android手机界面管理系统为开发者提供可视化的手段来开发用户界面,使不熟悉Android界面语言的美工或UI设计师也能对界面进行修改完善,减少他们与开发人员的沟通时间,从而提高开发效率。 Android手机界面管理系统分为界面在PC机上的开发模块和界面在Android模拟器端显示模块。 界面在PC机上的开发模块:开发人员可以通过拖拽等技术生成自己需要的图形用户界面,并将生成的界面保存成XML格式的文件。系统还支持打开一个已完成的XML格式界面程序,读取界面信息并在PC机上显示界面。针对界面中每一个组件,以图形界面的方式将组件的属性显示出来,以方便不熟悉Android界面语言的美工或UI设计师对界面进行修改完善。 界面在Android模拟器端显示模块:将最终生成的XML格式界面程序发送至Android手机或Android模拟器端。在模拟器端通过由Android架构编写的应用程序对其进行解析,将界面在手机或模拟器显示出来。在对该系统的实现介绍和阐述之前,先对这两部分的需求做一描述。1、界面在PC机上的开发模块需求描述 Android手机界面管理系统针对开发界面的需求,实现了界面在PC机上的所见即所得开发模块,开发人员或UI设计师通过该模块提供的编辑环境可以方便高效地构造的Android应用程序的界面,并且还支持载入一个XML格式界面文件,读取界面信息并在PC机上显示界面,针对界面中每一个组件,以图形界面的方式显示修改每个组件的属性。因此,该部分分为“界面在PC机上生成部分”和“界面在PC机上显示部分”。“生成部分”是构造一个界面,为用户提供所见即所得的界面生成工具,使开发人员或UI设计师能够快速的开发Android界面,并形成XML格式界面程序。“显示部分”是显示一个界面,即从XML格式界面程序获得界面信息并显示,方便开发人员或UI设计师对各组件的属性进行修改完善。 界面在PC机上的开发部分主要功能包括:文件管理、编辑手段、工程管理、组件选择、编辑组件属性窗口、界面显示。下面将就各个功能的输入、处理、输出做相应的描述。文件管理 文件管理包括对XML界面文件的管理。在File菜单中应具有以下几部分,如表所示。输入 对XML界面程序操作的消息动作。处理 读取XML界面文件 生成与界面对应的XML文件。输出 XML界面文件 图形界面显示编辑手段 编辑手段为用户提供定义XML界面文件时的编辑功能,开发人员可以通过以下Edit菜单选项对界面显示窗体中的组件和文件编辑窗体中的XML文件进行编辑,如表所示。输入 用户对界面编辑的动作。处理 根据选择,完成剪贴板缓冲区与界面中组件和XML界面程序内容的双向确定工作。输出 剪贴板缓冲区 定义界面显示的输出 数据更新工程管理 管理一个Android应用程序中的界面程序,负责导入Android应用程序的相关资源文件和发送独立一屏的Android界面到Android手机或模拟器。开发人员可以通过Project菜单对Android界面程序进行管理,如表所示。输入 XML界面程序及其相关的属性信息。处理 将跟Android应用程序的界面部分相关的资源导入。 将XML界面程序和相关的属性信息由PC机发送至Android手机或模拟器,由Android应用程序对其进行解析。输出 载入成功提示框 发送成功的提示框。组件选择 组件窗口为生成界面提供对象组件资源,用户通过在组件窗口中选择组件到界面显示窗口内,并通过相应属性设定,得到期望的界面。组件窗口主要包括组合框、标签、按钮、文本框等原始组件和日期选择、时钟等高级组件。根据Android程序的需求,这些组件也是构成手机界面的主要的和最常用的组件。 输入 开发人员对组件窗口中组件的选择。 处理 可用鼠标将界面组件从组件选择窗口拖拽到界面显示窗口 当用户选中某界面组件,比如说选中了一个按钮,那么该按钮的边框显示为高亮,以区别没有被选中的界面组件 输出 界面显示输出。属性窗口编辑组件属性 属性输入窗负责显示目前激活组件的属性名和属性值,开发人员和UI设计师可以对这些值进行修改,不同的组件将有不同的属性。 输入 下面以按钮组件的主要属性为例加以说明,如表所示。处理 当用户修改了某个属性值时,修改界面显示窗口中对应组件的外观。输出 界面显示窗口中对应组件的外观。界面显示界面显示负责对新创建的界面外观和鼠标操作效果的显示。输入 选择组件+鼠标输入。处理 当把组件从组件箱拖拽到窗口底板中时,组件需在放开鼠标的位置显示,并显示对应属性窗。 当用户选中某界面组件,比如说选中了一个按钮,那么该按钮的边框显示为高亮,以区别没有被选中的界面组件。 用户可用鼠标拖拽的方式调整组件显示窗口中界面组件的大小,并在界面显示窗口中随意拖拽界面组件的位置。输出 界面显示窗口中组件的外观2、界面在Android模拟器端显示模块需求描述接收PC机发送过来的XML界面程序和相关数据,对其进行解析和显示。输入 XML界面程序和相关数据处理 解析XML界面程序 解析XML格式的界面相关数据输出 显示独立一屏的Android界面 综合以上系统的需求描述,下面给出了整个系统的设计目标: 1.所见即所得WYSIWYG (What You See Is What You Get ) 在WYSIWYG交互界面中显示的用户交互行为与应用程序最终产生的结果是一致的,有利于开发人员进行及时修改操作。 2.多种方式获得XML界面程序 开发人员可通过创建新的界面程序、载入已有界面程序、复制粘贴到程序显示板三种方式获得XML界面程序。 3.直接操纵组件 通过图形界面的方式对组件属性进行修改,操作简单快捷、结果立即可见。添加控件,设置控件位置,大小,颜色,内容时能在视觉上给用户反馈,用户通过视觉上的反馈修改控件的属性。在拖动控件位置时,能绘制出控件拖放的位置。 4.操作方式灵活多样 开发人员可以通过复制、粘贴、撤销、回退、全选、清屏的方式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度房屋买卖垫资借款及贷款利率调整合同
- 二零二五年度工人工资支付与环境保护合同
- 2025版离婚后共同财产分割及债务处理三方协议书
- 二零二五年度电动四轮车总代理服务合同样本
- 二零二五年度稻谷种植保险代理服务合同
- 二零二五年度创新型科技公司股权投资合同范本
- 二零二五年度鲜活海鲜冷链物流运输合同
- 2025版农业产业链无息贷款合作协议范本
- 2025版新能源电池性能测试与分析技术服务协议
- 2025电视机品牌代理商区域销售采购合同规范
- 信保业务自查问题统计表
- 年产3万吨环保型铝箔容器系列产品生产线项目环境影响报告
- 安庆汇辰药业有限公司高端原料药、医药中间体建设项目环境影响报告书
- 关于术中知晓预防和脑功能监测专家共识
- 河道修防工高级工试题
- 女性生殖脏器
- 保障农民工工资支付协调机制和工资预防机制
- GB/T 4458.3-2013机械制图轴测图
- GB/T 311.2-2013绝缘配合第2部分:使用导则
- GB/T 13912-2002金属覆盖层钢铁制件热浸镀锌层技术要求及试验方法
- GB/T 13890-2008天然石材术语
评论
0/150
提交评论