使用xml+jsp技术实现网页内容动态显示的方案

| No Comments | No TrackBacks

XML(eXtensible Markup Language——可扩展标记语言)是一种 扩展的源标记语言,是可以定义其他语言的语言。它是SGML的一个简化子集,这个子集是专为Web环境设计的,这就是说,它必须处理面向数据处理的(而不是面向发布的)、生存期短的(实际上是动态产生的)信息。

一、xml技术简介

XML(eXtensible Markup Language——可扩展标记语言)是一种 扩展的源标记语言,是可以定义其他语言的语言。它是SGML的一个简化子集,这个子集是专为Web环境设计的,这就是说,它必须处理面向数据处理的(而不是面向发布的)、生存期短的(实际上是动态产生的)信息。

XML与HTML对比:

XML语法严格,数据与显示分离,便于其他程序交互和检索数据。

HTML语法容错性大,数据和显示都在一起,检索数据困难较大。

XML又明确的DOM对象,可以对XML文件进行读写添删数据的操作。

HTML没有这种明确的对象来完成该操作。

XML克服了HTML的种种不足,将网络上传输的文档规范化,并赋予标签一定的含义。

XML作为一种网络系统中通用的数据交换格式迅速得到了支持,使用XML的实际好处有:

结构化——建立有任何复杂层次的数扭模型。

可扩展性——根椐需要定义新的标识。

验证——检查数据在结构上的正确性。

独立与媒介——以多种方式发布内容。

独立于供应商和平台——使用标准的商业软件甚至文本工具处理任何符合(XML标准)的文档。

XML文档可以通过可扩展样式语言XSL(Extensible Style Language XSL)转换和格式化XML文档。从而实现数据和页面样式的分离。

二、用JSP技术实现XML

JSP提供了一系列的特点,可以非常理想地和XML协同工作,JSP网页可以包含任何类型的文本数据,所以JSP可以直接生成含有XML的文档。而且,JSP可以利用强大的JAVA平台来解析、转换XML信息和文档。由于JSP也是JAVA软件环境的一部分,JSP也可以使用API对象来处理XML数据。JSP技术的强大功能和很好的灵活性加上XML技术规范化的数据,可以完美的实现网页的动态显示功能。

三、开发环境

1、编辑工具

现在,开发XML文档的工具越来越来多,从链接大型公司数据库的企业级XML开发环境,到简化标记开发过程的简单的小型文本编辑器。最新的工具可以从http://www.xml.com 了解到。目前,常用的几种开发工具介绍如下:

UltraEdit 由IDM Computer Solution 公司开发,可到http://www.ibmcomp.com 或http://www.ultraedit.com 免费下载有限期使用版。它是界面类似于Windows的资源管理器式的界面,有很强的文本编缉功能。

XML Spy Icon Information-Systems 公司的XML Spy 是XML 一个集成开发环境,包括进行XML开发的各个方面,功能较强,简单易用。XML Spy是一个真正完整的XML开发环境。它将所有开发XML所需的要素都包含在一个简单易用的产品中。它包括:XML编辑器和检验、Schema/DTD编辑器和检验、XSL编辑器和转换。同时还包含最新的XML草案,是一个不可多得的好软件。

XML Writer 这个软件是由Wattle Software-Chris Howard 开发的,可从http://XMLwriter.net 下载(试用)。在Window 95/98/2000 and Windows NT4下使用,也有着大家熟悉的Windows界面,提供了工程管理环境,可能刨建、查看工程,工程下包含文件,用户可自定义工具条、快捷键,并且可为命令选择显示图标。可用XSL样式表转换XML文件为HTML文件,不仅可使用XSL,而且可以使用XQL,用DTD或XML Schema 对XML进行检验,用XML格式直接的将CSS结合到XML,提供在线帮助功能,并且它对中文的支持较好。

2、XML服务器

由于XML技术有很大的发展潜力,众多厂商提供了自己的XML服务器,其中有Apache、Microsoft、Sun等。

3、浏览XML的工具

