Xml与web编程开发方法.docx

上传人:b****2 文档编号:24108276 上传时间:2023-05-24 格式:DOCX 页数:24 大小:68.57KB
下载 相关 举报
Xml与web编程开发方法.docx_第1页
第1页 / 共24页
Xml与web编程开发方法.docx_第2页
第2页 / 共24页
Xml与web编程开发方法.docx_第3页
第3页 / 共24页
Xml与web编程开发方法.docx_第4页
第4页 / 共24页
Xml与web编程开发方法.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

Xml与web编程开发方法.docx

《Xml与web编程开发方法.docx》由会员分享,可在线阅读,更多相关《Xml与web编程开发方法.docx(24页珍藏版)》请在冰豆网上搜索。

Xml与web编程开发方法.docx

Xml与web编程开发方法

目录

摘要-1-

Abstract-1-

1、XML技术概述-1-

1.1XML技术背景介绍-1-

1.2XML的优点-1-

1.3XML基础-2-

1.3.1XML的术语-2-

1.3.2XML语法-2-

1.3.3用XSL显示XML文档-6-

1.3.4DOM技术-6-

1.4XML与数据库-8-

2、WEB编程开发方法-10-

2.1结构化开发方法-10-

2.1.1基本思想-10-

2.1.2JAVA与结构化开发方法-10-

2.2面向对象开发方法-11-

2.2.1基本思想-11-

2.2.2JAVA与面向对象开发方法-11-

2.3基于组件的开发方法-12-

2.3.1基本思想-12-

2.3.2框架规则-12-

2.3.3MVC框架-13-

2.3.4Struts框架-14-

3、结论-14-

参考文献-15-

Xml与web编程开发方法

摘要:

本文主要对XML技术和基于组件驱动的Web编程技术进行了说明和分析。

XML技术作为现今最流行的可扩展置标语言,基于XML的系统,具有方便、灵活和扩展性强等优点。

基于组件的开发是现今软件复用理论实用化的研究热点,在组件的支持下,通过复用已有的构件,软件开发者可以“即插即用”地快速构造应用软件。

这样不仅可以节省时间和经费,提高工作效率,而且可以产生更加规范、更加可靠的软件。

而基于组件驱动的Web编程,开发WEB应用的过程中最常用的框架是模型—视窗—控制器(MVC)框架,它减弱了业务逻辑接口和数据接口之间的耦合程度,让视图层更加富于变化。

Abstract:

ThispapermainlydrivenbyXMLtechnologyandWeb-basedprogrammingtechniquesfordescriptionandanalysis.

Asofthismoment,themostpopularXMLExtensibleMarkupLanguage,XML-basedsystemisconvenient,flexibleandextensibleetc.

Web-basedanddrivenprogramming,theprocessofWebapplicationdevelopmentframeworkisthemostcommonlyusedmodel-Windows-Controller(MVC)framework,itweakenedthebusinesslogicanddataadaptertothecouplingbetweentheadapterssothatmorerichlyvariedViewlayer.

1、XML技术概述

1.1XML技术背景介绍

“可扩展标记语言”(XML)提供一种描述结构化数据的方法。

与主要用于控制数据的显示和外观的HTML标记不同,XML标记用于定义数据本身的结构和数据类型。

XML使用一组标记来描绘数据元素。

每个元素封装可能十分简单也可能十分复杂的数据。

您可以定义一组无限制的XML标记。

XML是一种简单、与平台无关并被广泛采用的标准。

XML相对于HTML的优点是它将用户界面与结构化数据分隔开来。

1.2XML的优点

使用XML来交换信息有很多好处,包括下列方面:

使用人的语言而不是计算机语言。

XML便于阅读且容易理解,即使对于初学者亦是如此,它与HTML编码一样容易。

与Java完全兼容且完全可以移植。

(在任何操作系统上)可以何应用程序都可以使用您的信息。

可扩展。

创建您自己的标记或使用别人创建的标记,这些标记使用您的域的基本语言、具有您需要的属性,且对您和您的用户都很有意义。

XML标记名便于阅读,且表达了数据的含义。

每个XML标记就位于相关联数据的前面,这样人和计算机都可以容易地识别信息结构。

数据结构遵循显而易见且有用的模式,使得处理和交换数据更容易。

