主题:  xml在CF 中的应用(话题一)

s22

职务:版主
等级:4
金币:10.0
发贴:1634
#12003/6/7 16:12:45
大家一起来讨论吧。我把提纲列一下,大家自己查资料,然后这里汇总。不明白的地方也在这里讨论

一`xml基础知识

在IBM开发网站上有个ESAY的教程可以看看

二`在CF中用函数操作XML

三WDDX在CF中的应用
可以在GOOGLE查WDDX

四 XML+CF+FLASH

五 加密XML

欢迎讨论哦。欢迎有空间的同学提供空间进行应用演示



s22

职务:版主
等级:4
金币:10.0
发贴:1634
#22003/6/7 23:20:41
www.5d.cn/bbs/newsdetail.asp?id=641212
先学点XML的基础知识
来谈谈对XML理解,当然不是我谈,是你



s22

职务:版主
等级:4
金币:10.0
发贴:1634
#32003/6/8 10:00:27
理解XML、DHTML以及Web内容管理
2002-08-12 14:22:00
--------------------------------------------------------------------------------

  几周以前,我有机会在一个由Allaire公司赞助的Web98 web设计与发展大会上和公司的高级Web顾问们进行了一次有关Web新技术的讨论。

  在会上,我没有就未来Web事业中的Allaire主要产品发展发表看法。相反,我感到应该花时间和大家共同学习一下目前正在被广为接受的新技术。在2个小时中,我和其他75名听众(Web开发人员)共同讨论了Web远景中主要相关技术的发展方向。Dynamic HTML (DHTML)、XML、以及Web内容管理。

  我希望通过讨论完成的任务是,帮助所有与会者认识,这些技术在什么地方将发挥怎样的作用,在他们采纳新技术时,将遇到哪些可以预见的问题。总之,我希望能够将所有这些重要的趋势弄明白。 以下内容就是我们全体在会议最后所得出的结论和看法。希望你们能够吸取这些丰富的内容,并添加你自己的观点和内容,发电子邮件告诉我们。

  Dynamic HTML

  DHTML被盛赞为Web平台上的一个重要技术转变。作为下一代浏览器需要整合的一种能力,DHTML将不断推动应用与交互性,使Web成为一个更加丰富的平台。DHTML是什么,我们如何去利用它? 在采纳它时我们将面临哪些挑战?

  1)DHTML并非新鲜事物,它指的就是新的StyleSheet和javascript标记。

  使用DHTML,你可以通过在文件元素中添加命名的ID号,动态修改页面中的元素行为。一旦你加入ID号,就可以使用user-events和javascript修改这些元素的内容和行为,使用Cascading Style Sheets (CSS)或其他HTML元素属性改变实际的页面外观。

  2) DHTML就是更多的javascript。

  动态HTML是通过扩展javascript 对象模型使Web页面编程能力更加丰富的新方式。

  3) 由于浏览器方面的问题,目前DHTML没有被广泛采纳。

  不同的浏览器执行不同的javascript对象模型,也就是一般常被提到的Document Object model或DOM。Microsoft向W3C提交了许多IE4的的DHTML方案,这些想法驱动了DHTML的核心标准定义的制定。尽管Netscape4也配置了许多DHTML标准,但是IE4进行的DHTML配置是最为广泛全面的。

  4) 今天,DHTML就是IE4或Netscape4的一个子集。

  要想真正使用跨平台的DHTML,你必须决定有哪些子集功能对于IE4和Netscape4来说是公共的。尽管这样,过分使用DHTML现在来说也不是非常合适,因为许多用户还在使用3.x 水平的浏览器。

  5)DHTML通过客户端交互性为用户增添了新的体验。

  DHTML淘汰了通过向服务器端提交请求来完成整个交互过程的需要,它更优秀的交互性使用户接口页面变得更加丰富。

  6)用户必须具备丰富的知识才能够正确理解DHTML。

  尽管你会感觉目前或多或少的可以使用一些DHTML。现实工作中对于DHTML的复杂运用需要用户具备深厚的类似C语言类(javascript)的编程知识,丰富的DOM、CSS、及HTML4.0的知识。实现真正的交互性需要拥有一个工程级别的技术组合。换句话说,DHTML不仅仅是新的扩展了HTML的tag,而是你如何进行Web页面编程的一整套新方法。

  可扩展的标识语言(XML)

  一种最新技术,XML是一种在Web上对结构化数据及文件进行传递与交换的架构。XML是SGML的一个子集,在Web环境下建立基于tag体系语言的一组简单规则。XML是做什么用的?在采用XML的过程中有哪些挑战性问题。

  1) XML是用以描述其他语言的一种语言。

  XML本身不是一种语言,而是用来描述其他语言的一组规则。

  2) XML允许你创建自定义tag。

  使用XML,你可以自定义tag名称,使用CSS和javascript创建浏览器行为。

  3) XML从布局及格式上分离数据。

  和XML有所不同,HTML本身包含许多用于规定格式的元素(如 Tables,Frames,Fonts等),而XML严格的限于描述内容及数据。在这一模型下,你必须使用CSS和javascript定义格式及描述行为。其优势在于,你可以在不同页面、应用中反复使用你的数据,这样,你的数据不是被固定某个特定时间内的特定的页面中,而是和页面比较相对独立的部分。

  4) 下一代浏览器将支持XML。

  在5.x浏览器版本中将真正把XML作为自定义tag来使用,替代目前的DIV和SPAN。有了这些功能,你就能够使用浏览器可以解释的tag,并将它们和特定的样式、脚本行为捆绑在一起。

  5) IE4包含了ActiveX控件及Java classes这样的XML语法解释器。

  IE4允许你分析一个传进来的XML文档,使用javascript操纵它的内容,提供元素。目前XML带来的工作量很大,并只在非常狭窄的操作中应用。IE4还提供一种使用XML数据或内容进行数据捆绑的机制。这样,你就可以将由XML表达的记录集和HTML表格或其他HTML元素进行捆绑,并且使用DSO对象迭加或修改数据本身。由于IE4的跨平台兼容性问题,并且IE4的XML还不是一种标准配置,所以如果一个开发项目没有绝对要求使用IE4,最好还是不要单独使用基于IE4的XML。 但就目前来说,目前最好开始学习XML,了解它将在你未来的开发中扮演一个什么样的角色。

  6) XML将在server-to-server的应用中起非常重要的作用。

  一旦你开始着手使你的数据适用于XML,你就可以更方便的在服务器之间进行数据交换。举例来说,一个搜索引擎可以到你的网站上寻找目前你在线销售产品方面的内容。你不再需要对HTML页面进行检索和分析,代理程序将寻找一个描述你的产品数据的一个标准XML文件。或者,你可以使用XML描写一个订单或发票,然后将它发给另外一个远程服务器去处理。由于XML可以表示或控制几乎所有类型数据结构,又因为它是light-weight, 并基于ASCII码的,因此可以非常容易的通过HTTP进行移动或操作。我们期待着XML在服务器端开创一系列巨大的开发及应用机会。

  7) OFX是一个服务器中心制的XML格式的例子。

  Open Financial Exchange,或被称为OFX,是一个XML格式的例子,已被用于传递、交换支付帐单及财务方面信息。有了这一标准,Web应用程序和桌面应用程序就可以在一个标准格式下传递付款及帐单信息,并且将这些信息通过HTTP方式传递给付款网关及银行结算。Microsoft、Intuit和ChechFree,以及一大批银行、金融机构都在积极推动采纳这一标准。

  8) XML可能成为用于Web的部件编程 (component programming) 基矗

  Web浏览器的“Behaviors”和ColdFusion CFX语言都是使用XML自定义tag,对数据以及程序、逻辑进行封装的实例。“Behaviors”是IE5的一项功能,允许你建立自定义tag,这些tag可包含内容、script、样式表定义,用来创建更简单的基于tag的浏览器部件。Allaire公司在1996年就成功开发了CFX,CFX是一种用来建立自定义tag,封装Web平台复杂性的一种方式。

  Web内容管理

  许多公司将Web作为一种商务及通信的战略平台来投资,在扩展web内容管理及实施能力方面,许多机构正在开始遇到阻碍。对于这些机构中的Web开发团体来说,一个正在呈现的实际问题就是Web内容管理。今天我们应该采取什么途径解决这些问题?

  1) 页面及内容的增加带来巨大问题

  随着Web页面内容的增加,Web工作组发现轻松管理并实施新内容正变得越来越复杂。版本及结构的复杂化、由于所实施的Web站点的复杂性,为最终用户直接分配内容的成本开支巨大。

  2) Web内容工作流程复杂

  创作、收集、实施内容的模式也非常复杂,尤其对于那些不具备自动化或数据库管理系统的组织及站点来说,操作这样的工作流程问题非常困难。

  3) 在Web内容实施过程中的安全性问题

  甚至在你向更多用户开放创建及实施内容的权利时,你所采纳的安全及许可处理方式都无法考虑到更广泛的需要或者是无法全面管理的。

  4)需要规则与控制

  为解决这类问题,新型的软件必须在建立实施Web内容的控制方面给予更好的支持。这一需求将成为一种可以上升至企业级的、跨组织和部门进行扩展的模式。

  5) Web数据库和应用服务器可以满足需求。

  许多,可能还不是大多数网站,正在向基于数据库管理的内容方面转变。使用自己开发的Web应用程序来管理、实施Web内容。在这种情况下,开发人员会使用一个系统如ColdFusion所建立的页面模板来制作网页。当用户请求某个页面时,存储在数据库中的内容将自动的输出到模板上,生成一个动态页面返回给用户。这种做法从显示开始就将数据存储和管理分离,使站点开发者在一个控制更加完善的环境中去管理内容。

  再次重申,以上就是我们在Web98圆桌会议上进行的讨论,同时我也我期待着你的观点。



