




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与技术专业论文毕业论文目:基于XML数据交换技术在分存式Web系统中的应用学生姓名: 学生学号: 系 别: 计算机与信息工程 专 业: 计算机科学与技术届别: 2008指导教师: TOC\o"1-5"\h\z目 录前言 (7)XML基础知识 (4)XML的优点 (9)XML的应用 (9)XML研究现状 (10)Web基础知识 (11)Web2.0 (11)Web的特点 (13)相关名词介绍 13)3XMLB据交换技术 (14)ADO控件技术 (14)HTTPXMIM象技术 (20)DB2XM体专换工具 (23)DBC2XM转换工具 (24).5ASP2XML组件 (24)nterAccess软件包 (24)MLServlet软件包 (26)DDXWe粉布式数据交换 (26)4XMLB据存取机制 (30)5基于XMLQ勺数据交换 (33)数据交换平台的结构设计 (34)整体功能设计 (34)系统体系结构 (34)\o"CurrentDocument"DataExg组件结构 (35)数据驱动的定义 (36)基于Web的分布式三层体系结构 (36)XM堆Web系统中的应用 (37)XMLW数据库 (37)XML与数据库技术 (37)XML与面向对象数据库 (38)XML在数据库中的存储模式 (39)XML在数据库中的应用模式 (40)支持XMLI勺数据库 (41)数据存储 (41)访问数据库 (42)XML在客户端的应用 (44)客户端与多个服务器之间的数据交换 (45)结束语 (46)致谢: (46)参考文献 (46)基于XM数据交换技术在分布式We原统用中应学生:刘鹏指导教师:程庆淮南师范学院计算机与信息工程系摘要:在当今 Internet上, 到处都有可扩展置标语言XML的身影。 XML因为自身的诸多特点,使其成为 Internet网上发布与数据交换的一门新兴技术,并有望在跨平台跨地域异构应用间的协同工作、基于语义的智能数据搜索等领域发挥重要作用。近年来,基于 XML的数据交换与存取技术成为数据交换和存取领域的一项重要课题, 并引起广泛关注。本文主要介绍了基于 XML的数据交换技术和分布式 Web系统的体系结构 ,讨论了基于XML的数据交换在分布式 Web系统中的应用,最后对XML数据存取技术的发展趋势进行了展望并用实例说明了具体实现方法。Abstract:Intoday'sInternet,everywherecanbeextendedMarkupLanguageXML'sshadow.XMLbecauseofitsmanyfeatures,makingitawebpublishingandInternetdataexchangeofanemergingtechnology,isexpectedtocross-platformandcross-boundarybetweenheterogeneousapplicationsworktogether,basedonthesemanticintelligentdatasearch,andotherfieldsplayanimportantrole.Inrecentyears,XML-baseddataexchangeandaccesstotechnologyasdataexchangeandaccesstoanimportanttopicareasandcausedwidespreadconcern.ThispaperdescribestheXML-baseddataexchangetechnologyanddistributedWebsystemarchitecture,discussedtheXML-baseddataexchangeindistributedWebsystemoftheendoftheXMLdataaccesstechnologytrendsinthedevelopmentoftheprospectandexampleNotethespecificmethod.关键词:XML;特性;应用; DOM;分布式Web系统;JavaServlet技术;数据交换与存取;Keywords:xml;characteristic;apply;dom;distributetypewebsystem;thetechniqueofjavaservlet;thedataexchangesandaccesses;前言可扩展置标语言XML(ExtensibleMarkupLanguage)是一门新兴的面向Internet应用的置标语言, 它是由 W3(CWordWideWebConsortium)组织于1998年2月制定的一种通用语言规范。XM是SGML标准通用置标语言)的一个子集,严格的讲XM也还是SGML具最大的优点在于适合在网上发布与数据交换。另外,作为对SGML言标准的一种改良,XML凭借其良好的扩展性和自描述性、 形式与内容分离、 遵循严格的语法要求以及对多语种的支持等特点,给跨平台跨地域异构应用间的协同作、基于语义的智能数据搜索等重要领域带来重大突破。从整体上讲,XML1义了应用间所传递数据的结构,而且这种结构的描述不是基于二进制的、 只能由程序去判读的代码, 而是一种简单的、能够用任何编辑器读取得文本。 利用这种机制, 程序员可以制定底层数据交换的规范, 然后在此基础上开发整个系统的各个模块, 而各模块之间传输的数据将是规范的符合既定规则的数据。 另外,XML还允许为特定的应用制定特殊的数据格式, 使其非常适合于在服务器与服务器之间传送结构化数据。近年来,Web应用程序非常流行 ,它能适应多用户、多数据库且非安全的网络环境 ,具有良好的灵活性和可扩展性等优点 ,但是随之而来它也有一些弱点:1、系统的分布式特点大大增加了系统的复杂度;2、应用程序不灵活一一Web应用程序常常是针对特定的客户端编写的,客户端需求的改变使你必须重写服务器端程序或创建极其类似的新服务;3、新的应用程序常常重复大量现有的代码 ;(4)向自动化 Web任务转移时却发现HTML很难保存数据的含义。XML(ExtensibleMarkupLanguage-―扩展标识语言)是一种非常适于应用程序之间数据交换的格式,特别是松耦合的应用程序,如分布式Web系统。作为一种通信协议,HTTP具有跨平台性。对于应用程序数据来说,XML具有同等的功效。XML可以促进应用程序代码的重用,提高应用程序在面对需求和程序变化时的适应能力。1XML基础知识在XML语言之前,已经有一种用来描述数据的标记语言—SGML(StandardGeneralizedMarkupLanguage,标准化基本标识语言)。它能够对各种各样的类型的数据进行描述。 SGM在Internet出现以前就已经有了。随着Internet的出现,人们开始把SGMLB运用转移到Webt来。但是SGM是一个十分庞大复杂的语言格式,用这种格式描述的数据不利于在网上传输。XM是SGM的简化版,它略去了SGML中繁杂和不常用的内容,从而使得编程简化,易理解,易于在Web上的传输和交互。但是它仍然是SGMLXML文件也象其他的SGML文件一样可以被解释和验证其有效性。SGM的过于庞大和HTM的过于简单及不可扩展,使得XM担负起推动深入发展的重任。为了使XM易用,XM在继承SGM的精华,保留其原有的可扩展性的同时,对SGM进行了大规模的精简。正如几十万汉字中常用的不过只8000个,SGM进用部分只占20%XM抛弃了SGML部常用的部分,使它一下就精简了80%XM设计中考虑了它的易用性。易用性来自两个方面:一方面用户编写WelM面方便,另一方面设计人员实现XM浏览器也不太难。总之,XM使用一个简单而灵活的标准格式,为基于Web勺应用提供了一个描述数据和交换数据的有效手段。HTM描述了显示全球数据的通用方法,而XM幌供了直接处理全球数据的通用方法。另一方面,XM的出现并不意味这HTM语言的消亡,更不能简单的把XMLS解为新一版本的HTMLXM是有一系列规范组成的,它主要包括XMLXSL(ExtensibleStylesheetLanguage)、XLINKSXPOINTE职及DTD(^档类型定义)。其中DTD是用来描述XML文件的语法格式的。符合某一DT唬义的语法格式的XML文件才被称为是有效的。目前,用来定义DTD的语言有好几种,比较通用的是“XMLDTD和"XMLSchema。"XMLDTD是从SGML遗留过来的,具有自己的独特的一套书写格式。“XMLSchema对它进行了扩充,能够对数据的类型进行描述。同时,“XMLSchema没有另外采用一种语法格式,而是遵循了XML的语法格式,增加了它的可接受程度。对于数据交换来说 ,最重要的是进行数据交换的双方要对数据的格式达成统一的认识。只有采用统一的数据格式 ,才能实现数据的自动流转、处理等功能。目前,各行业都在积极指定本行业的XML数据的规范。Microsoft设立了“BizTalk”站点,用户可以把自己制定的 XMLSchema提交到这一站点 ,或是下载其他人已制定好的 Schema。1.1XML的优点XM之所以流行,是因为XM原身有许多的优点,其中最重要的就是XM简便的数据交换和处理。1、自描述性基于XML的文档既有关于文档的内容描述,又有关于文档内容间互相关系的描述。HTMIR是一种表现技术,HTM肝不揭示HTM标签所标记的信息的任何具体含义,而XM则将数据和显示分开。2、数据交换简便性早期在程序间可以很容易的交换数据, 因为数据都是以文本的格式保存。然而今天的在程序间交换数据, 必须要有转换程序或者转换模块来转换数据格式。事实上,及今日的一些私有数据格式已经相当复杂,一致一个复杂的应用程序常常无法从该程序的早期版本中读出数据。在XMLK数据和标记均以可配置的文本格式保存。 可以用XM编辑器编写XML:档,但一旦某些地方有错误,完全可以直接修改检查和修改文档,因为所有都是文本格式的。 数据没有采用任何一种申请了专利或者版权的格式编码,因此也更容易使用。3、定制标记语言性XMLP仅允许使用者创建自己的标记语言, 而且,可以通过XM扩展它。当别人基于XM创建了语言,我们可以很容易的添加使用这个扩展。4、结构化和综合性数据结构XML勺另一个功能强大之处在于,使用者逼近可以指定数据,还可以数据的结构, 并可以将不同元素组合成其他元素。 这一点对于处理重要的复杂数据极为重要。5、XML勺跨平台性HTM在设计时将Wet^U览器视为唯一的一种应用平台,由于HTM是在Web^术发展的早期制定的,那时候能够用于Web勺技术很少,一次就将HTM的功能限制的比较死,但是现在的Java技术明显的需要一种比目前的HTM更强大的页面标记功能才能更好的发挥它的作用。 如果把HTML作为一种数据标准,基于Web勺应用将过多地依赖于服务器上的CG描述来处理We版面中的数据。这种数据处理方式会大大加重Internet网络的负载,因此用户受 Internet的带宽和实际通信流量的影响很大。 而XML由于是SGML子集,与生俱来地具有跨平台的特性,因此也正如我们所看到的,XML勺出现带动了Java发展的新一轮高潮。1.2XML的应用XML勺应用已经非常广泛,在微软的Netscape的产品内部都是用了10XML在Perl这样的编程语言中也内嵌了XM皮持。不过应当注意,XML应用是指XM在某个特定领域的应用,而不是指使用XM的应用程序。设计置标语言作为元置标语言,XM为用户提供了定义本行业领域的置标语言的最好工具。例如化学领域的化学标记语言(CML、数学领域的数学标记语言(MathML—)、通信领域的WM等。文件保值XMIM有良好的保值性和自我描述性使它成为保存历史档案,如政府文件、公文、科学研究报告等的最佳选择。数据交换数据交换无疑是XM最令人激动的应用。从商业角度看这也是XML最大的贡献了。 数据交换的核心问题是信息的标准化, 主要解决信息的可理解性问题,而且,更重要的是极其对于信息的识别,并能根据数据进行自动的处理。XM的出现,为信息的标准化提供了有力的工具。4、Wb应用集成不同数据源XML文档可以用来描述包含在不同应用的数据,从We版面到数据库记录等,We蜕用的中间层服务程序将使用这些XMLI示的数据组合起来,然后提交给客户端或者下一步的应用。本地计算XML数据传输到客户端以后,客户端可以利用XM分析器对数据进行解析和操作,在完成系统所需功能同时,合理分配客户端和服务器的符合。数据的多种显示XML将内容与表现分离,XMIR描述数据的结构和语义,显示外观则通过样式单文件(CS或XSD进行描述。因此只需在显示时配置不同的样式单,几、即可实现多种显示效果。1.3XML研究现状XML与面向对象技术相结合。面向对象技术是以 OSI为基础的 ,它采用复杂的编码方法存储数据 ,而XML使用可读的ASCII编程方法。这样XML的ASCII对象编码与现有的对象方法的结合将使XML成为供软件开发商选择的首屈一指的语言。XML与Java技术的结合Java由于众所周知的简单、跨平台、安全性和便于网络传输等优点,加上即时编译引擎以及其它改进使其运行速度显著提高 ,并成为网11络应用软件开发的首选。Java和XML技术的结合促进了新一代Web应用的诞生,比如电子商务和企业应用程序的集成。XML与数据库技术的结合XM文档分为以数据为中心和以文档为中心两类。 以数据为中心的XML文档被用来进行数据转换,它们的物理结构往往不重要,只作为实体的属性值。 要存储和检索此类文档只需要用关系型或面向对象数据库来存储数据,同时需要某些数据转换软件,甚至可能还需要Web发布能力。在以数据为中心的应用中,使用中间件在数据库和XML文档之间来转换数据。异构系统之间的互连由于企业之间、部门之间使用的操作系统平台和数据库的不同 ,导致共享信息流通的困难。 异构系统之间交换数据的办法是采用一种业界统一的信息交换格式。信息检索XML标记很明确地表达了它的涵义,搜索引擎就可以根据关键词和内容之间的依存关系进行准确定位 ,从而能根据搜索者所提供的关键词很清楚地知道搜索者表达的语义而返回正确的结果。Web自动化随着web上的内容及应用快速增加,实现Web交互操作自动化已经非常必要。通过HTML形式来进行用户交互操作,则往往由于服务提供者改变了网站布局 ,向表单中增加了新的内容或改变了 URL,使得自动浏览软件出错,而更改它们需要花费大量的时间。 而XML则可以解决以上问题。(7)多数据源数据的集成为了方便用户使用多种数据源 ,使多数据源交换数据变得简单 ,利用XML在用户和多数据源之间建立一个中间层,让用户用统一的方式使用来自不同数据源的各种各样的数据 ,可屏蔽各数据源结构、运行环境上的差异。2Web基础知识Web2.0Web2.0是相对Webl.M新的一类互联网应用的统称。由Web1.弹纯通过网络浏览器浏览 html网页模式向内容更丰富、 联系性更强、 工具性更强的Web2.(E联网模式的发展已经成为互联网新的发展趋势。Web1.0勺主要特点在于用户通过浏览器获取信息, Web20U更注重用户12的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者。Web1.01UWeb2.M转变,具体的说,从模式上是单纯的“读”向“写”、“共同建设”发展。所以互联网下一步,是要让所有的人都忙起来,用全民力量共同织出贴近生活的网。到目前为止,对于 Web2.0概念的说明,通常采用Web2.Qft型应用案例介绍,加上对部分Web2.0相关技术的解释。这些Web2.豉术主要包才博客(BLOG、RSS百科全书(Wiki)、威客、网摘、社会网络(SNS、P2P、即时信息(IM)等。“Web2.0”的概念开始于一个会议中,展开于O'Reilly公司和MediaLive国际公司之间的头脑风暴部分。所谓互联网先驱和 O'Reilly公司副总裁的戴尔•多尔蒂(DaleDougherty)注意到,同所谓的“崩溃”迥然不同,互联网比其他任何时候都更重要, 令人激动的新应用程序和网站正在以令人惊讶的规律性涌现出来。 更重要的是, 那些幸免于当初网络泡沫的公司, 看起来有一些共同之处。 那么会不会是互联网公司那场泡沫的破灭标志了互联网的一种转折,以至于呼吁“ Web2.0”的行动有了意义?我们都认同这种观点, Web2.0会议由此诞生。在那个会议之后的一年半的时间里,“ Web2.0”一词已经深入人心,从Google上可以搜索到950万以上的链接。但是,至今关于Web2.0的含义仍存在极大的分歧,一些人将 Web2.0贬低为毫无疑义的一个行销炒作口号,而其他一些人则将之理解为一种新的传统理念。 互联网作为平台正如许多重要的理念一样, Web2.0没有一个明确的界限,而是一个重力核心。不妨将 Web2.0视作一组原则和实践,由此来把距离核心或远或近的网站组成为一个类似太阳系的网络系统, 这些网站或多或少地体现着 Web2.0的原则。我们强调 Web2.0的一些主要特性,认为是 Web2.0公司核心竞争力的一些方面,可以看待如下:服务,而不是打包的软件,具有高成本效益的可伸缩性。控制独特的、难以再造的数据源,并且用户越多内容越丰富。把用户作为共同开发者来信任。利用集体智慧。通过客户的自服务来发挥长尾的力量。软件超越单一设备。轻量型用户界面、开发模式、和商业模式。今后一个公司要宣称是“ Web2.0”,就要将其特性同上述列表相测试。越符合就越名副其实。不过要记住,在某一个领域的卓越表现,可13能会比对七大原则中的每个都浅尝则止,要更为有效。.2Web的特点1、Webfb图形化的和易于导航的(navigate)Web非常流行的一个很重要的原因就在于它可以在一页上同时显示色彩丰富的图形和文本的性能。在Web之前Internet上的信息只有文本形式。WetS1以提供将图形、音频、视频信息集合于一体的特性。同时,WebM非常易于导航的,只需要从一个连接跳到另一个连接,就可以在各页各站点之间进行浏览了。2、WebW平台无关无论你的系统平台是什么,你都可以通过 Internet访问WWWU览WW对你的系统平台没有彳f么限制。无论从 Windows平台、UNIX平台、Macintosh还是别的什么平台我们都可以访问WWWtWWWJ访问是通过一种叫做浏览器( browser)的软件实现的。如 Netscape的Navigator、NCSA勺Mosaic、Microsoft的Explorer等。3、Web^分布式的大量的图形、音频和视频信息会占用相当大的磁盘空间,我们甚至无法预知信息的多少。对于WebS有必要把所有信息都放在一起,信息可以放在不同的站点上。只需要在浏览器中指明这个站点就可以了。使在物理上并不一定在一个站点的信息在逻辑上一体化, 从用户来看这些信息是一体的。5、Web是动态的最后,由于各We2占点的信息包含站点本身的信息,信息的提供者可以经常对站上的信息进行更新。 如某个协议的发展状况, 公司的广告等等。一般各信息站点都尽量保证信息的时间性。所以Webi占点上的信息是动态的。经常更新的。这一点是由信息的提供者保证的。 Web§ft态的特性还表现在We隰交互互的。WebW交互性首先表现在它的超连接上,用户的浏览顺序和所到站点完全由他自己决定。另外通过 FORM勺形式可以从服务器方获得动态的信息。用户通过填写FORM1以向服务器提交请求,服务器可以根据用户的请求返回相应信息。2.3相关名词介绍1、超文本( hypertext)一种全局性的信息结构,它将文档中的不同部分通过关键字建立链接,使信息得以用交互方式搜索。它是超级文本的简称。2、超媒体( hypermedia)14超媒体是超文本 (hypertext)和多媒体在信息浏览环境下的结合。它是超级媒体的简称。 用户不仅能从一个文本跳到另一个文本, 而且可以激活一段声音,显示一个图形,甚至可以播放一段动画。Internet采用超文本和超媒体的信息组织方式,将信息的链接扩展到整个Internet上。Wet^ft是一种超文本信息系统,WebW一个主要的概念就是超文本连接,它使得文本不再象一本书一样是固定的线性的。而是可以从一个位置跳到另外的位置。 你可以从中获取更多的信息。可以转到别的主题上。 想要了解某一个主题的内容只要在这个主题上点一下,就可以跳转到包含这一主题的文档上。 正是这种多连接性我们才把它称为 Web。3XML数据交换技术到目前为止,已有大量关于XML勺数据交换技术和应用面世。其中,有的只是在现有技术的基础上扩展XM皮持,有的属于XML中间件产品,还有的是比较完整的XMLJS用。它们大多数都提供了对数据库的支持,这恰恰从一个侧面反映出XMLW数据库的密切关系以及基于XML>据库应用的潜力。不同的编程语言和脚本语言需要不同的 SQLAPI和XMILS法分析器组合。例如,对于一个C+福序员来说,编写一套访问数据库的XMUS用程序可能需要利用ODB(J口C++XML语法分析器;而对于一个Java程序员来说,可能只需要JDB5口JavaXML®法分析器就够了;更为特殊地,如果你对微软的 VisualBasic和VBScript脚本语言比较熟,那么很有可能你会用它们来开发XMUS用,此时,你只要再学习一下ADO然后借助微软的XML®法分析器进行编程。下面我们就对各种XMLB据交换技术及其应用进行一些分析,首先要讲解的是大名鼎鼎的ADO空件技术。ADO空件技术说到ADCM不得不先提一下ASPASP(ActiveServerPages)是一种在服务器端解释执行的脚本技术,主要用于基于WebS用,如动态网页的WeWU览等等。它是由微软公司开发的,最早出现于IIS3.0。ASPS过在HTMIM面中嵌入脚本语句,并结合ActiveX控件技术(如ADOCDON尊),从而建立页面丰富、动态、交互而且高效的 WEB艮务器应用程序。ASP支持的脚本语言有两种,即VBScript和Jscript,缺省为VBScript.ASP的工作原理是:当客户端浏览器访问Web服务器ASP文件时,服务器根据被访问文件的扩展名(.asp)识别出其类型从而
15启动该ASPS析器,首先服务器会遍历文件的全文,当遇到嵌入的服务器端脚本语句时就执行相应脚本(可以是启动计数或者查询数据库等等)并将返回结果按指定方式送回原处,脚本处理完毕后将生成的HTML页面文档返回至客户端,整个过程结束。虽然ASP并不是专门为XML量身定做的,但由于XML勺可扩展性以及ASP自身的结构特性,使其又可以同XMLffi结合,从而实现利用ASP技术进行XMLB据交换。下面我们将用一个具体示例,演示如何利用ASP注彳fXMLB据交换。在本例中,运用了ADO空件来访问关系数据库并输出XML文档,另外还采用了DO防口XSL技术,实现了XML寸象的访问和XML±档输出的样式化。我们仍用反复提及的一个例子一一“客户联系信息”。这次我们是把数据放置于关系数据库中,然后运用AS可口ADOK术动态生成XML实例文档。假设我们事先已在MicrosoftSQLServer数据库CLINETS中创建了一个数据表--clientList,其数据结构如下表3.1所示:表3.1字段名NameIDCompanyEmail释意姓名ID公司EMAIL类型varchar(10)■int字段名NameIDCompanyEmail释意姓名ID公司EMAIL类型varchar(10)■intvarchar(20)varchar(20)是否为空NOTNULLNOTNULLNOTNULLNOTNULL假设现在数据库中已经存了记录如表3.2所示:表3.2NameIDCompanyEmail16张三1A公司zhang@李四2B公司Li@下面开始编程实现。首先是要创建一个数据源,数据源(ODBCSource)实际上是定义数据来源,也就是说用来告诉程序数据的出处。有一点需要注意,数据源的创建要在服务器端进行, 因为ASP^身就是在服务器端运行的。其实要做的很简单:打开控制面板,鼠标双击"ODBC数据源",添加数据源,选择"SQLServe产,分别配置服务器名(CLIENTS所在服务器)、数据库名(CLIENTS、数据源名称(此处定为clientList)、用户名(sa)、用户口令(空),数据源就配置好了。下面来编写相应的代码,代码将通过调用XMLDOMft态生成XML吉构,然后借助ADO方问数据库动态填充XML内容。<%@language="VBScript"%><%Response.ContentType="text/xml"%><?xmlversion="1.0"encoding="GB2312”?><%动态构建XM戊档setxmlDoc=Server.CreateObject(Microsoft。XMLDOM)setroot=xmlDoc.createNode("element"," 联系人列表","")xmlDoc.appendChild(root)'查询数据库sqlStr="select*fromclientList"setCconn=Server.CreateObject("ADODB.Connection")Cconn.Open"CLIENTS","sa",""setrsData=Cconn.Execute(sqlStr)rsData.MoveFirst()while(notrsData.EOF)'构建联系人子节点settmpNode=xmlDoc.createNode("element","联系人","")xmlDoc.documentElement.appendChild(tmpNode)'构建姓名、ID、公司、Email子节点forI=0torsData.Fields.Count —1setchildNode=xmlDoc.createNode("element",rsData.Fields(i).Name,"")childNode.text=rsData.Fields(i)17tmpNode.appendChild(childNode)nextrsData.MoveNext()wendResponse.Write(xmlDoc.xml)%>运行该ASP将生成下面的XML±档。<?xmlversion="1.0"encoding="GB2312"standalone="no"?><联系人列表 ><联系人><姓名 >张三 </姓名><ID>1</ID><公司>怂司</公司><EMAIL>zhang@</EMAIL></联系人><联系人><姓名 >李四 </姓名><ID>2</ID><公司>必司</公司><EMAIL>li@</EMAIL></联系人></联系人列表 >通过调用XMLDO砌态生成XML±档似乎有些繁琐,下面再看一段代码,这段代码是根据前面所描述的DTD(Schema规则来生成最终的XML实例文档,也即,最终文档的结构是由程序代码来控制的。<%Response.ContentType="text/xml"%><?xmlversion="1.0"encoding="GB2312"?><联系人列表 ><%SetCconn=Server.CreateObject("ADODB.Connection")Cconn.Open"CLIENTS","sa",""SetrsData=Cconn.Execute("select*fromclientList")dowhilenotrsData.Eof%><联系人 ><姓名><%=rsData("Name")%><触名><ID><%=rsData("ID")%></ID>18<公司><%=rsData("Company")%></公司><Email><%=rsData("Email")%></Email>/联系人>%rsData.MoveNextLooprsData.CloseSetrsData=nothing%>/联系人列表 >运行该ASP将直接在浏览器显示XM坟档,内容同前面得到的结果相同。在上面的示例中,我们看到的是如何通过自定义文档结构生成 XML实例文档。显然,这种方案存在一个前提,那就是,开发者必须了解文档结构,并且通过编程严格控制输出文档的格式。 但细心的读者可能会产生疑问: 既然数据已经存储在数据库中, 又何必大费周折重新定义一遍文档结构呢?XM的自描述性何在?为了解决这个问题, 微软将其ADO技术进行了扩展以提供对XM的更大支持,结果是可以根据数据库表的内在结构直接输出XML:档,文档的格式将符合默认的DTD1义。下面是一个用VisualBasic6.0编写的实例:声明连接和结果集DimCconnAsADODB。ConnectionDimrsDataAsADODB.RecordsetPrivateSubForm_Load()’连接数据库DimqueryAsStringSetCconn=NewADODB.ConnectionCconn.ConnectionString="DSN=nwind;UID=sa;PWD=;"Cconn.Open’执行数据库查询query="Select*FROMclientList"SetrsData=cConn.Execute(query)’将数据库返回结果集保存至文件OnErrorResumeNextKill("recordset.xml")rsData.Save"output.xml",adPersistXMLEndSub
19下面给出的是该程序执行后生成的 XMQ档一output.xml。通过分析,可以发现,它实际上是一个内嵌 XMLSchema勺XML实例文档。该实例文档的主元素是 <rs:data>,命名空间 rs由xmlns:rs=’urn:schemas-microsoft-com:rowset’定义;数据库查询返回的每一条记录都作为 <rs:data>的一个子元素,用 <z:row>表示。<z:row>子元素实际上是空元素,信息均以属性的方式体现,属性来自于返回的数据库字段。内嵌的Schema^分<s:Schemaid='RowsetSchema>定义了元素<row>的组织结构和规贝U。<xmlxmlns:s=’uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C1488’2xmlns:dt=’uuid:C2F41010-65B3-11d1-A29F-00AA00C14882xmlns:rs=’urn:schemas-microsoft-com:rowsetxmlns:z=’#RowsetSchem’a><s:Schemaid=’RowsetSchem’>arow’content=’eltOnlyrow’content=’eltOnly’>’Name’/>’ID’/>’Compan’y/>’Email’/>rs:rowbase’/>Name’rs:number=’1’rs:write=’true’>’string’ID’rs:number=’2’true’>int’/>Compan’yrs:number=’3’true’>’string’<s:datatypedt:typedt:maxLength=’10’/></s:AttributeType><s:AttributeTypename=’rs:nullable=’true’rs:write=<s:datatypedt:type=’</s:AttributeType><s:AttributeTypename=’rs:nullable=’true’rs:write=<s:datatypedt:type=dt:maxLength=’20’/>20</s:AttributeType><s:AttributeTypename=’Email’rs:number=’4’rs:nullable=’true’rs:write=’true’><s:datatypedt:type=’string’dt:maxLength=’20’/></s:AttributeType></s:Schema><rs:data><z:rowName='张三'ID='1'Company-除司'Email=’zhang@’/><z:rowName-'李四'ID='2'Company-必司'Email-’li@’/></rs:data></xml>ADOI供了文档保存功能,通过它,ASP可以将数据库返回结果集保存至XML文件,这些XML±件经由XSL样式化后可以在浏览器直接显示,也可以传输至其他应用系统供再次利用。另外,值得一提的是,微软在其ADO2.5和IIS5.0中又增加了更高级的支持,即,可以将数据库返回的结果直接转换为XM年浏览器中显示,而不必先保存至文件。下面的实例片段有力地说明了这一点:<%SetrsData-Server.CreateObject("ADODB.Recordset")Response.ContentType-"text/xml"rsData.Open"select*fromclientList","FileName-"&Server.MapPath("ado.udl")rsData.SaveResponse,adPersistXMLrsData.CloseSetcConn-nothing%>3.2 HTTPXML象技术尽管XMLSE多数情况下可以很好地描述数据, 但是开发者有时却不得不使用 CGI来进行浏览器和服务器之间的数据交换。 这是,问题就出现了。从信息交换的角度来讲, 虽然CGI是完全能够满足要求的, 但是,当CGI同XML一起使用时就会掩盖XML自身的一些优点,从而使得XML在信息交换方面的优势无处找寻。21不过,微软对此已有自己的解决方案, 它提供了一种更加有效的方法来传输XML--XMLHTTPXMLHTTP微软的又一项基于XML勺数据交换技术,主要用于在服务器与客户端交换XMLB据。该技术源于微软在其XMLDO—现中引入的一个重要对象——XMLHttpRequest(Microsoft.XMLHTTP),它可以为客户端提供同HTTP服务器通讯的协议支持。简而言之,它允许你打开一个到服务器上的HTTP!接,然后发送和接受数据,并且利用 MicrosoftXMLDOM对返回数据进行解析。使用XMLHTT对象通常是进行XMLB据交换,但也并不局限于此,其他格式的数据也是允许白另外,通过同XSL相结合,XMLHTT假供了一种便捷方式发送结构化查询字串到服务器, 然后将返回结果在客户端以多种方式显示。这种交换类型的标准模式是客户端发送一个XMLM式的文本字符串到服务器,然后服务器将这个字符串装载入一个 XMLDOM寸象中并进行解析,然后返回一段HTML给客户端,或者是另外一段XML代码给客户端让客户端的浏览器自己解释。 在这种方式下, 对于信息的传递是非常有效的,尤其是当使用DHTM进行页面的动态显示时。下面的一个例子描述了XMLHTT的上述功能。假定我们在服务器端已有一个XML实例文档client.xml。<?xmlversion="1.0"encoding="GB2312"standalone="no"?><联系人列表 ><联系人 ><姓名 >张三 </姓名><ID>1</ID><公司>怂司</公司><EMAIL>zhang@</EMAIL></联系人><联系人><姓名 >李四 </姓名><ID>2</ID><公司>必司</公司><EMAIL>li@</EMAIL></联系人></联系人列表 >下面的代码片段描述的是客户端发出请求界面, 首先需要输入待查联系人的姓名和公司,点击 "查询"按钮后,程序执行查询函数。该函数首先创建一个XMLHTT—象——xmlHTTP和一个XMLDOMt象一client,22前者用于向服务器发送XM数据(xmlHTTP.send(template.XMLDocument))和接收XM擞据(xmlHTTP.responseXML.xml)<scriptlanguage="JavaScript">functionQueryClient(){varxmlHTTP=newActiveXObject("Microsoft.XMLHTTP");varclient=template.XMLDocument.documentElement;xmlHTTP.Open("POST","http://localhost/Query.asp",false);client.childNodes.item(0).text=cliName.value;client.childNodes.item(1).text=cliCompany.value;xmlHTTP.send(template.XMLDocument);alert(xmlHTTP.responseXML.xml);}</script>请输入待查联系人姓名 :<inputtype="text"name="cliName">请输入待查联系人公司 :<inputtype="text"name="cliCompany"><inputtype="Button"value="查询"onclick="QueryClient()">下面的代码片段 (Query.asp)描述的则是服务器端的处理流程,首先创建两个XMLDOMf象,一个对应于XM戊件client.xml(xmlClient.load(Server.MapPath("client.xml"))),另一个对应于是客户端传送的XMLB据(queryClient.load(Request))。然后程序根据传送的XM嗷据卞^建XSL查询参数并进行节点定位,如果匹配成功,返回客户端查询到的XMLB据;否则返回"<result>查无此人!</result>"的XMLB据。Response.contentType="text/xml"setqueryClient=Server.CreateObject("Microsoft.XMLDOM")setxmlClient=Server.CreateObject("Microsoft.XMLDOM")queryClient.async=falsequeryClient.load(Request)xmlClient.async=falsexmlClient.load(Server.MapPath("client.xml"))setxmlRoot=xmlClient.documentElementsetqueryRoot=queryClient.documentElement23queryStr="/联系人[姓名="&queryRoot.childNodes.item(0).text&"and公司="&queryRoot.childNode.item(1).text&"]"setresultClient=xmlRoot.selectSingleNode(queryStr)ifisNull(resultClient)=falsethenResponse.write(resultClient.xml)elseResponse.write("<result>查无此人 !</result>")endif3.3 DB2XML专换工具DB2XM是一种将数据从关系数据库转换成XML±档的工具,它提供了一组Java类,是由100%屯Java编写的。DB2XMLT以完成下面三种功能:(1)将数据库查询结果或整个数据库转换成 XM戊档或者HTMLC档(利用 XSLT);提供数据的属性描述;(3)支持同XSLT样式单处理器的方便集成。DB2XMLT以作为一种工具通过图形界面或以命令行方式单独使用;也可以作为servlet来使用,在这种方式下,它可以动态输出XM戊档;另外,DB2XM还可以以API的方式调用,这对程序员来说尤其具有吸引力。从根本上看,DB2XM是一种样式驱动的应用,其输出的 XMLJC档实际上是一组表格,而具体内容取决于用户输入的SELEC喻令语句。另外,还可以为该XML文档指定标记名称以及是否包含数据库元数据。DB2XM生成的XM戊档是通过两种结构方式来表达的,一种是标准的W3CDO时象,另一种是利用DB2XM峙定的数据结构。但是,不论采用哪种方式,都能够通过数据流或单字节数组进行访问。DB2XM是通过JDBC寸数据库进行存取访问的,其应用开发需要JDK1.1x以及提供JDBCS区动支持的数据库(如Oracle、MicrosoftAccess、MicrosoftSQLServer、InstantDB、MySQL。在DB2XM的开发中,一个重要的类是JDBCXML下面给出一个典型示例,是一个关于PermissionFrame的GUI应用:try{jx=newJDBCXML(map);jx.generateXML();XMLOutputout=newXMLOutput(DB2XML。this,map,jx.getXMLDocument());24if(map.getBooleanProperty("applyStylesheet"))jx.getXSLParser(out).applyStylesheet();elseout.writeToOutput();jx.closeDatabase();}catch(DB2XMLExceptionex){DB2XML.this.handleDB2XMLException(ex);}finally{Jx.getXMLDocument().deleteTmpFiles();ODBC2XML换工具ODBC2XML由IntelligentSystemsResearch 开发的共享软件,它实际上是一个Windows动态库DLL,通过它,可以将数据从数据库中提取出来并转换成XML文档。该软件属于模板驱动,也就是说,将SELECT语句作为处理指令嵌入到模板中。 ODBC2XMIL使用时相当灵活,内嵌查询的返回结果可以直接作为元素或属性存在, 甚至可以再次作为其他查询的参数,从而产生嵌套的XML±档。ASP2XM组件ASP2XM是由Stonebroom开发的。它实际上是一个用来在XMLJC档和任意ODB成者OLE-D激据源之间双向传输数据的OLECOMM1。该产品是模型驱动的,并且将XM戊档模型化成一个单一的表对象。 当将数据从数据库传输成XMLM,用户制定一个单一的SELEC萨明,输出包含ASP2XML定义的标志。当将数据从XML#输给数据库时,XML文档中必须包含ASP2XMIW定义的标志,它们是该中间件处理时要用到的。这个组件可以在ASP脚本中使用,也可以当一个普通的组件使用。InterAccess软件包InterAccess是由XMLSoftwareCorporation开发的一套软件包。该软件包是一种以客户/服务器方式通过互联网访问ODBC/OLED敝据库的软件,客户端和服务器之间以XML>据格式双向交换数据,其独特之处在于采用TCP/IP而不是通常的HTTP作为数据传输协议。InterAccess是由三个模块组成的:InterAccess服务器软件、InterAccess客户端CO附态库、InterAccess浏览器。InterAccess服务器软件运行于服务器上,专门用于处理客户端请求:从数据库中检索数据生成XMLM式数据传送到客户端;或者接受客户端发送的XMLM式数据并存储于数据库中。由于XML±档中的数据25是以对象树的形式存在, 因此很方便地即可将数据保存至数据库表中或从数据库表中检索。在客户端,由一个COM寸象处理与服务器的通讯。开发者可以利用内置的API接口函数开发应用程序以检索非XMLM式的数据,也可以利用回调函数处理服务器方返回的XMLB据。InterAccess还提供了一个专用浏览器,通过它,用户可以察看数据库表的内容或者执行SQL®句,最终结果可以保存或者拷贝/粘贴至其他应用程序,如 MicrosoftExcel或Access。下面给出的例子展示了如何通过调用 InterAccess提供的COMS件开发基于XMLB数据库应用。该例子通过一个数据源连接、登陆远程主机,向数据库发出SQL查询命令,最后打印返回的数据集。从形式上看,同ADOK为相似。PrivateSubbtnCommand_Click()’定义出错处理OnErrorGoToError’定义变量DimcnnAsNewXMLDB.ConnectionDimstrSQLAsStringDimdsAsXMLDB.IDatasetDimcolAsXMLDB.IColumn’连接并登陆数据库Cnn.Connect".au",7777Cnn.Login"TRIAL","",""'执行SQL查询命令strSQL="SELECT*FROMclientListWHEREIDlike’B%’"cnn.ExecutestrSQL,E_CMD_TEXT,0,30Ifcnn.Reply.Result<>0ThenDisplayErrorscnn。ReplyExitSubEndIf’处理数据库返回结果Setds=cnn.Reply.DatasetWhileds.EOD<>TrueForEachcolInds.ColumnsDebug.Printcol.Value26NextDs.MoveNextWendExitSubError:MsgBoxErr.DescriptionEndSub’显示错误信息PrivateSubDisplayErrors(ReplyAsXMLDB.IReply)DimErrorAsXMLDB.IErrorForEachErrorInReply.ErrorsDebug.PrintError.DescriptionNextEndSubXMLServlet软件包XMLServlet是由CeriumComponentSoftwareIncorporated开发的一组商业软件,它可以通过JDBC访问关系数据库在应用系统和数据库之间进行基于XML的双向数据交换。下图展示了XMLServlet的体系结构。XMLServlet实际上是一种JavaServlet,它使用XML|旨令将XML模板、HTM膜板同数据库相结合,利用XMLServlet显示和更新数据库中的数据。 XMLServlet的开发模式沿袭了三层架构模式, 通过将XMLServlet放置于中间层的Webl艮务器,使得XMLE!勺应用开发相对独立于前端的用户界面(浏览器)和后端的数据库设计,进一步提高了开发效率。XMLServlet不是孤立的软件,与之相配套的还有两个工具软件:XMLOutline和XMLDBXMLOutline采用层次化大纲形式的文本编辑器,利用它可以创建DT于口XML文档。XMLDBI以动态地将DT济口XML文档相结合,进而产生用于将XML±档数据存储与数据库中所需的SQL语句,包括可能的主键和外键。WDDXWeb布式数据交换WDDX英文全称为WebDistributedDataExchange,译为中文则是Web^布式数据交换。WDDXb一种基于XML勺技术,有了它即使是再复杂的数据也都可以在WebS用程序间相互交换,进而构建所谓的"Web网络联盟"。所谓"WebW络联盟”是基于这样一种概念,也就是27说,它描述了一种业务运作方式和操作环境。在这种环境下,一个 Web站点团体的内容和商业资产可以被作为一种服务和数据提供给其他 Web站点,并允许这些站点同其他站点结盟。从这种意义上讲, WebW络联盟则是集成了内容和事务以产生更高整体价值的 We应占点网络。现在已经有一些典型的Web网络联盟,比如象A的加盟计划,Web诚意计划,以及后台支付处理(如Cybercash)。WDDX寸Web网络联盟的支持是通过在Web系统之间提供一种简单而又透明的粘合剂以传输数据来完成的。利用WDDX一个采用Perl构建的动态Web^f点可以非常方便地同基于其他平台的Web系统交换数据库数据甚至数据库事务和过程,而不论这种异构系统采用的是 ASP还是ColdFusion;反之亦然。Allaire发布WDDX目的是用来解决在WebS用间传输关键数据。需要特别指出的是,最初, SimeonSimeonov-Allaire的语言技术设计师创造了WDDX用以解决在ColdFusion中遇到的分布计算问题。后来,这项工作进一步发展,演变成为一种跨语言的框架结构,并且最终导致了WDDXSDKWDDX.org勺诞生。WDDXSDK由一位独立Webf发者--NateWeiss开发成功的,当然其成功是同 Allaire以及其他一些第三方的大力支持分不开的。讲到这里,也许你要问:WDDXb一种标准吗?它是否被W3CK者其他标准组织采纳?需要指出,WDD漏不是一种正式的标准,并且尚未提交给W3做其他标准组织。但这并不是说,WDDX有利用价值。相反,它具有相当光明的前景。第一,它是一种免费软件,可以被自由地使用和发布;第二,它是根据开放、基于标准的技术,如 XML1.0,来制定的;第三,WDDXE技术与智慧的结晶,对于分布式Web应用具有巨大的推动作用。那么,WDDXS竟有哪些具体的优点呢?、WDDXT以给WebFF发者带来好处。它解决了在不同Web应用环境(如JavaScript、ColdFusion、Perl、ASP/COMf口Java)之间交换数据中的关键问题,不同的应用可以通过WDDXT便地进行跨语言、跨系统、跨平台的复杂数据共享。开发者能够更加方便地构建系统用于在浏览器和服务器或者不同的应用服务器间交换数据, 集中精力处理应用规则和算法,而不必关心不同应用的语言环境。、WDDX!以使利用WebiS行通讯和电子商务的公司受益。WDDX&他们带来的首要好处在于能够产生新的商业和客户关系。比如说,WebT售商可以方便地将他们的产品通过其他站点发布到客户手中,然后再将他们产品的销售和市场运作转至那些更加易于直接同客户打28交道的We悌专售商网络。举例来说,某个大型厨具零售商希望利用WDDX将产品发布到其他站点, 另外一个站点可以通过他们的站点来提供原始零售商的产品 --厨具。不过,实际的商业交易还是在原始零售商的 Web站点来管理和运作的。 对于客户来说, 他们将从特定的商品供应和惬意的购物经历中获取满意的商品; 对于中间站点来讲, 他们可以通过提供自己并未直接供应的产品和服务来受益; 而零售商则可以通过利用网络联盟发布产品来接触更多的客户。 同样,类似的模型也可以适用于传统的供应链业务和企业对企业外部网, 因为在这些应用中, 企业也是需要将其销售、产品等信息发布到供货商或者合作伙伴。WDDX3两大部分组成,第一部分是根据XML1.0DTD规范制定的一种语言独立的数据描述,第二大部分是为那些使用 WDDX语言而制定的一组模块。熟悉Web应用的人都知道,目前We颁域几乎所有的标准的开发环境(如 ColdFusion,Perl,ASP,Java,JavaScript,PHP,etc)都包含内在数据结构,比如数组 (array)、纪录集(recordsets)和数据对(valuepairs)。WDD劝每一种语言提供了一个模块,可以自动地将这些内在数据结构加以序列化或者翻译成一种精炼的基于XML的描述;反之亦然。举个典型例子,利用 WDDX1序员可以在ColdFusion中获取一个复杂数组的值, 将其序列化成为 XML,然后将其发送给ASP服务器,最后再通过反序列化将XML专换成一个VBScript的数组对象,而原先的所有数据类型都被无损转换。这样一来,通过将所有的XML#理和交互过程转移至WDD模块中,开发者就不必再对XM戊档本身进行编程和处理, 从而使得这种语言之间的转换过程对于开发者相对更加透明。WDDX)开发需要借助WDDXSDKWDDXSDK一个软件开发包,它允许WebS用开发者使用WDDXF发分布式Web应用和WebW络联盟。WDDXSDK时也是一种自由软件,它在/网站发布。WDDX^不需要开发者事先了解如何使用XMLWDDX一个重要优点就是开发者可以在Web±任意交换结构化数据而不必直接编写XML从这个意义上讲,WDDXE一种"XML中间件",编程语言是将其作为一种在数据间交换的传送工具来使用。目前WDDXSDK含了一些模块,用以提供对多语言的支持。WDDXW也适用于非WebS用或Windows应用。将WDDX]COM目结合,开发者可以使用任何流行的Windows应用开发环境,包括VisualBasic、Delphi、PowerBuilder、C+拜口Java,进行分布式数据访问和数据存储。29在数据传输方面,WDDXT泛支持基于原文数据传输的协议,如HTTPSMTPPOPFTP等等。由于WDDX1:建立在XM济口HTTP勺核心之上,因此也就相应继承了Web^境的安全性模型。WDD数据包可以在具有SSL的HTTP±安全传送,并且由于WDD数据包仅仅是一些数据串,因此,开发者可以非常方便地利用加密技术对其进行加密和解密。开发者构建能够远程访问需要授权的WDD激据的分布式应用时,将需要利用Web服务器或应用服务器内在的验证机制以及面向用户的安全服务。一般来说,任何需要通过Web^J其他应用共享数据的应用都可以利用WDDXe构建。比较典型的应用是Web^络联盟和企业对企业内部网和外部网应用,因为在这些应用中企业都需要发布数据,如产品信息、供应链数据、客户数据、订单数据等等。由于 WDDXb语言独立并且是通过HTTPW送,因此开发者可以利用ColdFusion或者ASP构建应用,并且发布数据到支持WDDX)过程应用中,再由这些过程应用使用Perl,ColdFusion,ASP或者其他支持WDDX)语言来访问数据。这样一来,就消除了在使用不同语言环境的合作伙伴间共享数据所造成的开销和复杂度。除此之外,连接传统Windows桌面系统和Web系统的应用也可以利用WDDXJ构建,这对于那些涉及重要的、离线数据输入与收集的应用很有用。最后,我们将WDDX1其他相关技术作一个简单的比较。首先来看一下WDDXJ标准的XMLB据存取的区别。标准的XML>据存取利用DOMAPI访问和管理XML±档,而在DOMFF发模型中,开发者可以通过编程对任意的XMQ档结构进行存取。利用WDDX开发者不会直接操作XMLB据,而是借助特定的语言模块对从其他语言转换来的数据进行存取。通常情况下,基于DOM勺XMLB据存取同基于WDDX的数据交换具有不同的适用范畴。关于WDDX]Vignette的ICE的比较。ICE是一种由Vignette开发和赞助的技术,主要用于在Web上进行Web内容联盟。ICE是以事先预定好的并且互相信任的前提为基础, 在有内容交易的合作伙伴间构造起一种特定的应用用以共享内容。 ICE不适用于做为一种跨语言的通用协议,而WDD却身也不能像ICE那样做为一种结盟应用。但是,通过定制的Web应用却可以利用WDDX]其他WebS用共享数据,进而构建Web吉盟网络。我们再来看一下WDDXWebMethod的勺WIDL的比较。Webg口定义语言(WIDL)是WebMethod姗定的一种基于XMLK术,用于描述一种30同现有的文档(如HTM域XML文档)的编程接口。WID蚌身并不是一种在编程语言间交换数据的技术,相反, WDD却可以在编程语言间实时地交换数据,虽然不会从现有的Wetrt容中提取数据。下面是WDDXJXML-RPCI制的比较。RPC勺意思是远程过程调用,它是一种用于分布式对象系统如DCOMCORBA)机制,而XML-RPC1制,如DataChannel的WebBroker,致力于利用XM5口HTTPZ提供一个完全分布式的对象协议。介于二者之间,WDDXU是用于为Web^程语言提供一个简单的、轻型的数据交换机制。4 XM散据存取机制XML数据源多种多样,根据具体的应用,大概可分为下面三种:一种是XML纯文本文档,第二种是数据库,第三种则来源于其他各种带有一定格式的应用数据,如邮件、目录清单、商务报告等等。其中,第一种来源,即XML纯文本文档是最基本的也是最为简单的,将数据存储于文件中, 其最大的优点在于可以直接方便地读取, 或者加以样式信息在浏览器中显示,或者通过DOMgSAX接口编程同其他应用相连。第二种数据来源是对第一种来源的扩展,其目的是便于开发各种动态应用, 其优点则在于通过数据库系统对数据进行管理, 然后在利用服务器端语言(如 ASPJSPPHPJavaServlet等)进行动态存取。这种方式最适合于当前最为流行的基于三层结构的应用开发。 第三种数据由于来源广泛,微软为此提供了基于OLEDB的解决方案,使得各种桌面应用系统可以通过OLEDB直接导出XML>据文档。该文的分析主要针对前两种数据来源进行分析。图4.1是XMLB据存取机制示意图。31图4.1XML数据存取机制对于XML文档,可以通过DOM(即文档对象模型)读取XM戊档中的节点,这是最基本也是最底层的XM用取技术。DOM^W3c隹荐的一种技术标准,实际上是提供一组API来存取XMLB据。它可以通过JavaScript、JScript、VBScript、等脚本程序来调用,也可通过C++、Java等高级语言来调用。DOMfc开发基XMU的应用系统提供了便利。它通过一种随机访问机制,使得应用程序利用该接口可以在任何时候访问XML±档中的任何一部分数据,也可以对XM戊档中的数据进行插入、删除、修改、移动等操作。另外一种XML®程接口是SAX它是由著名的XML讨论组XML-DEVF发的。SAX提供了一种对XML文档进行顺序访问的模式,这是一种快速读写XML数据的方式。SAX接口是事件驱动的,当使用SAX分析器对XML文档进行分析时,就会触发一系列事件,并激活相应的事件处理函数,从而完成对XML文档的访问。另外,XML文档可以通过赋予一定的样式信息进而在Web^U览器中显示。这一工作可以由CS阴口XSL来完成。CS限术早在HTML3.2中就得以实现,其关键是将HTML中的元素同预先定义好和一组样式类相关联以达到样式化的目的,而XML同样也支持这种技术。同CSS有些类似,不同之处在于它是通过定义一组样式模板将XML源文档转换成32HTML文档或其它XML文档。XSL实际上也是符合XML规范的,它提供了一套完整的类似控制语言的元素和属性,可以进行文本置换、排序、根据内容决定显示方式等等,最终可完成丰富多彩的样式描述。其次,通过DSO(DataSourceObject)进行XML的数据绑定也可以方便地将XML节点同HTML标记捆绑,从XML文档中读取或写入数据,就对象访问 MicrosoftAccess或,SQLServer一样,最后将结果在 Web浏览器中显示。DSO勺工作方式有几种,一种是同DOM,类似,即通过对XML节点树进行遍历来搜索节点,每次仅将节点数据同HTML的一个元素(如SPA啦素)相关联;第二种方式同第一种的不同之处在于将节点数据同一个HTML多值元素(如TR元素)相关联。基于HTT的议通过在URL中嵌入SQL语句是关系型数据库存取技术上的一大进步, 也是微软新近提出的XML数据库解决方案的核心,其基本原理是通过基于HTTP协议的URL方式直接访问SQLServer数据库,并返回以XML或HTM嗷据格式的文档,最后加以样式化或直接在浏览器中输出。目前,大多数数据库厂商均提供了对这一XML数据存取机制的支持。对于面向对象数据库来说,这一过程是通过在URL中嵌入XQL/XPath语句来完成的,而这又进一步体现了面向对象技术在XML数据存取中的优势,因为此时数据是被视为对象并按层次结构进行操作的。另外,关系型数据库中的数据也可以通过编程来输出XML文档。同HTTP+SQIM制相比,虽然在实现上较为复杂,但它提供了一定的可操作性。对于一个C+福序员来说,编写一套访问数据库的XML应用程序可能需要利用ODBCC++XML®法分析器;而对于一个Java程序员来说,可能只需要JDB(J口JavaXML语法分析器就够了。利用ASFft页面文档中嵌入ADO寸象从数据库中提取XML数据是微软对其AS豉术的一种扩展,ADO取得数据后,可以调用DOM,提供的API来动态生成XML文档,并进而同其他应用交换数据,或者直接在浏览器中显示。对于基于XML的面向对象数据库来说,大多都提供一套相应的开发机制或开发包,帮助开发者创建各种不同的应用系统,例如一组基于Java或COM,组件的API作为对Client或Server端应用的扩展。然而,从现实的角
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福州2025年福建福州市中医院招聘9人笔试历年参考题库附带答案详解
- 2020年四级人力资源管理师考试《理论知识》真题及解析汇编
- 高级安保服务协议书(2篇)
- 三年级英语下册-U6 课件 Unit 6Phonics
- 2025年关于小班体育标准教案
- 影像学对感染病的早期发现与处理
- 2025年环境影响评价工程师考试真题汇编(环境影响评价案例分析解析)
- 2025年征信考试题库:征信行业发展趋势与信用风险管理实践案例研究方法试题
- 2025年危险化学品安全生产培训教材试题库
- 2025年成人高考《语文》逻辑思维训练题库及解析
- 水上抛石专项方案
- 你进步-我高兴
- 劳务派遣具体服务方案
- 数据生命周期管理详述
- 物理化学(下)智慧树知到课后章节答案2023年下陕西师范大学
- ISO27001信息安全管理体系-信息安全管理手册
- 班组标准化建设手册(模板)
- 羽毛球英语版介绍PPT
- 受处分处罚情况登记表
- 农药经营许可培训考试题库以及答案
- 预焊接工艺规程pWPS新编
评论
0/150
提交评论