1.3XML基础

1.3.1XML的术语

1.Element(元素)

元素在HTML我们已经有所了解,它是组成HTML文档的最小单位,在XML中也一样。

一个元素由一个标识来定义,包括开始和结束标识以及其中的内容,就像这样:

John

唯一不同的就是在HTML中,标识是固定的,而在XML中,标识需要你自己创建。

2.Tag(标识)

标识是用来定义元素的。

在XML中,标识必须成对出现,将数据包围在中间。

标识的名称和元素的名称是一样的。

例如这样一个元素:

John其中就是标识。

3.Attribute(属性)

属性是对标识进一步的描述和说明,一个标识可以有多个属性。

XML中的属性与HTML中的属性是一样的,每个属性都有它自己的名字和数值,属性是标识的一部分,就像这样:

John。

XML中属性也是自己定义的,我们建议你尽量不使用属性,而将属性改成子元素,原因是属性不易扩充和被程序操作。

4.Declaration(声明)

在所有XML文档的第一行都有一个XML声明。

这个声明表示这个文档是一个XML文档,它遵循的是哪个XML版本的规范。

一个XML的声明语句就像这样:

xmlversion="1.0"?

>。

1.3.2XML语法

1.3.2.1XML语法规则

规则1:

必须有XML声明语句

声明是XML文档的第一句,其格式如下:

xmlversion="1.0"standalone="yes/no”encoding="UTF-8"?

>

声明的作用是告诉浏览器或者其它处理程序:

这个文档是XML文档。

声明语句中的version表示文档遵守的XML规范的版本;standalone表示文档是否附带DTD文件,如果有,参数为no;encoding表示文档所用的语言编码,默认是UTF-8。

规则2:

是否有DTD文件

如果文档是一个"有效的XML文档",那么文档一定要有相应DTD文件,并且严格遵守DTD文件制定的规范。

DTD文件的声明语句紧跟在XML声明语句后面,格式如下:

DOCTYPEtype-of-docSYSTEM/PUBLIC"dtd-name">

其中:

“!

DOCTYPE”是指你要定义一个DOCTYPE;

“type-of-doc”是文档类型的名称,由你自己定义,通常与DTD文件名相同;

“SYSTEM/PUBLIC”这两个参数只用其一。

SYSTEM是指文档使用的私有DTD文件的网址,而PUBLIC则指文档调用一个公用的DTD文件的网址。

“dtd-name”就是DTD文件的网址和名称。

所有DTD文件的后缀名为“.dtd”。

规则3:

注意你的大小写

在XML文档中,大小写是有区别的。

在写元素时,前后标识大小写要保持一致。

规则4:

给属性值加引号

在HTML代码里面,属性值可以加引号,也可以不加。

但是在XML中则规定,所有属性值必须加引号(可以是单引号,也可以是双引号),否则将被视为错误。

规则5:

所有的标识必须有相应的结束标识

在HTML中,标识可能不是成对出现的。

而在XML中规定,所有标识必须成对出现,有一个开始标识,就必须有一个结束标识,否则将被视为错误。

规则6:

所有的空标识也必须被关闭

空标识就是标识对之间没有内容的标识。

在XML中,规定所有的标识必须有结束标识,针对这样的空标识,XML中处理的方法是在原标识最后加/,就可以了。

1.3.2.2元素的语法

元素由一对标识以及其中的内容组成。

元素的名称和标识的名称是一样的。

标识可以用属性来进一步描述。

在XML中没有任何保留字,所以可以用任何词语来作为元素名称。

但是必须遵守下列规范:

1.名称中可以包含字母、数字以及其它字母;

2.名称不能以数字或“_”(下划线)开头;

3.名称不能以字母xml(或XML或Xml……)开头;

4.名称中不能包含空格;

5.名称中间不能包含“:

”(冒号)。

1.3.2.3注释的语法

注释是为了便于阅读和理解,在XML文档添加的附加信息,将不会被程序解释或则浏览器显示。

注释的语法如下:

--这里是注释信息-->

1.3.2.4CDATA的语法

CDATA全称characterdata,翻译为字符数据。

我们在写XML文档时,有时需要显示字母,数字和其它的符号本身,比如"<",而在XML中,这些字符已经有特殊的含义,我们怎么办呢?

这就需要用到CDATA

语法格式如下:

[CDATA[这里放置需要显示的字符]]>

例如:

[CDATA[John]]>在页面上显示为:

John”。

1.3.2.5Namespaces的语法

Namespaces翻译为名字空间。

名字空间有什么作用呢?

当我们在一个XML文档中使用他人的或者多个DTD文件,就会出现这样的矛盾:

因为XML中标识都是自己创建的,在不同的DTD文件中,标识名可能相同但表示的含义不同,这就可能引起数据混乱。

比如在一个文档

woodtable
中表示桌子,而在另一个文档
namelist
中表示表格。

如果我需要同时处理这两个文档,就会发生名字冲突。

了解决这个问题,我们引进了namespaces这个概念。

namespaces通过给标识名称加一个网址(URL)定位的方法来区别这些名称相同的标识。

Namespaces同样需要在XML文档的开头部分声明,

声明的语法如下:

yourname='URL'>

其中yourname是由你定义的namespaces的名称,URL就是名字空间的网址。

假设上面的"桌子

"文档来自,我们就

可以声明为

zhuozi=''>

然后在后面的标识中使用定义好的名字空间:

table>woodtable

这样就将这两个

区分开来。

注意的是:

设置URL并不是说这个标识真的要到那个网址去读取,仅仅作为一种区别的标志而已。

1.3.2.6entity的语法

entity翻译为"实体"。

它的作用类似word中的"宏",也可以理解为DW中的摸板,你可以预先定义一个entity,然后在一个文档中多次调用,或者在多个文档中调用同一个entity。

entity可以包含字符,文字等等,使用entity的好处在于:

1.它可以减少差错,文档中多个相同的部分只需要输入一遍就可以了。

2.它提高维护效率。

比如你有40个文档都包含copyright的entity,如果需要修改这个copyright,不需要所有的文件都修改,只要改最初定义的entity语句就可以了。

XML定义了两种类型的entity。

一种是我们这里说的普通entity,在XML文档中使用;另一种是参数entity,在DTD文件中使用。

entity的定义语法为:

DOCTYPEfilename[

ENTITYentity-name"entity-content">

]

>

例如我要定义一段版权信息:

DOCTYPEcopyright[

ENTITYcopyright"Copyright2001,John.Allrightsreserved">

]

>

如果我的版权信息内容和他人共享一个XML文件,也可以使用外部调用的方法,语法像这样:

DOCTYPEcopyright[

ENTITYcopyrightSYSTEM"

]

>

定义好的entity在文档中的引用语法为:

&entity-name;

例如,上面定义的版权信息,调用时写作?

Copyright;

完整的例子如下,你可以copy下来存为copyright.xml观看实例:

xmlversion="1.0"encoding="GB2312"?

>

DOCTYPEcopyright[

ENTITYcopyright"Copyright2001,John.Allrightsreserved">

]>

XML

ajie

ajie@

20010115

©right;

3.3.2.7Schema的语法

XMLSchema是Microsoft指定的技术规范它是基于XML-data和DCD的。

DTD使用了一种特殊的规范来定义在各种文件中使用XML标记的规范。

但是,有些常用的限制不能用DTD来表述。

这就需要使用Schema,它的很多情况下的作用和DTD差不多。

但它的功能要超过DTD。

XMLSchema是用来描述XML元素和属性的。

它基本上包括属性和元素类型说明,可以为XML元素和属性提供内容模块。

Schema相对与DTD的明显不同是XMLSchema文档本身也是XML文档,而不像DTD一样使用特殊格式。

这给用户带来了三个好处:

不需要知道两种语法来编写语法合格的XMLSchema。

软件工具可以利用XML文档和Schema之间的语法通用这一点为两者提供支持。

作为XML文档,XMLSchema能够扩展出去。

能向XMLSchema中加入元素和属性。

只要元素和属性名域不同,它们在一个Schema中是合法的,这个大大方便了用户和开发者,因为他们可以使用相同的工具来处理XMLSchema和其它XML信息,而不必专门为Schema使用特殊工具。

Schema定义的数据类型要比DTD全面。

DTD值允许把内容类型定义为一个字符串。