s22

职务:版主
等级:4
金币:10.0
发贴:1634
#42003/6/8 10:01:12
Web 分布式数据交换(WDDX)
2002-08-12 14:22:00
--------------------------------------------------------------------------------

  什么是WDDX?

  WDDX是一种基于XML的技术。它能在两种不同的语言环境中交换复杂的数据。对于基于XML1.0 DTD的数据,WDDX提供脱离语言环境的支持。目前大量的语言支持WDDX。WDDX可用于HTTP、SMTP、POP、FTP及别的支持文本传输的Internet协议。

  WDDX是谁所建立和倡导的?

  美国Allaire公司为解决Web应用程序之间发生的数据交换时所产生的关键问题创建了WDDX。更具体而言, Allaire公司的程序技术设计师Simeon Simeonov建立了WDDX,并用来解决ColdFusion中涉及的分布计算问题。 这一工作被归结为建立一种跨越多个开发语言的技术框架,开发人员最终完成了WDDX SDK和WDDX.org网站的开发工作。WDDX SDK由独立的Web开发者Nate Weiss创建,Allaire公司以及一些第三方合作伙伴为他提供了必要的技术支持。

  WDDX是一项标准吗,它是否符合W3C或者其他类型标准?

  WDDX不是一个正式的标准,我们也尚未向W3C或者其他标准团体提交这方面申请。但是开发人员可以免费使用WDDX,对它进行再次开发利用。同时,WDDX是完全公开的,并属于基于XML1.0一类的标准技术。无庸讳言, WDDX在技术和知识方面将强有力的推动分布式Web应用开发的发展。

  WDDX如何工作?

  Web上所有的标准编程环境(ColdFusion、()Perl、ASP、JAVA、javascript、PHP等)都包括各种数据结构,如数据,记录等。WDDX提供一种模板将不同语言中的各种数据类型转换为XML中的表示方式或从XML中将数据解出来。例如,开发者可使用WDDX将ColdFusion中的数组转为XML结构送给ASP服务器,然后在VBScript中将该XML中的数据解出为它所支持的数组结构。一切的转换过程是对开发者而言是透明的。

  什么是Web联合体(Web Syndication), WDDX如何为之服务?

  Web联合体是一种新思想,我们希望能够实现这样一种技术,使一个网站的信息和商业资源能够同时供其他网站(合作成员)做为服务和数据使用。成员网站可以联合一个主网站的资源。“Web联合体网络”就是多个网站的集合,他们联合了内容与访问量,用来制造出范围更广的影响和价值。我们已经可以看到许多过去的一些“Web联合体”的成功案例,如Amazon.com的联合程序,web loyalty programs,以及Cybercash的后端付费过程系统。

  WDDX为不同Web系统之间的资源传递提高了一种简单、透明的胶着体,推动Web联合体的产生和发展。有了WDDX,一个使用Perl建立的动态网站可以和在另一种平台上的Web系统,(如ASP或ColdFusion ) 方便的进行数据库内容的交换,甚至为另一个网站提供数据、过程处理的能力。

  WDDX是否带有支持Web联合体的特殊功能?

  不,WDDX只为在Web上进行分布式数据交换提供了一个一般意义的架构。它没有为管理网站间关系、传递权利和许可内容或规定有序的网站交互行为而提供程序级别的功能。在使用任何WDDX指定平台建立的应用程序中可以包含上述类型的服务。当然,我们一直期待Web社区成员将来能够使用WDDX建立起规范的语法,更快的传递高层次的联合体概念,例如提交和预定、通知、在其他网站上传递使用许可程序等。

  WDDX只适用于Web联合体吗?

  绝对不是。当你看完下面的介绍之后,就明白了WDDX可以在非常广泛的Web应用程序中使用。把WDDX用做Web上的一种数据传输技术是最为狭窄的一个视角。它可以用于浏览器-服务器数据架构、建立离线的Web应用、以及服务器到服务器的联合体应用。当然,我们相信WDDX最强大的商业应用将来自哪些通过WDDX向其合作网络传递内容和商业接口的公司。

  WDDX如何在通信及商业方面让使用网络的企业受益?

  使用网络的企业通过WDDX受益的首要一点是,WDDX使建立新型商业形式和客户关系、充分利用Web所带来的新的价值链成为可能。例如,一个Web分销商现在可以将他的Web商业资产分享给其他网站开发者,帮助他们将这些资源集成到他们自己的客户程序中去。这样分销商就可以将产品的市场与销售资源传递给能够最方便最直接的接触到客户的Web零售网络去。例如,一个销售厨房用品的分销商通过WDDX将他们的产品信息扩散到其他站点。另外一个经营食谱内容的站点就可以在他们自己的网站上为用户提供这些来自上层分销商的产品。但是所有的内容以及交易处理服务都是由上层分销商网站来提供和完成的。对于客户来说,他们在这个食谱网站上获得了特别有价值的内容又可以买到恰当的商品。食谱网站虽然不直接参与产品销售,却能够通过为上层分销商宣传来获得利润,并得到更多的访问量。同样的模式可以被延伸至传统的供应链集成和商家对商家的Extranet。在这样的商业模式中,一个公司为其他供货商以及合作伙伴提供有关销售、样板以及订单状态等数据。

  什么类型的应用适合使用WDDX来创建?

  一个应用程序如果要求通过网络和其他应用程序共享数据,那么这个程序就非常适合使用WDDX。可以使用WDDX来开发程序包括Web 联合体、商家到商家的Internet和Extranet应用程序,商家可以使用这些网络传递各种商业数据, 例如产品或供应链数据、客户数据、订单数据等等。由于WDDX是独立的程序语言,对HTTP方式非常友好,因此企业可以使用ColdFusion或ASP建立一个应用,并使用WDDX向远程应用程序传递应用数据。这些远程的应用程序能够使用任何一种支持WDDX的语言(如Perl、ColdFusion、ASP)进行数据连接。这么做的好处是当不同的合作伙伴使用不同的语言环境来试图共享数据时,可以避免复杂的开发和过多的成本开销。

  WDDX的另一个目标是用于开发可以在传统的Windows桌面和Web应用之间起到桥梁作用的应用程序。一般来说,许多企业使用Visual Basic、C++、Delphi、Powerbuilder或其他工具开发那些需要运行于Windows桌面的应用程序,同时使这些应用程序可以和运行在Web应用服务器上的、传递着同样的数据与服务的应用程序进行连接。使用WDDX以后,开发者就可以使用HTTP协议、以及他们在Intranet、Internet应用所实施的同样的服务器端程序代码,把Windows客户端应用和Web应用服务器连接起来。这对于那些需要做离线数据输入和采集工作的应用程序非常有帮助。一般这种情况下一个独立的Windows或Java应用也许比连接在一起的Web应用程序更合适。以上例子就可以通过一个COM接口使用WDDX去实现。

  WDDX SDK是什么?

  WDDX SDK (software development kit)是让开发人员使用WDDX进行分布式Web应用以及Web联合体网络开发的软件工具包。SDK在www.WDDK.org的网站上通过网络向开发者免费发放。www.WDDK.org是由Allaire投资建立的,用于推动WDDX的开发与发展的站点。WDDX SDK是在Allaire公司的支持下开发完成的,其他一些第三方合作者开发了用于其他语言平台WDDX 支持模块。

  使用WDDX SDK需要具备哪些条件?

  WDDX SDK适用于所有支持XML标准和目前流行的Web程序语言平台。SDK软件工具包是一个ZIP文件或者Tar文件,使用Web浏览器可以阅读内含的说明文档以及示范程序。其中一些示范程序用到了ColdFusion、ASP、Perl和Java,所以你必须拥有相应版本的软件才能使用这些示范程序。

  WDDX,org是个什么网站组织? 谁在管理它?

  WDDX是Allaire投资的一个网站,旨在将WDDX作为一种新型Web技术进行推广和发展。开发WDDX.org以及WDDX SDK的一个基本理念是Allaire公司确信这一技术应该成为共享软件、开放源代码,并供Web社区的其他成员进行再次开发。Allaire公司为该网站提供了主机资源,同时协助提供SDK相关的关键性资料以及软件。

  开放者必须了解XML才能使用WDDX吗?

  不。使用WDDX的一大好处在于开发人员可以通过Web交换结构化数据,而不需要使用XML。WDDX可以被当成为“XML中间件”,编程语言可以把它作为他们自己语言的传送器来使用。

  都有哪些语言支持WDDX? 其他语言是否有计划支持它?

  目前,WDDX SDK目前为javascript1.x、ColdFusion4.0-mx、COM、Perl、Java提供了支持模块,(figleaf为FLASH提供了支持模块)( 这是我加的)。请注意,COM的WDDX模块可以用于Active Server Pages、VisualBasic、Delphi、Java、PowerBuilder以及C++。Allaire目前没有为其他语言实施支持模块的计划,但是任何开发人员都可以使用SDK为其他语言平台创建WDDX模块,支持WDDX的核心数据类型。有消息说用Python和PHP支持WDDX的项目正在进行当中。(PHP已经支持)(这是我加的)

  WDDX都支持哪些数据类型? WDDX是否支持国际性数据格式及标准?

  WDDX支持以下基本的数据类型:boolean(true/faulse)、number、date-time、string,iSO8601整体结构进行编码的Data-time values。时区信息可以成功的被转换为一个本地的date-time value。

  WDDX也支持以下复杂数据类型:数组,结构和记录集(recordset)。数组是指以整数为索引值的任意类型对象的集合。结构是指以字符串为索引值的任意类型对象的集合,在其它一些语言中也被称为相关数组(associative array)。记录集是表格形式的数据封装体,是由若干已命名的域及相同数量的数据行组成。在记录集中只能存储简单数据类型。

  得到WDDX需要多少钱?

  用户可以从www.WDDX.org免费下载WDDX,这一技术对于主流的语言环境是公开的。

  WDDX是否支持所有的Web浏览器?

  开发人员在基于浏览器的应用程序中使用WDDX的第一步是需要使用配置了javascript 1.0版本的浏览器。WDDX支持任何与javascript1.1兼容的浏览器,包括Netscape3.x/4,x和Internet Explorer3.x/4.x。我们已经对Mac、Windows以及Unix环境下的这些浏览器版本进行了测试。

  使用WDDX如何解决数据安全问题?

  由于WDDX是基于XML和HTTP等核心的Internet标准开发而成的,因此它继承了Web环境中自带的安全模型。WDDX可以使用SSL通过HTTP协议进行安全的传递。由于WDDX数据包都是字符串组成的,因此开发人员可以使用任意一种加密技术对数据包内容进行编码或解码。如果开发人员建立的分布式应用在连接用WDDX技术开发的数据时需要安全认证,应用程序将为附加的用户端安全要求提供Web服务器或应用服务器内置的认证及安全服务。

  WDDX可以被用于非Web和Windows体系的应用程序吗?

  完全可以。WDDX实施了COM技术,开发人员可以在任意一种流行的Windows应用开发环境下用WDDX开发分布式数据连接或数据存储,包括Visual Basic,Delphi,PowerBuilder, C++和Java。配备了Java技术以后,开发人员就可以使用WDDX建立独立的Java应用。开发人员可以在桌面应用程序开发中使用WDDX进行数据连接和调用,这些数据同时也被用于内置的Web应用程序。

  WDDX和其他标准的XML数据连接有哪些不同?

  标准的XML数据连接使用Document Object Model(DOM)应用程序接口(API)进行连接,控制XML文件。在DOM编程模型中,开发人员对任何XML文件结构享有完全的programmatic连接。使用WDDX,开发人员不需要自己来控制XML内容,而是使用语言特定模块去连接哪些从其他语言转换过来的数据。更多情况下,基于DOM的数据连接和基于WDDX的数据交换相比较,服务的目的也不相同。

  在什么地方可以了解WDDX的更多内容?

  WDDX SDK中附带了白皮书、技术文档、在线论坛。你可以从www.WDDX.org查询SDK的相关内容。

