Transcript 幻灯片 1

XML技术在校务公开网站
的使用
郑海山
内容简介
•
•
•
•
介绍校务公开网站。
介绍XML。
介绍RSS。
如何编写RSS文件,只有2个页面,大家回
去后只需花10分钟不到就可以完成。
校务公开网站
• 校务公开网站需要各个网站提供要公开的校务新
闻信息,这是一个典型的异构数据库的整合问题。
• 以前采取的方式是使用PERL被动去每个网站抓取
信息,由于各个站点的格式都不同,所以必须对
每个站点写一个PERL脚本,而且站点一更新,必
须同时更新PERL脚本。有些站点使用dw或者
frontpage手动更新的,格式不规范,根本无法抓
取。又由于没有站点的主动配合,无法得知哪些
是需要公开的那些是不能公开的。
校务公开网站改版目标
所以这次改版我们必须做到下面几点:
• 各个单位能主动根据政策提供需要公开的
信息
• 提供的方式必须方便简单,不需重复开发,
如果全校几十个站点需要做大的改动,是
不可能的。
• 必须是自动的,人工干预最少。
校务公开网站解决方法
• 关于异构数据库的整合问题,我们想到的第一个
解决办法就是XML,实践证明,使用XML是一种
目前最简单最有效解决校务公开网站的方法。
• 如果使用XML来交互,我们把XML文件载体想象
成一个“盒子”,各个单位站点把自己需要公开
的信息放入“盒子”,校务公开站点每隔一段时
间去看一下“盒子”,如果有更新,同时更新到
校务公开数据库。
• 只要我们规定好双方通信的格式,这样添加和删
除一个网站变得非常方便。最终我们选择了互联
网上比较流行的新闻格式RSS。
使用RSS的几个优点
这个”盒子”格式简单、容易编写
• 纯文本,容易理解,例子。
• 提供者不需知道校务公开网站的存在,提
供者负责生成就可以了。
• 可以在访问的时候读取数据库生成这个”
盒子”(最方便,改动最小),也可以在
写新新闻的时候生成这个”盒子”(适合
访问量大的网站)。
生成RSS的函数库
• 我们已经为大家写了一个asp函数库,也就
是你可以不管什么RSS规范,只需include
我们的函数库,调用几个方法即可。调用
方法也非常简单。利用函数库还有一个好
处是,如果以后我们要更换别的规范,只
需更新函数库,然后通知大家下载最新的
函数库即可,大家的程序不用任何更改。
XML和RSS
• XML是一种置标语言
• RSS是XML的一个应用,也就是RSS文件也是一
个XML文件,符合RSS规范的XML文件才是RSS
文件。
• RSS规范有多个版本,我们目前采用的是0.91版
本。已经足够我们使用。
• 其他RSS资料
RSS Tutorial
RDF Site Summary (RSS) 1.0
RSS 2.0 Specification
什么是XML
关于此规范的正确题目,亦即XML的正确全名,应该
是: Extensible Markup Language。 eXtensible Markup
Language只不过是一个拼写错误罢了。但是,现在简写
XML不仅正确,而且正如它在本规范的标题中一样,是
Extensible Markup Language的官方名称。
这个名称和简写是由James Clark最先提出的,其它
可供选择的名称还包括小型标准标记语言MGML (Minimal
Generalized Markup Language), 标准标记语言的小型结
构MAGMA (Minimal Architecture For Generalized
Markup Applications), 以及互联网置标结构语言SLIM
(Structured Language for Internet Markup)。”
XML的制定目标
•
•
•
•
•
•
•
•
•
•
XML应该可以在互联网上直接使用
XML应该支持各种不同的应用方式
XML应该与SGML兼容
处理XML文件的应用程序应该容易编写
XML中的可选特性的数量应该减到最小,最好减至没有
XML文件应该具有良好的可读性,并且比较清晰
用XML设计新的标记语言应该方便快捷
XML设计的标记语言应该正式、简洁
XML文件应该容易编制
XML标记的简洁性并不重要
为什么要发展XML
• HTML的出现大大丰富了网页的视觉和听觉
效果,HTML方便的同时又有着它固有的缺
点。 HTML是表形的,最重要的数据被表
现形式的代码淹没,不同的浏览器和设备
对相同的HTML有不同的解释。浏览器的高
容错型造成了HTML内部结构的条理性越来
越差。HMTL也无助于搜索引擎的开发。
HMTL的不可扩展使他无法描述矢量图形,
科技符号等等特殊显示效果。
XMLvs HTML
HTML
比较内容
可扩展性
侧重点
不具有扩展性
侧重于如何表现信息
不要求标记的嵌套、配对
语法要求
等,不要求标记之间具有
一定的顺序
可读性及可维护性 难于阅读、维护
数据和显示的关系
保值性
XML
是元标记语言,可用于定
义新的标记语言
侧重于如何结构化地描述
信息
严格要求嵌套、配对,和
遵 循 DTD 的 树 形 结 构
结构清晰,便于阅读、维
护
内容描述与显示方式整合内容描述与显示方式相分
为一体
离
不具有保值性
具有保值性
为什么要发展XML
• HTML是给人阅读的。
• XML本身是给机器阅读的,我们通常使用
XSLT技术把XML转换成各种格式。其实
XML真正的应用是在异构系统的整合、保
存数据上,我们平时所说的用XML做网站
只是非常小的一个应用。
更有意义的搜索
• HTML适合人阅读,我们可能可以分辨在姓名:
北京内的北京是一个人的名字,但是搜索引擎不
会知道。即便搜索引擎针对如果有姓名:后都认
为是姓名,但是不是所有的姓名前面都有姓名:。
• 如果你想在google里搜索名字叫北京的人,搜索
结果可能包括地名为北京的网页。而XML你只需
限定在<Fullname>置标内搜索北京,则搜索引擎
返回的一定是名字是北京的人的信息。
保值性
• 纸介质的文档和电子文档哪个保留的时间
更长?
现在我们用的Word,powerpoint,IE,
再过十年后是否还存在?我们刻成光盘
保存的doc,ppt文档没有程序再能阅读,
怎么办?
XML是纯文本保存的,而且是自描述的,
XML的设计思路就是至少保存50年。
如何整合异构数据库
各个企业内部使用不同的机器,不同的操作
系统,不同的数据库系统,企业前端有防
火墙系统,如何在企业之间交流信息?
如何整合异构数据库
• 使用XML技术。XML是一个标准,相当于
在各个厂商之间添加了一个layer,在layer
下面,各个厂商的实现不尽相同,但是
layer上面大家的数据可以交流,通用。
• Xml.org上面有大量行业的xml schema标准。
实战演习:获得一个学生的信息
假设现在公安局要知道某个学生的资料,
• 以前:公安局会有专人跑到各个部门去查
• 现在:打电话查
• 将来:各个部门提供一个查询系统,根据
用户名和密码进入查询
• 更远的将来:只需登陆一个系统,自动到
各个系统查询。
Blog
• 现在blog很流行,我很多朋友都有了自己的blog站点,他
们的站点是每天更新的,有些是每天数篇,为了了解他们
的动态,我想经常访问他们的网站。
• 我必须把他们的blog链接加入收藏夹。
• 每天我必须打开我收藏夹里面的所有链接一个个打开观看。
这段时间取决于我的网络速度。
• 有些朋友的blog可能很花俏,可能有飞来飞去的图片,可
能有背景音乐,对于第一次访问的人可能很有新鲜感,但
是我不喜欢,我只想看到文字的内容。
• 我想在我的PDA上访问他们的blog,但是我的PDA屏幕较
小,网络带宽很小。
新闻站点
• 上面提到的情况也同样适合于新闻站点,
这么多新闻站点,我们不能一个个打开浏
览,只能挑选少数几个比较权威的浏览。
如果可能,我们应该有另外一种更方便的
浏览方式。
解决方法:RSS阅读工具
• 各个blog、新闻站点提供RSS链接,我们运行
RSS阅读工具。
• RSS client可以定时或在晚上去各个链接去下载
RSS文件,更新本地缓存。
• 工作空余我们可以打开RSS阅读工具,一个栏目
一个栏目浏览过去,不用记住每个站点的地址,
可以离线阅读,不用任何等待,没有广告的骚扰
(所以有些站点不会提供RSS文件)。
• 信息是推到你面前的。
FeedDemon
FeedDemon
《南阳党建》互联网站推出RSS频道(Feed)订阅
服务
这是国内首个党建部门应用新技术的实例,上面有
介绍如何使用FeedDemon,并有“特别文件”提
供下载。
厦门大学计算机网络管理中心新闻发布
这个是我以前的一个尝试,希望不久的将来学校各
个站点均提供rss服务。
RSS应用
• 如果学校的各大网站也提供RSS链接,则
我们只需把关注的站点的链接加入RSS阅
读工具。我们不用天天登陆教务处、人事
处、图书馆、办公室的站点,就可以知道
学校正在发生什么事。
生成RSS方法
• Rss.Inc.asp 函数库,include
• SampleRss.asp 生成rss的asp程序,
include Rss.Inc.asp,各个站点需要改变的
一般只有一句,就是如何从数据库中检索
数据。
• 打开2个文件解释。
生成RSS方法
以人事处为例,人事处首页有3个栏目,重要
通知、人事动态、招聘信息,如果重要通
知是需要公开的校务信息,对应的url是
http://rsc.xmu.edu.cn/zhxx.asp,则我们可
以把SampleRss.asp另存为zhxxrss.asp,
然后更改里面的sqlstr赋值内容,把
zhxx.asp里的sql语句拷贝到zhxxrss.asp即
可。则现在人事处的重要通知的RSS链接
就是http://rsc.xmu.edu.cn/zhxxrss.asp。同
理可以写出rsdtrss.asp,zpxxrss.asp。
生成RSS方法
如果人事处所有的内容都是需要公开的,则
可以选择另外一种方式,把
SampleRss.asp另存为rssnews.asp,原先
zhxx.asp里面是选择contentType为1的记录:
Select top 10 id, title, addtime from articles
where articleType = 1 order by addtime
desc,则我们把where articleType = 1去掉,
即可选出所有记录。
生成RSS方法
也可以采用只写一个文件的方法,根据传入
的ID生成不同的RSS。
rssnews.asp?type=重要信息
生成RSS方法
如果你的站点访问量比较大,你不希望每次
别人访问rss都要读取数据库,你可以在新
记录插入到数据库后调用函数库
Rss.SavetoFile(“filename”);
的方法生成RSS文件,可以取名为xxx.xml。
用这个方法必须可以创建fso组件。
生成RSS方法
其他:如果你们单位要公布的校务公开信息
不是凑巧跟某个栏目吻合,则你必须为每
个记录增加一个字段判定是否要公开(改
动大,数据库结构必须改变),或者在每
条新闻里面添加特定标记(改动小),比
如:<!—校务公开记录-->等。然后在Rss生
成时选出字段值要公开或有特定标记的记
录。或者在后台创建一个新类型的新闻,
由管理员在里面手动添加校务公开新闻
(重复劳动)。
总结
1. 根据我们提供的asp函数库生成本单位的
校务公开数据。
2. 如果有剩余时间,可以考虑为本单位的其
他信息也提供RSS链接,方便广大师生。
3. 有任何问题,可以和我 Haishion AT
xmu.edu.cn 联系。