作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/
1.Web技术的技术特点和发展历程
a)技术特点
- 用超文本技术(HTML)实现信息与信息的连接;
- 用统一资源定位技术(URI)实现全球信息的精确定位;
- 用新的应用层协议(HTTP)实现分布式的信息共享。
b)发展历程
第一阶段的Web:静态页面——每一个Web站点由一台主机、Web服务器及许多Web页所组成。HTML(超文本标记语言),HTTP(超文本传输协议),Web 1.0。
第二阶段的Web:动态页面——将数据库与Web结合在一起,在Web上发布来自数据库的信息,典型技术为CGI、服务器专用API、ODBC、JDBC等技术。
第三阶段的Web:Web 2.0——以人为出发点,让所有的人都忙起来,全民织网,然后用软件、机器的力量使这些信息更容易被需要的人找到和浏览,主要支撑技术为BLOG、RSS、WIKI、SNS等。
2.XML技术
a)基本概念:XML,the eXtensible Markup Language,由万维网联合组织(W3C :World Wide Web Consortium)制定的最新页面描述语言标准,用来对信息进行自描述。其关注于怎样描述数据内容的组织和结构,以便数据在网络上进行交流和处理。
b)基本特征:被标记的各个数据是保持其含义的,因此系统间交换数据的可能性极大提高。
c)基本理念:结构化标记数据,是实现 “文档结构化”的语言规范。
d)特性:
可扩展性:XML是设计标记语言的元语言,而不是HTML这样的只有一个固定标记集的特定的标记语言。正如Java让使用者声明他们自己的类,XML让使用者创建和使用他们自己的标记,而不是HTML的有限词汇表。可扩展性是至关重要的,企业可以用XML为电子商务和供应链集成等应用定义自己的标记语言,甚至特定的行业一起来定义该领域的特殊的标记语言,作为该领域信息共享与数据交换的基础。
灵活性:HTML很难发展,因为它是格式、超文本和图形用户界面的混合,要同时发展这些混合在一起的功能是很困难的。而XML提供了一种结构化的数据表示方式,使得用户界面分离于结构化数据。在XML中,可以使用样式表,如XSL (Extensible Stylesheet Language, 可扩展样式表语言) 和CSS2 (Cascading Style Sheets Level 2,层叠样式表第2级),将数据呈现到浏览器中。XML文档之间的超链接(Hyper Link)功能由独立的XLink (Extensible Linking Language, 可扩展链接语言)来支持。所有这些方面都可以互相独立地改进并发展。所以,Web用户所追求的许多先进功能在XML环境下更容易实现。
自描述性:XML文档通常包含一个文档类型声明,因而XML文档是自描述的;不仅人能读懂XML文档,计算机也能处理。XML文档中的数据可以被任何能够对XML数据进行解析的应用所提取、分析、处理,并以所需格式显示。XML表示数据的方式真正做到了独立于应用系统,并且这些数据能重用。所以XML适合开放的信息管理。由于自描述性,文档里的数据可以由XML应用来创建、查询和更新,跟处理传统的关系型数据库、面向对象数据库里的数据类似。所以,XML文档被看作是文档的数据库化和数据的文档化
简明性:XML只有SGML约20%的复杂性,但具有SGML功能的约80%。同完整的SGML相比,XML简单得多,易学、易用并且易实现。XML的诞生也吸收了人们多年来在Web上使用HTML的经验。XML采用Unicode字符编码系统,从而支持世界上几乎所有的主要语言,并且不同语言的文本可以在同一文档中混合使用。
e)有关术语
- XML文档:就是用XML标记写的XML源代码文件。XML文档是类似ASCII的纯文本文件,可用任何文本编辑器创建和修改。 包含三个部分:
- XML文档声明; 声明表示它是一个XML文档,它遵循的是哪个XML版本的规范。
- 关于文档类型和样式表的定义;
- 用XML标记创建的内容:文档内容主体部分
- Element(元素): 类似于HTML,XML中的元素由标记来定义,包括开始和结束标记以及其中的内容。 例如:巴金
- Tag(标记):用来定义元素。在XML中,标记必须成对出现,将数据包围在中间。标记的名称和元素的名称是一样的 (e.g. )。
- Attribute(属性): 与HTML中的属性类似, XML中的属性是对标记进一步的描述和说明,一个标记可以有多个属性。每个属性都有它自己的名字和数值,属性是标识的一部分。 例: 巴金
- Well-formed XML (良构的/良好格式的XML) 一个遵守XML语法规则,并遵守XML规范的文档称之为“良构的”。如果你所有的标记都严格遵守XML规范,那么你的XML文档
- 不一定需要DTD文件来定义它。
- 所有元素都要正确关闭 (空元素 要<元素/>)
- 标记之间不能交叉
- 所有属性值都要括上引号,属性要以名值对方式出现。
- 其它规定:比如良构格式的文档必须以一个XML声明开始,例如:
- Valid XML (有效的XML) 一个遵守XML语法规则,并遵守相应DTD/Schema文件规范的XML文档称为有效的XML文档。
- Parser(解析器):一种检查XML文档是否遵循DTD/Schema定义的工具软件。将XML文档和它的DTD/Schema文件进行比较分析,看是否符合文档数据结构规则的过程叫validation(验证)。
f)DTD
定义: 对一种数据文件中数据的组织存放结构的说明。描述了一个标记语言的语法和词汇表,也就是定义了文件的整体结构以及文件的语法;规定了一个语法分析器为了解释一个“有效的”XML文件所需要知道的所有规则的细节。严格定义了某项数据应该在哪儿出现,列出所有有效的元素,例如元素、标记、属性、实体;规定了各种数据项之间的关系
作用: 通过建立各种不同的文档类型定义,我们就拥有了不同格式的数据文件,不同格式的数据文件的DTD都是按照一定的标准给出的。这样即使遇到一种未知格式但带有DTD的数据文件,也可以通过分析它的DTD来知道数据在文件中的组织结构,进而提取数据。
示例:
<?xml version="1.0”encoding=”GB3212”?>
<!ELEMENT 计算机(制造商、识别符、主频、内存、硬盘、单价)>
<!ATTLIST 计算机类型 #REQUIRED>
<!ELEMENT 制造商 (# PCDATA) >
<!ELEMENT 识别符(品种、型号) >
<!ELEMENT 品种(#PCDATA)>
<!ELEMENT 型号(#PCDATA)>
<!ELEMENT 主频 (#PCDATA)>
<!ELEMENT 内存 (# PCDATA) >
<!ELEMENT 硬盘 (# PCDATA) >
<!ELEMENT 单价 (# PCDATA) >
其中“计算机”、“制造商”等使用XML文档中的标记来定义。
第2行为元素类型声明,“计算机”元素用“制造商”、“标识符”和“主频”等多个元素共同定义。
第3行为属性列表声明,计算机具有类型属性,属性值以文本数据的表达方式定义。在这样的文档中,应定义所有表示的标记,正确表达文档中所含数据的含义。
注:
1.PCDATA代表已解析字符数据(Parsed Character Data),就是从文本文件解析的标准字符信息,任何数字都需要由解析器转换。
2.推荐使用微软的XML Notepad来检查DTD。
3.可以使用CSS在XML中进行格式化,浏览器可以解析。
DTD的使用方式:
内嵌式”DTD直接包含在XML文档内(声明部分)。
外接式:调用独立的DTD文件。将DTD文档存为.dtd的文件,然后在DOCTYPE声明行中调用。 (常用)
如存为computer.dtd, 然后按如下方式引用:
g)XML Schema
基本概念:DTD的升级版,使用XML格式来描述XML数据模型,具有DTD所没有的强大特性:比如数据类型、子元素个数等,是业界标准的XML数据建模工具。XML schema本身是规范的XML文档, 支持的数据类型包括数字型、布尔型、整型、日期时间、 URI、十进制数等。而且它还支持由这些简单的类型生成更复杂的类型。
h)XML的显示
当要在XML文档元素内容中表示显示方式时,采用XSL 语言描述的XSL样式表(XSL Style Sheet)来实现。使用XSL方法时,同一文档可完成多种表达变换,能实现各种显示内容。XSL标准本质上是一个让你指定如何翻译/显示一个XML标记的翻译机制。
- DSSSL - Document Style and Semantics Specification Language-- An international SGML standard for Scheme-like languages for style sheets and document conversion
- CSS - Cascading Style Sheet Specification--Simple syntax for assigning styles to elements (in some HTML browsers)
- XSL - Extensible Style Language--Combines features of DSSSL and CSS using XML syntax (a XSL style sheet is a XML file)
XSL和CSS都是修饰XML的方法, 都可以用来定义XML显示格式.
XSL和CSS的不同点:
XSL是应用于整个XML文档的,而CSS只是对HTML标签的显示模式进行了指定,任务是对 HTML 元素指定一组显示属性。
CSS 决定了页面的视觉外观,但是不会改变源文档的结构。
XSL是用来处理文档的标记语言,也称为基于模板的语言,它允许将某种模式映射到源文档中,该源文档的输出是用XML、HTML或纯文本书写的。
i)XML的转换
XSLT(XSL Transformations,XSL转换):XML格式转换的工具, 是XSL的一部分。用于将一种XML格式(符合某种XML数据模型)转换成另一种XML格式,将数据转换为浏览器的显示格式,在不同的内容模式之间转换商业数据 (通过定义把原来XML文档的树结构变换为其它树结构的规则,从而使文档的格式变为用户所需要的内容)。
j)XML的Web模型
XML文档和DTD文件首先由XML处理器(Parser)按规则以树结构展开,对不符合XML句法规则的文档,XML处理器提示错误信息。XML的句法规则很严格,不管用哪种XML处理器都要求能抽取同样的树结构。XSL处理器根据按树结构展开的数据和XSL样式表作成显示用的数据。
k)XML与相关技术对比
XML vs. HTML
XML vs. 数据库
XML的关键思想:将数据内容与应用分开,从而提高网络上的数据可重用性和数据交换的效率。(利用XML描述的数据组织结构信息,可以引导不同的数据使用者将其关心的数据内容提取出来并用于各自的目的。)
数据库关键思想:将数据以独立于数据使用目的方式存放,使之被不同的应用程序使用。
XML vs. CORBA
CORBA:用于解决对象之间的互操作性。主要用于软件集成,作用于功能级。
XML:用于解决数据的互操作性。能用于软件集成,但作用于数据级。
l)XML的解析
XML文档解析分析XML文档的内容是否符合XML标准,以及判断一个文档是否遵守DTD/Schema,并对XML文档内容的访问提供支持。两种主要的解析方式:
- DOM(Document Object Model):根据文档的内容建立一个层次的数据结构;可读可写可修改; W3C标准。这是一个基于层次树的XML应用程序接口。DOM提供给用户一组接口来装载、操作并序列化XML文档,并且提供了对存储在内存中的XML文档的一个完全的表示,提供了可以随机访问整个文档的方法。
- SAX (Simple API for XML):基于事件的解析器;顺序读取,速度快,不可写入;业界的事实标准。SAX是一个接口集合,它允许开发人员在自己的应用中通过这个接口集合来读取和分析XML文档中的数据。最初是为Java编程语言设计的,并使用了Java的接口定义 。
- DOM vs. SAX
SAX不需要在内存中建立整个文档的树结构,和DOM相比是一个轻量级的接口集合。例如,你想通过扫描数据找到文档中关于某一个特定股票的相关信息时,不需要把不必要的数据放到内存里面,可用SAX扫描数据发现和该股票相关的信息,然后创建一个仅和该部分相关的一个文档结构,从而节省系统资源和处理时间。因为整个文档并没有放到内存中,SAX不能随机的到达文档的某一部分,同时,开发人员必须在处理过程中按顺序处理信息,所以SAX在处理包含很多内部交叉引用的文档时就会有一些困难,不能实现复杂的搜索。
m)XML标准体系
基础标准:规定了采用XML制定标准时的一些公用特征、方法或规则。
- XML:是XML体系的基础,主要定义描述数据的低级文法。
- DTD:规定文档的逻辑结构,符合DTD语法的XML文档被认为是有效的。
- XML Schema: 描述了更加严格地定义XML文档的方法,以便可以更自动化的处理XML文档。
- XML Namespace:用于保证XML DTD中名字的一致性,以便不同的DTD中的名字在需要时可以合并到一个文档中。
- DOM (Document Object Module):XML文档对象模型。它定义了一组与平台和语言无关的接口,使XML文档可以由软件操控,以便程序和脚本能够动态访问和修改XML文档内容、结构及样式。
- Xquery:目的是为从WEB文档中提取数据,提供一种灵活的查询机制。
- Xpath(XML Path Language,XML路径语言):XSLT使用的元素/属性定位机制,是对XML文档各部分进行定位的语言。
使用路径的方式来定位XML文件中元素/属性。Xpath 类似于操作系统目录结构中相对路径的概念,描述如何识别、选择、匹配XML文件中的各个构成元件,包括元素、属性、文字内容等。 - XLL (Extensible Link Language) : Xlink和 Xpointer标准,规定了有关链接、定位方面的内容。支持目前Web上已有的简单链接,并进一步扩展链接功能,如结束死链接、建立双向链接、链接到某个元素等。
- CSS(层叠样式表):用来作为XML文档显示的样式标准。CSS是为HTML开发的样式表语言,可用于为XML文档应用样式,但它不具备基于XML发布通常所需的转换和生成结构(例如目录)的能力。
- 扩展样式语言XSL (Extensible Style language):用于规定XML文档样式的语言。
应用标准:各行业领域纷纷采用XML制定针对Internet的应用标准,以适应本行业内部的信息交流和存档需要。
- XHTML:用于XML显示的标准(采用XML对HTML重新定义):除了文档的规范化要求更为严格外,它还可利用XML中名称空间的方法,借用其它标记语言的标记,丰富其显示效果。
- SVG:用来描述二维矢量图形和矢量/点阵混合图形的语言。
- GIF、JPEG和PNG格式的文件大,传输速度慢。SVG中定义了专门描述矢量图形的标记,这种图形用点和线来描述,可以大大减小文件长度,缩短传输时间。SVG中有定义图象过滤操作和描述动画的标记,大大丰富了网页显示效果。
- SMIL(Synchronized Multimedia Integration Language,同步多媒体集成语言) :用于视频类同步多媒体平台的标记语言,它描述了视频、音频、图象、文本等多种效果,可以用于培训教程等多媒体数据的网上传输。
- SOAP:通过Internet 通讯协议(HTTP)在Web系统中调用远程的对象。SOAP 文件是一种电子信封,可以将数据块(payload)放入该信封中,数据块由描述调用方法的标记和完成该方法所需的数据参数组成。
n)XML应用
传输结构化数据:
- 企业间电子商务。利用WWW实现商品信息的交换和接发定单,从而使通信成本降低,软件成本降低。利用XML进行电子目录等产品信息的交换和自动更新,可以实现目录的自动分类处理和服务,且可以实现多国语言的目录服务。
- 文档和知识管理。XML可以对各种文档和资料进行真正实用的知识管理。使用XML的文档结构化和文档语义化功能,可以统一进行多项目索引管理,且新老文档可以混合使用。
- 实现与媒体无关的发布。XML和XSL在一起可以取代现有的字处理和桌面出版格式,实际上可以提供一个单一的、完全国际化的格式,具有几乎无限的打印和在线发布的能力,在所有产品和所有平台上都完全能互操作。
- 实现企业间信息自动化处理。
o)XML的优点:
- XML提供了一种功能强大、灵活高效地表达数据内容的方法。
- XML具有很强的可扩展性(通过定义新的DTD/Schema)。
- XML中的数据内容与具体应用无关,使得用它表示的数据具有很好的使用效率和可重用性。
- XML通过DTD / Schema使得所包含的数据具有自解释性,可被不同程序用于不同目的。
- XML采用一种开放的、以文本为基础的格式,可用从文本编辑器直到可视化开发环境的任何工具创建和编辑,使得程序可以更简单。
- 数据和显示相分离,可由XSL指定如何显示数据。可以为同一数据指定不同的样式表用于不同输出,并很容易改变显示格式。
- 具有很强的链接能力,可以定义双向链接、多目标链接、扩展链接和两个文档间的链接。
- 易于处理。XML对格式的定义严格,并具有层次结构,处理起来更加容易。
- 是与厂商无关的标准,可以任选一个解析器来处理。