编辑历史:[这消息被s22编辑过(编辑时间2003-06-08 10:06:33)]


s22

职务:版主
等级:4
金币:10.0
发贴:1634
#52003/6/9 17:17:55
此话题继续。

编辑历史:[这消息被s22编辑过(编辑时间2003-06-11 21:26:10)]


UndeadCraft

职务:版主
等级:4
金币:10.0
发贴:1993
#62003/6/10 8:41:55
Y?



s22

职务:版主
等级:4
金币:10.0
发贴:1634
#72003/6/13 16:13:31
[swf]http://vip.5d.cn/s22/coldfusion/xml.swf[/swf]
源文件:http://vip.5d.cn/s22/coldfusion/xml.zip



Mozier

职务:管理员
等级:5
金币:11.0
发贴:2994
#82003/6/13 17:00:52
[注]:文中提到的"www.wddx.org" 地址错误,现在是 www.openWDDX.Org

编辑历史:[这消息被麽子编辑过(编辑时间2003-06-13 17:01:11)]


s22

职务:版主
等级:4
金币:10.0
发贴:1634
#92003/6/13 22:11:43
有人测试过WDDX没有?
把两个方法
cfml2wddx
wddx2cfml两个方法讲出来



wait

职务:普通成员
等级:1
金币:10.0
发贴:220
#102003/6/13 22:34:17
我以前写过一个购物车,就是用CFML2WDDX存储的,后来改做交给5D杂志了。



Mozier

职务:管理员
等级:5
金币:11.0
发贴:2994
#112003/6/17 21:09:16
不知道大家用过没有?
用这个标签把查询出来的数据生成XML,然后再写入本地硬盘,
xml的编码类型是UTF-8,全是乱码。想尽办法改成gb2312都不成~
郁闷ing......



s22

职务:版主
等级:4
金币:10.0
发贴:1634
#122003/6/17 21:12:50
是嘛。呵呵~那就别想办法了,等UPDATA4啦



网络白痴 | 5D荣誉斑竹

职务:普通成员
等级:4
金币:10.0
发贴:1657
#132003/6/17 22:08:01
该问题用变通的方式我已经解决了的。



网络白痴 | 5D荣誉斑竹

职务:普通成员
等级:4
金币:10.0
发贴:1657
#142003/6/17 22:11:44

">
">            



#AT_ID#
#AT_TITLE#
#dateformat(AT_CREATE,
"yyyy-mm-dd")# #TimeFormat(AT_CREATE, "hh:mm:ss")#

#MC_NAME#
#SC_NAME#
#US_NAME#
#AT_COMMENT#
#AT_COMMEND#
#AT_PUBLISH#
#xmlFormat(Content)#
">
            
">



s22

职务:版主
等级:4
金币:10.0
发贴:1634
#152003/6/17 22:23:25
我都是用WDDX生成XML,中文在WINDOWS系统不存在
在UNIX上也可以完美解决