现在,大多数方案是将XML存储在数据库中,当需要时取出代码,将其与数据结合起来,使用XSL将其转换为HTML,然后发送到浏览器。所以浏览XML一般选用IE可Netscape, 而且版本越新对XML文档支持越好。

四、具体实现

1、 规范定义XML文档中元素名称

首先定义XML文档头部,包括XML遵循的规范、编码方式、注释等。例如:

“version=”1.0” “,表示该XML文档遵循XML1.0方案,这个喜剧声明是必须的。

“encoding=”gb2312” ”,如果没有这个声明,必须使用Unicode,以UTF-8或UTF-16作为编号方式。如果文件中使用了中文,就必须进行编码声明。

“standalone=”yes” ”,XML声明还可以有standalone特性,它说明,文档是否在这一个文件里需要从处部导入文件。如果XML文档在一个文件里完成,那么standalone特性的值就设置为“yes”。

然后,根据业务的需要规范定义页面上要显示的元素,以及定义它们的元素名称,元素名称可以是中文的,这样对数据描述更加简单明了,这是HTML无法实现的。元素是文档的主要逻辑部件,由开始和结束标记界定,格式为:

<元素名称 属性名1=“属性值1” 属性名2=“属性值2”>

元素的内容

元素的内容,可以直接写在页面上,也可以从数据库中取得。

文档中还可以包括实体声明和实体引用。简单地说,实体分为一般实体和参数实体。参数实体只能出现在DTD中,一般实体出现在一根元素开始的主XML文档中。实体声明格式为:。一般实体的引用很简单:“&实体名称;”,参数实体的引用与一般实体的引用类似:“%实体名称;”。实体是功能强大的工具,提供了管理大量内容的便捷机制。

写好后检查XML文档,确保文档的格式正确和有效。一个格式正确的XML文档满足:

l 每一元素必须有起始和结束标注;

l 必须有一个,而且只有一个称为根元素或文件元素的元素,并且它不出现在其他任何元素的内容中;

l 它包含一个或多个元素;

l 正确的定义和表示空元素;

l 开始标记和结束标记可以使用大写或小写,但它们必须匹配;

l 以起始标签和结束标签为界的各个元素必须正确地嵌套,不允许出现交叉;

l 属性值必须使用引号括起来;

此文件中直接或间接引用的每一个己析实休都是格式正确的;

l 它满足XML规范中定义的所有其他的格式正确性约束。

2、 使用XSL显示XML文档

XSL(eXtensible stylesheet language)是描述XML文档样式的一种语言,是由W3C制定的。XSL处理程序读取XML文档和XSL样式单,基于处理程序在XSL样式单中找到的指令,输出新的XML文档。XSL样式表就是对XML文档中类的描述文件,描述文件说明的是如何使用格式化词汇将类实例转换为一个XML文档。同时,XSL样式表也必须是组织良好的XML。

XSL有三个组成的模块:XSL模式(XSL Patern)、”XSL”名域(”XSL” Namespace)、”fo”名域(”fo” Namespace)。使用XSL样式单可有三种主要方式将XML文档转换成其他格式:XML文档和相关的样式单都是用于客户端(Web浏览器)的,然后客户端程序按照样式单中指定格式转换文档,并将它呈现给用户;服务器将XSL样式单应用于XML文档,以便此文档能够转换成其他某种格式(通常为HTML),并把转换后的文档发送到客户端程序(Web浏览器);使用第三方程序将源XML文档转换成其他某种格式(通常为HTML),才把此文档放置在服务器上,服务器和客户程序只处理转换后的文档。由于,大多数浏览器是IE,而且IE对XSL的支持又好,第一种方法常被采用。

XSL转换语言通过将XML树形结构变换成另一个XML树形结构来操作。这种语言含有操作符,此操作符用来从树形结构中选择特定节点、对节点重新排序以及输出节点。在XML文档中引用XSL的说明如下:

表明该XML文档引用的XSL样式单为mystyle.xsl。内容与形式分离使XML文档更偏重于数据本身,而不受显示方式的细枝末节的影响。而且可以通过定义不同的样式单可以使用相同的数据呈现出不同的显示外观,实现XML数据的可重用性。

