• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:16来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

格。管理者可以在左侧的内容菜单上点击所要求的表格类型,右边显示的数据就会相应更新,显
示所选表格的一些细节信息如表格编号、名称、类型、描述等。管理者可以在右边编辑表格信息,
或者通过在左边点击转移到另一个表单上去。图1 5 - 1所示的屏幕拷贝显示了用户界面的样子。
图15-1
由于关键数据的双重性,用户可以根据名称或编号查找一个表单,因此我们需要两类不同的内
容:一个是表单编号,另一个是表单名字。我们可以采用传统方法使用服务器端的A S P。在这个例
子中一个A S P页面将生成“以名字”为标识的页面,另一个将生成“以编号”为标识的页面。这种
方法的不足之处是需要建立和维护两个页面,并且一旦更改显示内容就要对服务器进行数据传输。
一个改进方法就是使两种显示共用一个页面,并同时向客户传送两种显示内容,但用
D H T M L隐藏其中一种显示。这种方法比第一种方法更简便,而且避免了对服务器的访问,但这
种方法使通过网络传输的数据量增加了一倍。
为了寻找一种更好的方案,我们尝试了X M L和X S L。X M L和X S L可以理想地只传送一次数
据,实现在客户端处理解释选项的要求。X M L十分适合本例要求。
15.4 实现方法概述
在X M L方案中,用户可以通过点击某个键实现一种显示内容到另一种的变换,而不需要额外的
服务器访问。数据以X M L格式只传给客户一次。在客户端,可以根据需要对X M L数据进行再解释。
在高端,这个系统包括如下步骤:
第15章实例研究1—数据双重性使用663
下载
1) ASP读取SQL Server生成的表并建立一个X M L流。
2) 客户端脚本加载X M L文档。
3) 客户端脚本加载并运行X S L文档。
图1 5 - 2显示了这个解决方案的各个部分以及它们之间的关系。
图15-2
正如我们刚才看到的,这意味着我们在屏幕左侧将会有两种不同的显示内容。图1 5 - 3中的屏
幕拷贝显示了这两种显示内容。
图15-3
664使用XML 高级编程
下载
15.5 建立数据库
本例中建立数据库所需要的文件是本书提供的下载代码的一部分,文件格式为S Q L脚本格
式:Wr o x P r o X M L F o r m s . s q l。
要使用这个文件,你首先要用S Q L生成一个新的数据库:Wr o x P r o X M L F o r m s。然后,如果
使用的是SQL Server 7, 就用SQL Server Query Analyzer 运行对应新生成数据库的
Wr o x P r o X M L F o r m s . s q l。如果是SQL Server 6.5,可以在Tools | SQL Query To o l菜单下实现同样
的功能。再回到Enterprise Manager你会看到已经生成了e c o m _ f o r m _ t y p e和e c o m _ p r o d u c t表格。
完成这个过程后,你可以用ODBC Data Sources控制面板应用程序建立一个叫Wr o x P r o X M L
的系统D S N。
注意下载文件中的e d i t . a s p同前面一个解决方案中的相应文件完全不同。在前一个解决方案
中那个文件的功能是由几个Site Server页面来完成的。这些页面是标准化的,并含有调用各种
X M L树更新函数的命令,这些函数稍后将会在本章中提到。
15.6 提供XML功能的ASP
整个过程中的第一步是A S P页面F o r m L i s t X M L . a s p从SQL Server表格中读取数据,并返回一
个X M L流。从A S P页面返回的缺省值是H T M L,所以我们要指定其返回值为X M L。命令如下:
程序清单1 5 - 1
一旦设定返回值类型,除开A S P脚本标志或ASP response.write生成的内容以外的任何内容
都被认为是X M L,需要有完整的格式。换而言之,这意味着生成的文件:
• 必须在开始声明是X M L。
• 必须只有唯一的一个根元素。
• 必须有相匹配的开始和结束标志。
• 必须有正确嵌套的标志。
任何一个返回X M L流的A S P页面,如F o r m L i s t X M L . a s p都必须符合这些要求,否则你的浏览
器(IE 5)就会报告解析错误。
我们生成的X M L文件格式如下:
程序清单1 5 - 2
第15章实例研究1—数据双重性使用665
下载
在这种情况下,一个< F O R M L I S T >包含一个或多个< F O R M S >,这是一种群组机制,可以将
多个表单组成特定的“类”(例如应用表格)。在每个< F O R M S >分支上,我们可以有一个或多个
< F O R M >分支,分支中含有实际表单的相关信息。< F O R M T I T L E >和< F O R M N U M B E R >元素是
自解释性的, < S K U >是表单唯一的标识符,这个标识符是必须的,因为表单编号并不总是唯一
的。
下面我们来看看F o r m L i s t X M L . a s p的代码,这些代码将为我们生成X M L。像以前提到的那
样,我们设定ASP response对象的Content Ty p e属性为“t e s t / x m l”,并以此为开始。同时我们也
将R e s p o n s e对象的终止设为-1,防止它在浏览器中缓存:
程序清单1 5 - 3
接着,我们开始把X M L写到浏览器中去。调用应用程序将会识别出A S P分隔符外的任何内
容都是X M L,因为在H T T P头中的Content Ty p e属性已经告诉应用程序这个特性了。接着开始写
入根元素< F O R M L I S T >和T Y P E属性。
程序清单1 5 - 4
上述命令将会把这一行原样写回到调用应用程序,和A S P分隔符外的H T M L标识符的作用一样。
现在,我们要建立一个和数据库的连接,将使用ADO。同前面生成的System DSN相连很简单:
程序清单1 5 - 5
在最简单的层次上,为了得到信息和生成X M L,我们将会生成一个记录集并反复向其中写
入X M L标识和内容。但是, A S P在字符管理方面可能不太完善,所以为了最优,我们将字符管
理交给SQL Server。这种做法产生了一个有些冗长的S Q L语句,如下所示:
程序清单1 5 - 6
666使用XML 高级编程
下载
将来的A D O和SQL Server版本将会更好地支持X M L,省去这类字符管理的连接。但在这里,
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程下(51)