XMLSchema允许把内容类型定义为整型、浮点型、数据型、布尔型或者许多其它的简单数据类型。

如果想要编写一个应用软件来处理某个值为整型的元素内容,在DTD的例子中必须把它转换为整型,而在Schema例子中,可以直接得到那个整数值。

XMLSchema集成了名域,允许文档的特殊节点与Schema中的类型说明联系起来。

联系XML节点和DTD的唯一方法是通过DOCTYPE说明。

这是有限的,因为每个文档实例只能用一个DTD。

多个Schema可以来描述一个XML文档,因为XMLSchema自身不描述XML文档,它描述XML元素。

Schema的优势以及它的可以扩充的能力使它成为描述数据的最佳的选择之一。

下面列出了Schema的一些例子:

//表示该元素出现次数大于1

//表示该元素仅包括文本不含有子元素

//表示所列的子元素必须安升序出现

1.3.3用XSL显示XML文档

XML是一种元标记语言,没有许多固定的标记,为WEB开发人员提供了更大的灵活性。

使用XML我们可以做到自定义标记,用标记表明内容的含义。

这样在Internet上交流资料时,为用计算机处理文档提供了极大的方便。

然而,由于XML并没有为标记规定显示方式,我们无法在浏览器中看到以诸如表格方式显示的XML文档。

为了解决这个问题,XML可以采用以下两种技术:

CSS与XSL。

但使用CSS来格式化XML文档的效果交不令人满意,而XSL则是专门为了XML所设计的样式表。

XSL包含两大部分:

XSLT和XSLFormattingObject。

XSLT(XSL31Transformations)一种用来转换XML文件的语言。

XSLFormattingObject:

一组用来格式化(排版)语意的词汇。

XSL转换XML分为两个步骤:

(1)XSL处理器首先要做的是通过分析器(DOM或SAX)技术读取XML标记及数据。

当浏览器通过XMLDOM对象读取到XML的树状结构与数据后,将XML树状结构重新排行组合后产生一个暂时的数状结构,这个树状结构称为结果树。

在这个结果树产生后,若又出现了新的标记或数据,必须把它一起并入结果树。

(2)结果树也是树状结构,可以利用DOM技术访问结果树的数据,其中数据以节点方式显示,并且预留一个记录样式的位置。

XSL处理其中的程序将这些数据转换为另一种Well-FormedXML文件(如:

WML、HTML、VoiceXML等)。

1.3.4DOM技术

DOM是对XML开发者相当重要的,对于XML应用开发来说就是一个对象化的XML数据接口。

最基本的XML开发通常都要使用它。

简单说,DOM就是一组对象的集合,通过操纵这些对象,我们就能操纵XML和HTML数据。

DOM全称是DocumentObjectModel,人如其名,DOM就是一个文档对象组成的模型,它不光用于XML,最先是起于HTML的。

对作过Web开发的人,特别是写过动态DHTML的人,应该对HTML中的文档对象有一定概念,DOM就是这样一个对象模型的标准。

DOM另外又是一个接口,一个与语言无关的接口,应用通过这个接口来和XML或HTML内的数据打交道。

无论是在浏览器里,还是在浏览器外,在服务器上,还是客户端,我们只要用XML就会碰到DOM。

1.DOM的来由

为什么要定义这样一个接口呢?

这样讲吧,我们知道数据库有标准的ODBC/JDBC这样的接口规范,那么我们使用XML数据如果没有一个统一的接口,我们写程序是不是要每个人都要自己去处理XML的语法细节,如果我们手头有XML的语法分析器(有人译为解析器),它也必然有一个接口让我们通过它访问XML数据,所有语法分析器的接口如果都不相同,我们开发就必须针对某一个分析器,如果换了分析器,程序就必须重写。

到这里,又和数据库有可比性了,我们编数据库应用可以不管后面的数据库系统究竟是ORACLE还是SYBASE,或INFORMIX,是因为有了ODBC,所以要是我们做XML应用开发,就应该有一个统一的XML数据接口,这个接口就是DOM。

2.DOM的三部分

目前的DOM分为核心(core)、HTML、XML三部分。

核心:

这部分是结构化文档比较底层的对象的集合,但他们就已经可以表达出任何HTML和XML文件了。

HTML和XML:

这两部分是专为XML和HTML提供的另外的高级接口,使操纵者两类文件更方便。

3.DOM组成

图1.1是DOM的整体组成图,给出了DOM模型基本组成的概念。

图1.1DOM整体组成

4.文件树

DOM中的最基本对象应该就是Node了。

从它又派生出许多类型的node。

所有这些node组成一棵文件树,它包含了XML或HTML文档的几乎全部信息。

在结构化文档中,信息是按层次化的树形结构组织的。

所以结构化文档的模型的组织也必然是树形的。

Node简单的说,就是上面树形结构中的节点,但对XML来说还包括其他XML语法相关的节点,包括XML声明,文件类型声明,处理指令等等。

Node提供一些基本属性和操作,各种类型的Node则继承Node的属性和操作,同时有各自特殊的属性和操作。

比如ElementNode。

5.基本对象

上面已经讲了DOM中最基本的对象就是节点,它的接口定义如下:

从NODE派生出的几个比较重要的节点类型有Document、Element、Attribute、Text。

Document是DOM树的根,它代表一个完整的XML文档。

它会有一些自己的子节点,至少应该有一个文档元素的子节点,这个节点类型为Element,是XML文件最外层的根元素,此外他还可能有DocumentType(唯一),ProcessingInstruction,Comment这几种作为子节点。

Element代表XML元素,是最常用的节点,它可以组成以它为根的DOM的子树。

他还可以有Element子节点,以及Attribut,Text,ProcessingInstruction,CDATASection,Comment子节点。

Attribute是XML元素的属性,它的父节点必然是Element,它的子节点有Text和EntityReference。

除了Node,DOM里还有两个比较重要的对象:

NodeList它实现的一个节点的序列,用于表示有顺序关系的一组节点,比如某个节点的孩子节点序列,它还出现在一些方法的返回值中,例如GetNodeByName。

NamedNodeMap它表示的是一组节点和其唯一的名字的对应关系,这个对象主要用在属性节点的表示上。

1.4XML与数据库

XML的特性使之成为在线和离线数据的共同语言。

现在的问题是,怎样管理XML标记的数据。

一种可行的方法是用数据库对XML进行存储、检索和操作,即把XML标记的数据收入一个框架中,在一种更容易管理、更系统化、更为人们所熟悉的环境中完成搜索、分析、更新和成果输出工作。

目前有两种不同的观点:

一种观点认为,只有以XML原始的格式存储XML的数据库才能称为XML数据库;另一种观点认为,只要能存入和检出XML,且它本身又是一个数据库,那它就是一个XML数据库,而不必考虑数据是怎样存入的。

而我们认为,凡内部不是以XML格式存储的XML数据库,叫做“XML-enabled数据库”;如果内部以XML格式存储数据,就称为“native-XML数据库”。

使用现有的数据库类型和产品而不是以原始格式来存储XML,是出自以下几种考虑:

首先,普通的关系数据库和面向对象数据库己尽人皆知,而native-XML数据库是新的;其次,人们熟知现有的关系数据库和面向对象数据库,也了解它们的行为和性能,因此他们不愿意转向native-XML数据库,因为其性能,特别是可伸缩性尚未经过检验;最后,在企业看来,选择关系数据库和面向对象数据库是比较安全的,使用新的native-XML数据库具有一定的风险。

现在己经有一些能够很好地处理XML的XML-enabled数据库,并且是由久经考验的关系数据库和面向对象数据库担此重任。

这些数据库在收到XML后,将其分解为字段并按通常的方式存储它们,当检索XML时,这些字段再被拼接成原状。

在关系数据库中处理XML数据时,可用第三方中间件进行转换,如XML-DBMS,这是一种基于JavaDatabaseConnectivity(JDBC)的工具,可以在XML文档和数据库之间传输数据。

但是,利用关系数据库和面向对象数据库存储XML也有很大的缺点,例如,XML最具吸引力的特性之一是其分层结构,而关系数据库却将XML映射成关系表,从而将XML结构变成了平面的行和列。

另外,遇到大型或复杂文档时,在XML与数据库之间进行来回转换要耗费相当多的处理时间,从而降低了Web页面的生成速度。

目前,native-XML数据库已经开始出现,尽管人们还不能完全信任它,但的确有一些n

展开阅读全文
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1