首先定义构造部分输出的模块,或对来自XML源文件中的数据应用模板。转换模板包含在元素xsl:template中,模板可定义一组将源文档转换为结果树的规则,确定要处理的节点。然后匹配模式,一个模式是一个字符串,它用于匹配XML源文件中的一个元素。用@匹配属性节点。再用XSL中的元素转换XML文档中的元素。用XSL可以非常方便地实现同HTML中同样的表单定义。只要将要在表单中的元素放入定义好的XSL模板中即可,表单的名称、提义方式等属性与HTML中的定义相同。同样的表格的范围、样式,页面的显示风格、脚本等的定义也都与HTML相似。

另外,CSS也可以应用到XML文档,但CSS决定了页面的视觉外观,不会改变源文档的结构。CSS和XSL是互相补充,各有特色的。

经过XSL转换后XML文档表单提交到JSP页面或servlet进行处理。这部分可以完全和页面处理分开,可以实现控制逻辑的完全独立。

3、 XML文档数据的输出

XML的主要应用包括交换信息、定义文档类型、说明信息,信息以一种结构化的基于文本格式的方式表达,可以很容易地进行传输、转换和阐释。对数据的处理可以全部放在javabean或servlet中进行,与页面的显示完全分开。

在JSP中生成XML文档很简单,仍然可使用CSS或XSL来转换和显示XML。一个具有XML模板的JSP页面,其实质就是在XML文档模板中,在适当的地方加入JAVA代码和JSP标记。在页面中加入<%@page contentType=”text/xml”%>即可以将JSP页,以XML文档形式显式出来,同时把动态数据放入<%%>标记内。对生成的XML同样可以用XSL样式单进行格式转换和样式定义等。

4、 XML与JAVA结合

XML能创建不依赖于平台、语言或限制性格式化协定的开放数据,如果广泛地采用,XML能变成为内容以及下至客户端对象通迅的广泛标准。作为内容平台XML在许多方面增强了JAVA。XML将基于网络的信息置标化,使得开发者和电脑易于辨认。这是有必要的因为HTML除了隐藏的URL外,缺少有效的方法说明内容的含义,XML的目标就为网络的对象添加那些含义,而这些曾经就是JAVA的任务之一。

许多网络开发者得出结论:XML和JAVA是完美的一对,因为彼此十分相辅相成,XML有助于独立平台、易提取信息的文档和数据。JAVA有助于独立平台,易于处理的面向对象的应用软件解决方案,能驱动XML广泛接受的应用是在HTML的限制下难以实现的那些应用,可分为下列四类:

需要网络客户端协调各种不同类型数据库的应用。

力图将比例可观的处理工作从服务器端分布于客户端的应用。

要求客户端将同一数据以不同的形式展现给不同的使用者的应用。

智能网络代理应个别用户的要求搜索定制信息的应用。

JAVA平台提供了在网络上安全而方便地传播代码的基础,XML技术则为数据提供了同样的能力,这是一种清晰地、平台独立地表示内容的方法。在众多编程语言中,JAVA是使用XML的优秀平台,XML又是JAVA应用的优秀数据表示方法。XML和JAVA都与Internet关系密切,XML被设计成为一个优化的,灵活的可读格式,可直接用于Internet;而JAVA从一开始就支持socket,HTTP,HTML和服务器。它们都支持Unicode。因而很容易实现本地化应用,正如JAVA向程序员提供了表达复杂数据结构和面向对象模型的能力一样,用XML表达复杂的层次化数据模型是很理想的。

XML结合JSP技术结构明确、条理清析、简单易懂,是开发动态网站的一条快速而便捷的开发途径。

No TrackBacks

TrackBack URL: http://www.wujianrong.com/mt-tb.cgi/87

Leave a comment

About this Entry

This page contains a single entry by kevinwu published on July 2, 2005 12:03 PM.

Apache 的 ReWrite 的应用 was the previous entry in this blog.

Sun力推JDS数据库计划 开拓数据库疆土 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.