作者:empty 页数:318 出版社:empty |
(1) 精心设计的12个实例详细描述XML编程的方法和技巧面向初、中级读者,对高级读者也有重要参考价值北京希电子由版社总策划
内容简介前言这是木通过12个典型范例介绍XML编程从入门到精道的专著,全书山2篇:12章组成, 主要内容包括; 第一篇XML提高, 介绍数据建模, DTD模式.XML模式和XML DR、名域机制, 本篇用有3个实例; 第二篇XML与数据.介绍DOM进阶、DO应用实例人包括投票系统、留言本、网址及短消息管理>, SAX进阶, XML与数据, 并提供了7个实例:第三篇XML工业应用, 主要内容是WML无线用协议、SMIL(同步多媒体集成语青XML与电子商务, XML扩展(共2个实例)本书的特点是具体应用范例和软件功能相结合,边讲边练,山浅入深,学习轻松,上手容易木书面向初、中级读者,对高级读者也有要参考价值,
种技术的产生不可避免的会产牛连带的效应, 随着XML技术的成熟:XML也越来事实上:我州开始接触网络是从研究ASP和JAVA开始的:我想可能很多的程序员和我对丁绝大多数的XML入门者来说, XML方面的可能只是一知半解:也就是停留在一XML的应用领域是极其广阔的, 在本书的第4章之后.我们介绍了关于XML的在几在写这本书的时候, 我们假设了读者是有一定的XML的编程经验的设计人员, 因此.本书着重于将XML作为一种开放技术的应用工具来介绍、提供了XML模式, 数据交
说明:凡我社产品如有残缺,可执相关凭证与本社调换,从1998年2月W3C正式推出XML后、在短短的三年间, XML以惊人的速度在广大的设计人员中传播开来.随着Internet的飞速发展.HTML开始对更多的网络设计要求显露出疲态XML也就是在这种大环境下孕育而生的,越被人们重视-我个人也在研究XML的内容, 尤其是比较深入的:象XML的接口、XML通讯等内容, 当我看了许多关于XML的书籍之后、我总感觉到好像欠缺了点什么、因为感觉总是每本书的内容差不多, 不是从XML的语法讲起, 就是从XML的历史开始, 而内容中随处可见的总是些浅层的内容.对于XML的些内核和接口问题, 往往什么都没有说或说的非常简略,这使我很失望..一样, 这些技术在HTML网页上有很好的应用, 我们总能找到很多可以实现的、技术。但是当我们涉及到XML的时候, 我们有时候有点为难了, 因为在大多数的书籍里, 浅显的技术完全不需要我们已经掌握的技术,/在这个方面,我们都需要更加完善的内容来介绍一些更深的内容,比如平台的互连,网络之间的通信等来发挥我们应有的能力:个平台上、无法再提高了, 这主要是国内现有的XML方面的书籍涉及到的内容面都比较狭窄.介绍的内容也都是很基本的一些内容-无法再更加深入:虽然有些好的国外书刊.但是往往也因为翻译不好而很难理解,读者可能有这样的感触.当自己花了很多的时间和金钱在书店购买了大堆的XML的书籍, 拿回家里, 不得不从本厚厚的书籍中寻觅出仅仅儿十页的有用资源。这不能不说是一种浪费!因此:本书从开始就避开了一些浅显易懂的XML基础概念和XML基础语法直接从XML的高级应用方面对这个很有前途的语言进行介绍.在这些介绍中, 我们侧重在SAX接口和DOM接口的高级使用介绍中, 对于Windows独行大下的今天,各个软件都充斥的接口、模块、对象等等诸如此类的东西,这种编程的趋势使得我们必须对新的语言的接口问题产生高度的重视,想要使用个单独的语言完成项工程是几乎不可能的, 或者是非常繁琐的。使用接口, 使得各个语言向有交流的通道:XML在这一点上是成功的:个典型领域的应用, 例如:电子商务、无线应用协议、多媒体SMIL等等, 对一个设计者来说, 一个语言最终的用处就是在实际的应用上, XML的实际应用远远超出了本书中所介绍的这几方面。但是, 可以通过本书的介绍对XML的应用有“质”的理解:对各个领域的应用的介绍是没有止境的, 但是只有真正懂得了XML的应用的方法, 才能在不断推出的XML扩展中,第一时间掌握它,些XML的基础语法和XML的些简单的概念将不会在本书中被解释.如果读者在阅读时感到有理解困难:请自行参照一些关于XML的基础读物·换、可视化风格等技术的研究.本书面向有一定基础的XML设计人员、其内容人多数涉及的是一些XML应用方面的内容, 比较技术性和专业性..本书的重点放在XML在DOM、SAX以及数据库方面的应用和XML的一些实际扩展.尤其是XML的扩展, 本书介绍了最新的WML语言和电子商务包括象BIZTALK方面的研究, 相信读完本书后读者对丁XML的各种专业技术会有一个比较全面的了解、王瑾、吴浩、李炎、刘伟、刘华刚、朱峰、赵晓燕,李晓、马苍、郝春容、韦勇、成美华、萧峰、李菊、张浩然、李欣、张浩、李想、朱大成、周卫、赵中伟、杨竞锐、王贵新、张诚华、朱丽云、程松、李毅、赵超、孙名等同志在整理材料方面给予了作者很大的帮助-本书由曾春平、王超和张鹏执笔编写.此外.张东.李晓,范智育,王宏生、李光龙、由于时间仓促,加之编者的水平有限.缺点和错误在所难免,恳请专家和广大读者不各教,批评指正:
1.1.1UML方法UML(Unified Modeling Language) 是一种现今最流行的建模方法、本章的实例将会依照UML方法建立, 下面先来介绍UML方法.UML是一种定义良好、易于表达, 功能强人且普遍适用的建模语言..它融入了软件工程领域的新思想、新方法和新技术。它不仅支持面向对象的分析与设计:还支持从需求分析开始的软件开发的全过程由丁这方面优势, 1997年11月17日.OMG采纳了UML 1.1作为基于面向对象技术的标准建模语言·UML代表了面向对象方法的软件开发技术的发展方向:具有巨大的市场前景.也具有重人的经济价值和国防价值,标准建模语言UML的内容首先, UML融合了Booch、OMT和OOSE方法中的基本概念:而且这些基木概念与其他面向对象技术中的基本概念基本一致、所以UML必然成为商业界乐于采用的一种简单且致的建模语言:其次, UML不仅仅是上述方法的简单注合, 还是在这些方法的基础上广泛征求意见, 集众家之长, 儿经修改而完成的.所以UML扩展了现有方法的应用范围:第三, UML是标准的建模语言:而不是标准的开发过程。尽管UML的应用以系统的开发过程为背景,但由于不同的组织和不同的应用领域.所以开发过程也不尽相同,作为一种建模语言, UML的定义包括UML语义和UML表示法两个部分.描述基于UML的精确元模型定义.元模型为UML的所有元素在语法和语义上提供了一种简单、一致、通用的定义性说明:使开发者能在语义上取得一致,消除了因人而异的表达方法所造成的影响此外UML还支持对元模型的扩展定义,
第1章数据建模UML符号表示法:为开发者或开发工具使用图形符号和文本语法来进行系统建模提供了标准, 这些图形符号和文宁表达的是应用级的模型.在语义上它是UML元模型的实例.标准建模语言UML的重要内容可以由下列五类图(共9种图形) 来定义:类的静态结构不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等.还包括类的内部结构、类的属性和操作1,类图描述的是一种静态关系、在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识:他们的不同点在于对象图显示类的多个对象实例,而不是实际的类,一个对象图是类图的一个实例.由于对象存在生命周期,因此对象图只能在系统某一时间段存在.包由包或类组成,表示包与包之间的关系..包图用于描述系统的分层结构,系:其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充,在实用上并不需要为所有的类画状态图,仅为那些有多个状态.其行为受外界环境的影响并且发生改变的类画状态图.面活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动.象之间的动态合作关系,它强调对象之间消息发送的心序:同时显示对象之间的交互;合作图描述对象间的协作关系.合作图跟顺序图相似,显示对象间的动态合作关系,除显示信息交换外、合作图还显示对象以及它们之间的关系.如果强调时间和顺序,则使用顺序图:如果强调上下级关系:则选择合作图.这两种图合称为交互图.各部件之间的依赖关系,一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件它包含逻辑类或实现类的有关信息,部件图有助于分析和理解部件之间的相互影响程度.
·第一类是用例图,从用户角度描述系统功能,井指出各功能的操作者,建模语言的应用下面总结一下标准建模语言UML的主要特点:·第二类是静态图(Static diagram) , 包括类图、对象图和包图, 其中类图描述系统中·第三类是行为图(Behavior diagram) , 描述系统的动态模型和组成对象间的交互关·第四类是交互图(Interactive diagram) , 描述对象间的交互关系, 其中顺序图显示对.第五类是实现图(Implementation diagram) .其中构件图描述代码部件的物理结构及配置图定义了系统中软硬件的物理体系结构、它可以显示实际的计算机和设备‘用节点表示)以及它们之间的连接关系.也可显示连接的类型及部件之间的依赖性,在节点内部,放置可执行部件和对象以显示节点与可执行软件单元的对应关系:立系统的静态模型,以构造系统的结构;第三步是描述系统的行为,其中在第步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图从应用的角度看,当采用面向对象技术设计系统时,首先需要描述需求;其次根据需求建形.是标准建模语言UML的静态建模机制:而第三步中所建立的模型是可以执行的, 或者表示执行时的时序状态或交互关系,它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制.因此, 标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类-区UML统一了Booch、OMT和OOSE等方法中的基本概念。
XML高级应用区UML吸取了面向对象技术领域中其他流派的长处, 其中也包括非00方法的优点.UML符号表示考虑了各种方法的图形表示:删除了人量易引起混乱的、多余的和极少使用的符号, 也添加了一些新符号:因此, 在UML中融入了面向对象领域的很多思想, 这些思想并不是UML的开发者们发明的, 面是他们依据最优秀的00方法和丰富的计算机科学实践经验综合提炼面成的.区UML在演变过程中还提出了些新的概念。在UML标准中新添加了模板(Stereo为实现用例, 类之间需要协作, 这可以用UML动态模型来描述.在分析阶段, 只对UML模型还可作为测试阶段的依据, 系统通常需要经过单元测试, 集成测试、系统测静态模型创重于描述系统的状态.比如下面的语句:“一个客户有一个或多个账号”.types) , 职责(Responsibili tics) .扩展机制(Extensibility mechanisms) .线程(Threads) ,过程(Processes) :分布式(Distribution) .并发(Concurrency) :模式(Patte mns) 、合作(Collaborations) :活动图(Activity diagram) 等新概念, 并清晰地区分类型(Type) 、类(Class) 和实例(Instance) , 细化(Refinement) , 接口(Interfaces) 和组件(Components)
问题领域的对象‘现实世界的概念:建模:而不考虑定义软件系统中技术细节的类(如处理用户接口、数据库、通讯和井行性等问题的类1,这些技术细节将在设计阶段引入,因此设计阶段为构造阶段提供了更详细的规格说明。编程(构造)是个独立的阶段,其任务是用面向对象编程语言将设计阶段描述的类转换成实际的代码, 需要指出的是, 在用UML建立分析和设计模型时.应尽量避免考虑把模型转换成某种特定的编程语言:因为在早期:模型仅仅是理解和分析系统结构的工具:过早考虑编码问题十分不利于建立简单正确的模型.试和验收测试.不同的测试小组使用不同的UML图作为测试依据:单元测试使用类图和类规格说明:集成测试使用部件图和合作图:系统测试使用例图来验证系统的行为:验收测试则由用户进行,以验证系统测试的结果是杏满足分析阶段所确定的需求,总之:标准建模语言UML适用于以面向对象技术来描述的任何类型的系统:而且适用于从需求规格描述直至系统完成后的测试和维护整个系统开发的不同阶段.
第1章数据建模打华冷象的类型、特性以及对象之间的关系静态模型也可以定义词表.这些名称往往是比较简洁明了的,能得到大家的公认.动态模型侧重于描述对信息的处理、例如;处理模型和工作流图表、数据流模型、以及对象生存周期历史,如下面的类型语句,“销售部门把产品报告发送给负责为顾客提供咨询的顾问“.“财务部提取公司某一部门的月盈余总结7.动态模型描述了信息的交换,即出于特定的目的将数据从个地方发送到另个地方.动态模型直接与信息的设计相关,信息存在的时间很短:而且用途常常随时间转移。但是在实际的设计中.我们并非单纯的把静态模型和动态模型分开来,而是同时考虑这两种模一般的,静态模型与数据库的设计直接相关,信息被长期保存.并用于多种用途:而型.
静态信息模型一通常使用用例来建立静态模型.用例模型描述的是外部执行者(Actor:所理解的系统功能。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识..首先.它描述了待开发系统的功能需求:其次,它将系统看作黑盒,从外部执行者的角度米理解系统:第二、它驱动了需求分析之后各阶段的开发工作、不仅在开发过程中保证了系统所有功能的实现,而且被用于验证和检测所开发的系统.几乎在任何情况下都会使用用例来狱取需求,规划和控制项日等信息:用例的获取是需求分析阶段的主要任务之一、而且是首先要做的工作,大部分用例将在项目的需求分析阶段产生,并且随着工作的深入会发现更多的用例、这些都应及时增添到已有的用例集中.用例集中的每个用例都是个潜在的需求,
1.获取执行者获取用例首先要找出系统的执行者。可以通过让用户回答一些问题来识别执行者。以下问题可供参考:一旦获取的执行者,就可以对每个执行者提出问题以获取用例,以下问题可供参考:区简单消息(Simple Message) 表示简单的控制流, 用于描述控制如何在对象间进行序图(Sequence Diagram) 用来描述对象之间动态的交互关系, 着重体现对象间消息传消息可以用消息名及参数来标识。消息也可带有顺序号,但较少使用:消息还可带有条·谁使用系统的主要功能主要使用者).·谁需要系统支持他们的日常工作。·谁来维护,管理,使系统正常工作:辅助使用者).·系统需要操纵哪些硬件。·系统需要何种输入输出:输入从何处来:输出到何处!传递,而不考虑通信的细节一·系统需要与其它哪些系统交互.包括其它计算机系统和其它应用程序,·对系统产生的结果感兴趣的人或事物.
2.获取用例·执行者要求系统提供哪些功能“执行者需要做什么)。·执行者需要读、产生、删除、修改或存储的信息有哪些类型,怎样把这些事件表示成用例中的功能-·必须提醒执行者注意的系统事件有哪些,或者执行者必须提醒系统的事件有哪些.·为了完整地描述用例,还需要知道执行者的某些典型功能能香被系统自动实现!还有一些不针对具体执行者的问题(即针对整个系统的问题);XML高级应用需要注意,最后两个问题并不是指没有执行者也可以有用例,只是获取用例时尚不知道执行者是什么,一个用例必须至少与一个执行者关联,还需要注意:不同的设计者对用例的利用程度也不同.例如、Ivar Jacobson说, 对一个十来人的项目, 他需要二十个用例.而在个相同规模的项目中:Martin Fowler则用了百多个用例、我们认为:任何合适的用例都可使用,确定用例的过程是对获取的用例进行提炼和归纳的过程,对一个十来人的项目来说,二十个用例似乎太少,一百多个用例则嫌太多,需要保持三者间的相对均衡:在面向对象技术中.对象间的交互是通过对象间消息的传递来完成的..在UML的四个动态模型中均用到消息这个概念。通常:当一个对象在调用另一个对象中时,即完成了一次消息传递,当操作执行后,控制便返回到调用者对象通过相互间的通信(消息传递)区同步消息(Synchronous Message) 表示嵌套的控制流, 操作的调用是一种典型的同区异步消息(Asynchronous Message) 表示异步控制流, 当调用者发出消息后不用等顺序图中的消息可以是信号(Sign a) , 操作调用或类似于C++中的RPC(Remote Proce