admin 管理员组文章数量: 1184232
2024年4月20日发(作者:sscanf 堆栈)
维普资讯
技术及应用 《教育信息化》编辑部:mis@moc.edu.cn
基于 的We b页面树形组件的
设计与实现
垦管理干部学院信息中心
中图分类号:TP311 文献标识码:B
张瑞华
文章编号:1671-7201(2006)04-0072—02
一
、
引言 HTML页面。XSLT文件可以是预先定义的,也可以是按照一定规
则利用程序即时生成的。在HTML代码中一般使用CSS来统一
规范界面的风格。
当组件开发基本完成,Schea文件以及XSLT文件构成了组 m
件的引擎,XML则是组件引擎的输入数据。使用者根据实际应用
按Schema文件生成XML文件,在XML文件中链接Schema文
件和XSLT文件,则浏览器在打开此XML文件时。调用Schema
文件对XML文件进行数据有效性检查,通过后再调用XSLT文
件对XML文件进行解析,以得到最终含有组件的页面。图1就是
组件实现的流程图。
在开发基于Web的应用程序中。经常要使用树形目录系
统。在开发网络课程考试系统中,利用XML技术开发了树形组
件,此组件在浏览器中具有一定的视觉表现,显示指定的信息,
并能够与客户进行交互。开发完成的组件可以交给控件的使用
者直接利用,使用者只需要提供待显示的信息。由组件加以相应
的处理,最终在浏览器中显示符合要求的界面。这样就实现了数
据与应用的分离,便于扩展与维护。在编写基于web的应用程
序中,实现数据与应用分离较为合适的技术为XML。利用XML
技术中的DTD或Schema定义用户数据的结构,XML文件保存
待显示的数据,XSLT文件完成生成树形界面的最终任务。
二、树形组件的实现步骤
第一步,对需要实现的界面组件进行外观设计,决定其在
HTML页面中如何表示,信息如何显示;然后抽取组件的属性,比
如文字的大小和颜色、组件的背景图、控制组件行为的参数等,需
要在组件中显示的信息也作为属性看待。这些属性形成组件的属
性列表,并注明哪些属性可以由使用者指定。记录下组件应该支
持的交互操作,以便将来实现它。
有了组件的属性,就可以开始使用Schema定义组件的结构。
用面向对象的方法将组件属性一一转化为Schea中的元素。或 m
多个组件属性作为元素属性集合于Schema一个元素中。定义
Schema文件时,应充分利用Schema的各种功能,比如,必须要指
定的组件属性可以设置元素属性use= required ,有缺省值的组件
属性可以设置default= <缺省值> ,等等。不用使用者定义的属性
可以不定义在Schema中。
圈1组件实现流程圈
三、树形组件的实现实例
1.树形组件的设计
一
个典型的树形组件类似Windows资源管理器中左侧的资
源树。其特点是通过直观的树形表示数据间的层次关系,由图标
指示数据的属性和状态,使用者可以通过展开、折叠树中的节点
灵活地显示指定的数据,并通过选择某个节点来进行相应的操
作。
第二步,对组件应该实现的交互功能进行编码,一般通过脚
本来实现。利用脚本函数或脚本对象封装复杂的代码实现是比较
好的方法。
第三步,将实现组件交互功能的脚本代码、实现组件外观的
HTML代码放置于一个XSLT文件中;如果按照模块化的方法。
将这些内容放置于不同的XSLT文件中,并用一个主XSLT文件
引用它们即可。此XSLT文件检索XML文件中定义的组件属性。
树形组件的外观中包括4个主要部分。即节点图标、节点文
本、节点展开折叠把柄以及节点连接虚线,其中图标、展开折叠把
柄以及连接虚线将使用图片来表现。
树形组件主要的交互功能有二:节点的展开、折叠以及节点
的选择。任一节点的展开、折叠可通过显示、隐葳此节点的所有子
节点来实现。对于节点的选择功能。通过对节点图标以及节点文
通过对属性值的适当处理,将包含信息、参数、属性的XML文件
转换为包含具有外观、显示相应数据、有交互功能的组件的
维普资讯
《教育信息化》发行部:cyl@moe.edu.cn
本的鼠标点击事件进行编程,或将节点文本设置为链接即可实
现。
节点文本用于显示信息,通过HTML的font元素可以方便
技术及应用
<xsl:variable ngnle=”parent”select ”count(parent::Node)”/>
<xsl:variable nallle=”children”select=”count(./Node)”/>
<xsl:variable nallle=”sibling”select=”count(./following一 ̄bling:
Node)”/>
地得到各种表现的文本。
2.具体实现
下列代码示范了使用table元素显示一个节点:
<table border=”0”cellspacing ”0”cellpadding=”0”>
<汀>
完成了对树形组件的大致设计,可以生成Schema文件。在
Schema中。定义一个根元素Tree,对应于整个组件。Tree元素下定
义4个子元素:Node、Background、DefaultTarget.Jsc却tFunction。定
义Tree元素的Schema代码如下:
<xs:dement nallle=”Tree”>
<xs:complexType>
<xs:sequence>
<xs:element ref=”Node’I/>
<td><img border ”0”src ”photo1.g ></td>
<td><irng border:”0”id=”array
l”src ”pho ̄2.gie’></td>
_
rc ”photo3.gie’></td
<td><irng border=”0”id=”array
2”s
_
<td nowrap><font id=”arrary_3”>XML</font></td>
</汀>
<Imb ̄>
<x ̄:element ref=”Background”minOccurs ”0”/>
<xs:element ref=”DefaultTarget”minOccurs ”0”/>
在生成节点的HTML代码时,有一个关键点是为每个节点
指定一个唯一的关键字,经过适当的处理后关键字分别用于指
定节点图标、节点文字的ID.这些ID可以作为参数传递给脚本
函数。以便控制HTML元素。下列XSLT代码根据Node元素在
XML文件中的顺序生成~个唯一的关键字保存于变量NodelD
中:
<xs:element ref ’'JscriptFunction”
maxOccurs=”unbounded”/>
</xs:sequence>
</xs:complexType>
</xs:element>
minOccurs ”0”
<xsl:variable name=”NodelD”select=”generate—id(.、”/>
Background用于定义组件的背景图;DefaultTarget定义了组
件中所有链接的缺省目标窗口;JscriptFunction元素用于定义脚本
函数,可多次应用以定义多个脚本函数,这些脚本函数可以由
Node元素的Action、OnClick属性调用,以完成用户自定义的功
能。
Schema文件和XSLT文件创建后,就可以用来处理XML文
件。使用者只要生成XML文件,并在XML中引用些XSLT文件,
则在IE浏览器中打开此XML文件时.将显示出一个树形组件。
下面是一个XML文件的片断:
<Tree>
Tree元素的Node子元素对应于组件中的根节点,在此Node
元素下.可以递归定义任意数量的Node元素,从而形成了一个节
<Node Text=”课程”Expanded=”t/'ue”Image=”image/
photo3.gie’Expandedlmage=”image/photo4.gie’>
点树。
下一步是生成XSLT文件。XSLT文件中首先定义一些常
量.比如imgOpenFolder值指示了展开节点的图标的URL等。
<Node Text=”财会专业”Tip=”Test Tip”>
<Node Text=”会计基础”Action=”Account tset.asp”/>
</Node>
定义这些常量有利于保持XSLT文件的简洁以及可读性.也便
于维护。用于控制节点展开、折叠的脚本函数也包含在XSLT
中。
<Node Text=..计算机应用专业”>
<Node Text=”网页制作”Action=”homepage_test.sap”/>
</Node>
</Node>
XSLT文件将对XML元素进行处理以生成HTML代码。比
如.如果XML文件中定义了Background元素,下面的XSLT代码
.
<DefaultTarget>main</DefaultTarget>
</Tree>
・
将生成一行HTML代码.指示HTML页面的背景图片:
<styl ̄>body{background—image:url(<xsl:value—of select ’
四、结束语
使用XML技术并结合HTML以及脚本技术.以模块化、对
象化的思想来开发、设计类似树形组件的Web页面组件非常合
适。而页面组件的开发及组件库的建立.也必将在页面设计以及
Background”/>)}</style>
利用XSLT模板递归处理XML文件中所有Node元素以生
成对应的HTML代码。对每个Node元素.XSLT主要完成两部
分工作:一是节点本身的显示.二是定义div元素包含其所有子
节点。节点本身的显示又包括显示节点连接虚线、节点展开折
叠把柄、节点图标以及节点文本。组件利用HTML中的table、td
元素规范、定位这些图片和文字,若XML的Node元素中没有
定义节点的图标.将使用XSLT文件中定义的缺省图标显示。
B/S开发等活动中极大地提高代码的可重用性,提高编码效率,提
高系统可维护性,降低系统维护成本。◎
参考文献:
…1 Fabio Arciniegas著.XML开发指南【M】.天宏工作室译,北京:清华
大学出版社.2003.
在这个处理过程中,获取节点相关信息是必需的,下列XSLT
代码分别获得当前Node元素父节点、子节点以及后续兄弟节
点的个数:
[2】XML Schema.http:llwww.w3.org/XML/Schema/.
【31 XML developmem history.http:llwww.w3.org/XML/hist2002
20o6年4月一 o
版权声明:本文标题:基于XML的Web页面树形组件的设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713564373a640971.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论