[摘要] 信息发布是任何电子商务和电子政务网站必须解决的技术问题,本文介绍了一种基于xml的信息自动化发布方案,方案中无需引入数据库管理系统,降低了网站建设成本,提高了信息发布的效率。
[关键词] 信息发布 xml 电子商务 电子政务
一、引言
随着internet的飞速发展和普及,电子商务和电子政务网站已经成为企事业单位重要的信息发布平台,也是人们快速获取各种信息的重要途径。目前国内很多公司都建立了自己的门户网站和部门网站,来发布各类新闻和通知等信息。
当前信息发布大致有两种方式:第一种是通过固定的模板来发布信息,即根据已有的html格式的信息模板,通过简单的内容替换来生成静态的页面,然后通过ftp上传到服务器,再修改主页上的连接进行发布;第二种是将信息数据保存到数据库或者文件中,当用户阅读具体信息的时候,从数据库或文件中调出数据,动态生成显示页面。
第一种发布方式,信息格式灵活,显示速度较快,但整个过程很繁琐,维护起来非常麻烦;第二种方式,信息的发布和管理比较方便;本文主要介绍一种基于xml的自动化信息发布方案,无需引入数据库系统,将静态html页面显示速度快的特点和文件存储节省成本和便于维护的特点相结合,提供一种便捷的信息发布和维护方式,尤其适用于中小型网站信息发布。
二、xml技术的特点
xml(extensible markup language)是w3c在1998年9月设计的一个sgml(standard generalized markup language标准通用标记语言)的简化版本。WWW.133229.COMxml是一种简单而有效的通用语言规范,属于元标记语言。xml文档是用纯文本编写的,可以用多种方法创建和xml文档允许用户根据自己的需要,灵活定义数据组织方式。采用xml技术进行数据存储具有以下特点:
通用性:xml是开放的国际化标准,w3c正式批准的,具有标准的名域说明方法,支持文档对象模型标准、可扩展类型语言标准、可扩展链接语言标准和xml指针语言标准。使用xml可以在不同的计算机系统间交换信息。
易用性:xml对sgml进行了精简,它抛弃了sgml中不常用的部分,方便用户编写web页面同时也给设计人员实现xml浏览器降低了困难。
跨平台性:由于xml本身具有良好的跨平台性,只要数据存储为xml格式,那么这些数据就可以被任何其他语言或系统识别。
高性价比的存储方案:相比于普通的文件,xml文档在数据定位和修改等操作方面具有明显的优势,具有较好的速度和效率;xml文档可以代替数据库实现常用的数据操作,无需单独安装数据库系统软件,使得系统的整体成本得以降低。
目前,处理xml文档的方式主要有sax与dom两种。sax(simple api for xml)是一种基于流的,以事件处理方式工作的接口。dom(document object model)则是在对xml文档进行分析后,在内存中建立起一个完整的树结构,然后在此基础上进行各种操作。简单地比较来看,sax对系统资源要求低,速度快,但对文档的操作是只读的;dom的处理能力强大!但要求大量的系统资源,尤其是对于大的文档。而后还出现了xpath和xpointer用以完成xml的搜索和转换;xsml和xslt和soap用以完成xml的远程对象访问,xml query languages的出现使xml查询语言可用于任何xml文档。
三、基于xml的信息发布方案
公司网站的信息发布不仅包括新闻,还包括通知,公告,招聘信息和各种动态信息,其整体流程为:系统管理员为信息发布者设置权限,信息发布者根据自己的用户名和口令登录到信息发布界面,进行信息的发布和管理,部分信息在发布前还需要系统管理员进行审批。本方案以新闻信息发布为例进行说明:
1.总体设计方案
根据web软件b/s结构的特点,方案中新闻数据的存储采用xml文件格式,开发工具选择asp[根据实际需要,可以自由选择其他语言工具(如jsp,php等)与xml文件自由组合]。
为了充分利用传统信息发布中静态html页面前台显示速度快的优点,在新闻数据写入xml文档的同时,由程序根据约定模板自动生成当前新闻的静态html页面,采用当前时间作为文件的名称(如20080201091011.html,此命名方式在新浪网等门户网站大量使用),同时为了避免xml文件过大造成解析过慢,新闻分为近期新闻和早起新闻,对于近期新闻采用xml文件和静态html页面双重存储格式,xml文件用于支持对新闻数据的修改,修改后重新生成静态html页面用于前台显示;早期新闻只保留静态html页面供浏览,xml文件中不进行数据保存,不提供修改操作。管理员可以通过管理界面将当前的近期新闻转为过期新闻,转换的同时将xml文件中对应的数据删除。同时考虑到新闻中经常出现的多媒体信息(如图片,音频和视频数据),根据其数据量大,独立引用的特点,只保存多媒体文件的名字,当新闻浏览时通过多线程的方式直接到指定目录进行加载。新闻发布流程如下图:
信息发布系统包括前台新闻显示部分和后台新闻发布和维护部分。核心功能简介如下:
(1)新闻管理。提供新闻发布,删除,编辑,近期新闻转为过期新闻等管理操作。
(2)权限管理。引入角色组的概念,它是权限控制的单位,每个角色组具有对网站部分资源的控制权限。
(3)用户管理。提供用户添加,删除和修改等操作入口。每个用户必须归属于某个角色组。
(4)模板管理。对新闻的静态html模板进行添加,修改和删除等操作。
(5)文件上传。将新闻中可能需要链接的各种文件上传到服务器指定目录。
2.xml文档设计
xml文档主要用于保存新闻中的非多媒体信息,多媒体信息则保存目录信息。每个新闻节点中包含了构成新闻的各个要素,内容正文部分按段落录入,为了区分普通的文本内容和多媒体内容,每段还包括了段落的标识和段落的内容。下面是一个保存新闻内容的xml文档部分内容示例:
<?xml version="1.0" encoding="gb2312"?>
<?xml:stylesheet type="text/xsl" href="news.xsl"?>
<document>
<news>
<title>新闻的标题</title>
<date>新闻录入的时间</date>
<link>新闻对应html静态页面链接</link>
<class>新闻的类别</class>
<keywords>新闻的关键字</keywords>
<author>新闻的作者</author>
<segment>
<segmenttag>段落内容的标识</segmenttag>
<segmentcontent>段落内容数据</segmentcontent>
</segment>
</news>
</document>
3.关键技术的研究与实现
(1)新闻发布模板设计。典型的新闻内容中包含新闻的关键字,新闻标题,发布日期,发布单位,发布者,正文等要素,信息发布的关键在于正文数据已何种形式写入到xml文件中。本方案中将新闻的具体内容分段进行处理,一则新闻的正文部分由若干段组成,每一段的内容可以是单一的文本,图片或者其他允许的多媒体,也可以是多种文件按照一定顺序和空间排列的组合形式。信息发布的初始状态每段只有一栏,发布者可以根据实际需要对某一段落进行分栏,每一栏内放置单一的文件内容。从而使得新闻内容的组合方式更灵活,简单,实用。
(2)面向对象的编码实现。方案中服务器端采用vbscript进行编码,该脚本支持面向对象的编码,为了充分发挥其面向对象的可重用性,灵活高效的特点,在对系统整体进行编码进行研究和分析之后,引入了面向对象的知识,设计了用于操作xml文件的类。操作主要包括以节点为单位的获取,修改,删除,增加等操作。该类的主要描述如下: