Username:
Password:
Remember Me?
基于xml的桌面应用_xml技巧
< 上一篇
|
下一篇 >
来源:作者:网友供稿 发布时间:2007-12-07 05:40:41
前面已提到,通过XSL,我们能够把相同的数据以不同的数据形式提交给终端客户,一个XSL文档描述了数据的显示方式,您能够把许多XSL和同一个XML文档相连来提供不同的基于HTML的表示,这样事实上,我们就能够建立基于XML的桌面应用程式。基于Windows体系结构的一个图像表示如下所示:
采用这种方法主要有两个长处,首先,您能够以平台和语言单独的方式来操作数据,其次,无需编程您就能够实现对同样数据的不同的视图表示。
实际上,您需要一个工具能够把原始的数据转化为XML格式化的形式,然后用HTML的格式表示出来。实际上在IE5.0中,您能够通过他对XSL的支持来实现数据的不同视图。能够使用内建的XSL处理器来从XML流中产生输出。研发人员能够编写不同的XSL剧本,然后用IE内建的XSL处理器对他进行处理。另一方面,我们能够通过ADO组件的内在功能实现把记录集转化为XML格式,示例代码如下:
If Dir(XML_FILE) = "" Then
rs.Save XML_FILE, adPersistXML
End If
这里常量adPersistXML表示使用一个XML纲要来保存记录集的内容
我们再仔细看一下Recordset对象的Save方法,其定义如下:
Save([FileName As String], [PersistFormat As PersistFormatEnum = adPersistADTG])
每一个参数都是可选的,但是当您第一次把记录集保存到磁盘上的时候,您必须指定文档的名称。假如当该方法执行的时候,存在一个有效的过滤器的话,只有通过过滤的数据才能够被保存。当调用Recordset对象的方法Close关闭Recordset对象的时候,文档也被自动关闭。当Recordset被保存到磁盘上以后,您能够采用Open方法来阅读他,具体代码如下:
rs.open "c:\myrs.xml"
然后我们分析一下关于XML数据的显示的问题,IE5对XSL的支持是基于W3C最近的草案标准建立的。这里我们讨论用VB建立一个应用,他通过ADO接口来访问数据源中的数据。得到的记录集能够以不同的格式化的形式展现。通过编写XSL文档,您能够任意的增加不同的视图。
比如,一旦您提取了一个结果集以后,您能够在VB中用DataGrid控件方便的显示数据,具体代码如下:
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
queryString = "select * from Employees"
rs.Open queryString, "NorthWind" NorthWind是微软的示例数据库,很容易在
ACCESS或是SQL SERVER中找到
rs.ActiveConnection = Nothing
Set DataGrid1.DataSource = rs
在许多情况下,这个的一个视图是不够的,您需要对每个字段进行严格的控制。整个表中的记录可能既用表格又用树的形式表示,提供多个视图会让用户感到更加舒服。 XML和XSL相结合是这种问题的很好的解决方案,您能够充分利用IE5中的WebBrowser控件的功能直接进行浏览。
ADO组件本身不对他产生的XML文档生成任何的XSL文档。单这并不表示您不能自己编写一个通用的XSL文档来改变数据的显示方式。比如为了自动的把一个包含ADO记录集的XML文档以表格的形式显示的话,需要在XML的文档头部增加如下的代码:
<?xml-stylesheet type="text/xsl" href="simple.xsl"?>
这个simple.xsl文档必须放在和XML文档相同的目录下,他包含两个嵌套的循环,第一个循环枚举了元素的任何属性,这些属性的名字作为标题显示在第一行,第二个循环用来输出记录集中的任何记录。
simple.xsl文档的代码如下所表示:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"
xmlns:html="http://www.w3.org/TR/REC-html40"
result-ns=""
language="JScript">
<xsl:template match="/">
<html>
<head>
<title>RowsetSchema</title>
<style>
.stdText
{
font-Family:verdana;
font-Size: 9px;
}
</style>
</head>
<body>
<table width="100%" border="1">
<xsl:for-each select="xml/s:Schema/s:ElementType/s:attribute">
<th class="stdText"><xsl:value-of select="@type" /></th>
</xsl:for-each>
<xsl:for-each select="xml/rs:data/z:row">
<tr>
<xsl:for-each select="@*">
<td class="stdText" valign="top"><xsl:value-of match="@*"/></td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
这里需要注意的是关于列举一个给定节点的任何属性的语法,实际上我们需要得到任何<z:row>元素的任何属性,字符串@*表示任何的属性(一个属性的名字总是需要在前面加上@,为了使用这个值,<xsl:value-of>节点必须配置和他匹配的属性,用@*进行表示。
通过使用WebBrowser控件作为您浏览数据的引擎,您能够使用XML和XSL把内容从表示层中分离出去。在这种模型中,XSL的作用是作为一个标记语言(而不是编程语言)来描述怎样显示XML数据,为了增加一个新的视图,只需要增加一个对应的XSL文档就能够了。事实上这种基于Web的文档/视模型能够和MFC下的文档/视模型进行类比。
最后我们需要在讲一下,XSL和CSS有什么不同呢?关键的不同是XSL是应用在整个XML文档的,而CSS只对HTML标签的显示形式产生影响。XSL是个处理文档的标记语言,而CSS是个属性集合用来表示标记语言中一个元素的属性。而且,XSL在从XML数据流中产生HTML输出的时候,能够使用CSS,从当前的角度看,他们是两种不同的技术。
喜欢本文,那就收藏到:
上一篇:
学习使用xml引擎xqengine_xml教程
下一篇:
使用xmldom在服务器端生成静态html页面_xml技巧
相关评论
我也要评论
还没有关于此文章的相关评论!
首页
上一页
下一页
尾页
昵称:
(为空则显示guest)
评论分数:
★
★ ★
★★★
★★★★
★★★★★
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
相关推荐
xml轻松学习手册(3)xml的术语_xml教程
xml轻松学习手册(4)xml语法_xml教程
xml轻松学习手册(5)xml实例解析_xml教程
了解web页面工具语言xml(一)产生背景_xml教程
了解web页面工具语言xml(二)定义_xml教程
了解web页面工具语言xml(三)支持工具_xml教程
了解web页面工具语言xml(四)应用分类_xml教程
了解web页面工具语言xml(五)好处_xml教程
了解web页面工具语言xml(六)展望_xml教程
xml技术上传文档_xml技巧
相关资讯
提高perl程式的运行速度
Perl常用系统函数
Perl的基本输入输出
Perl进程管理
Perl文档及目录操作
Perl的运算符号字符
Perl变量(1)--纯变量
跟我学Perl(三)
跟我学Perl(二)
跟我学Perl(一)
点击发布文章
导航
主页
设为首页
加入收藏
联系我们
赞助商
文章类别
行业资讯
域名资讯
虚拟主机
托管租用
VPS
CDN
网站运营
技术资讯
Mac OS
网络设备
路由技术
网络技术
HTML/DHTML
源码天堂
网络编程
Java
Perl
C/C++
Shell
数据库其他
DB2
Sybase
存储备份
硬件技术
网站建设
通信技术
虚拟化技术
安全其他
安全工具
加密和破解
数据库安全
程序安全
网络安全
系统安全
防火墙
VPN
网管技术其他
Informix
Oracle
PostgreSQL
Dreamweaver教程
windows操作系统
XML编程
NET编程
JSP编程
PHP编程
ASP编程
Mssql
Mysql
Access
Coreldraw
flash
web服务器
ftp服务器
mail服务器
邮件系统
IBM-AIX
HP-UX
Sco
Solaris
FreeBSD
Linux
Proxy
CSS教程
Javascript教程
Ajax
dns服务器
Photoshop教程
站长资讯
冲浪宝典
帮助中心
首页新闻
其它相关问题
安全漏洞相关问题
网站推广相关问题
虚拟主机相关问题
网站建设相关问题
服务器相关问题
备案相关问题
支付相关问题
后台操作指南
代理相关问题
邮件相关问题
域名相关问题
vps相关问题
行业资讯
名网动态
新手指南
代理帮助
订阅
Rss Feed
主机赞助商连接:
华夏名网虚拟主机域名注册
关于我们 | 网站声明 | 联系我们 | 广告服务 IDC中文资讯站-客观公证的IDC产业权威媒体
Copyright
@
2007-2008 IDCNEWS.NET, All Rights Reserved
蜀ICP备07504800号