基础知识认识XML:下一代网络的基石

随着互联网的迅猛发展和普及,人们可以通过计算机与互联网联接,从世界各地实时的接收和发送大量、最新的信息,但在信息交换的过程中存在着一个突出的问题,就是多种多样的数据格式,给信息的有效使用带来了障碍。所以在信息时代,如何以最便捷、最可靠、最有效的方式获取所需的信息是一个很大的困扰。人们期待着能够找到一种可以描述任何逻辑关系的数据格式来统一电子数据的存储,从而不再因为数据格式的不统一而苦恼和困惑。目前,能够担当此任的就是xml(extensible markup language,可扩展符号化语言)。

可以说,xml的出现给数据交换带来了一场革命;xml的出现是至今为止最聪明的一种符号化语言;xml成为下一代网络发展的基石。

xml诞生的背景

sgml介绍

说到xml,我们一定要先了解一下sgml (standard generalized markup language) 。sgml最初是由ibm开发的一种用于排版的符号化语言,称为gml。经过若干年的发展,1984年国际标准化协会(iso)开始对此提案进行讨论,于1986年正式承认sgml为国际标准规范(iso8879)。

 图:xml作为电子数据交换的统一格式

sgml实际上是一种通用的文档结构描述符号化语言,主要用来定义文献模型的逻辑和物理类结构。一个sgml语言文件由三部分组成,即语法定义、文件类型定义dtd(definition type document)和文件实例。语法定义部分定义了文件类型定义和文件实例的语法结构;文件类型定义部分定义了文件实例的结构和组成结构的元素类型;文件实例是sgml语言程序的主体部分。

在sgml的实际使用中,每一个特定的dtd都定义了一类文件。因此,人们习惯上把具有某一特定dtd的sgml语言,称为某某符号化语言。这样sgml就成为那些派生语言的元语言。

html的出现

1989年,欧洲物理量子实验室(cern)的信息专家蒂姆·伯纳斯·李发明了超文本链接语言, 使用此语言能轻松地将一个文件中的文字或图形连到其它的文件中去,这就是html的前身。1991年,蒂姆·伯纳斯·李在cern定义了html语言的第一个规范,之后成为w3c组织为专门在互联网上发布信息而设计的符号化语言规范。可以说,html(hypertext markup language)是sgml的一个实例,它的dtd作为标准被固定下来。因此,html不能作为定义其它符号化语言的元语言。

作为world wide web的一个组成部分,html语言发展很快,在短短的几年里,它已历经了html1.0、html2.0和html3.0、html4.0等多个版本,同时dhtml (动态)、vhtml(虚拟)、shtml等也飞速发展起来。html以简单精练的语法、极易掌握的通用性与易学性,使web网页可以亲近于每一个普通人,互联网因此得以普及发展以至今日辉煌。

但是,目前的html还不稳定,不同的浏览器会产生不同的显示效果。此外  ,由于html对超级链接支持不足,并缺乏空间立体描述,处理图形、图像、音频、视频等多媒体能力较弱,图文混排功能简单,不能表示多种媒体的同步关系等缺点,也影响html的大规模应用以及用于复杂的多媒体数据处理。

xml的诞生

xml是由w3c于1998年2月发布的一种标准。它同样是sgml的一个简化子集,它将sgml的丰富功能与html的易用性结合到web的应用中,以一种开放的、自我描述方式定义了数据结构。在描述数据内容的同时能突出对结构的描述,从而体现出数据之间的关系。这样所组织的数据对于应用程序和用户都是友好的、可操作的。之后,w3c又用xml设计出一个与html4.01功能等价的语言,称为xhtml1.0 (extensible hyper text markup language)使之与html相兼容。

xml是sgml的一个子集,严格地讲,xml也还是sgml。与html不同的是xml有dtd,因而也可以像sgml那样作为元语言来定义其它文件系统,或称其它符号化语言。如果把符号化语言分为元符号化语言和实例符号化语言的话,sgml和xml都是元符号化语言,而html和由xml派生的xhtml都是实例符号化语言。

所以可以说,xml的出现,使html存在的问题可以得到很好的解决。

xml的特点

xml作为引人注目的核心技术应用于btob、web服务、.net等许多系统中。xml是it界谈话中不可缺少的一个关键词。因此,xml对于计算机工程师来说,是必不可少的一门知识。

xml可以作为电子数据交换的统一格式

10年来,web存储格式语言,从html发展到dhtml,直到今天最新的xml,发展的每一步,都是为了适应web应用发展的需求。虽然xml原本是为出版界设计的一种文档描述语言,即sgml派生而来的一种符号化语言,但是它也是为互联网的数据交换而设计的。从而,xml不仅仅是sgml定义的用于描述的文档,而且在电子商务等各个领域使数据交换成为可能。

xml能够应用于各种领域的原因,就是xml具有到目前为止其他方法所不具备的数据描述特点,控制信息不是采用应用软件的独有形式,而是采用谁都可以看得懂的标记形式来表现,所以xml最适合作为数据交换的标准,这也是 xml受人关注的原因。

用xml可以对数据关系进行定义形成特有的标准,因此各行各业都在建立自己的行业化标准,以应用于网络上处理电子商务,把后台系统通过web站点表现出来。xml还可以作为数据仓储,一个xml文件就是一个小的数据库,通过对数据关系的定义形成各种关系、属性的数据,实现数据交换、上下文检索、多媒体传输。

xml具有其他方法所不具备的数据描述特点

xml是以文本形式来描述的一种文件格式 由于xml是以文本形式描述的,所以适合于各种平台环境的数据交换。同样由于使用文本来描述内容,可以越过不同平台的障碍进行正常的数据交换。但是,文本形式也会因为文字代码的不同造成不能阅读的问题,在这一点上xml有着非常完美的解决方案。

xml使用有意义的标记(tag) 在xml中文件是由一个个称之为元素(element)的部件构成。使用标记(tag )来描述元素。由于使用了标记的描述方法,可以保持原数据的意思和构造在互联网上进行数据交换,进而可以保持不同系统之间数据交换的灵活性。

为什么具有上述的优点呢?首先是使用标记描述数据的话,可以具体指出开始元素(开始标记)、结束元素(结束标记),在开始和结束元素之间是要表现的元素数据。这就是用元素表现数据的方法。

标记可以作为子元素 xml中用标记符号化的元素可以作为子元素形成数据嵌套。

xml的标记名和关系可以自由定义 就像许多文章中介绍的那样“xml是用标记描述的语言”,而且xml的标记名标记的层次结构等都可以由用户定义。也就是说,根据xml语法可以定义用户特殊用途的标记集合形成一个全新的符号化语言。这就是xml“可扩充(extensible)”名字的来源。

可以说,xml是“定义语言的语言”,也即是一种元语言。由于xml具有元语言的功能,所以可以成为描述电子商务数据、多媒体演示数据、数学公式等各种各样数据应用语言的基础语言。下面提供几个以xml为基础生成的数据描述语言(本文亦称为xml应用语言)的应用例子,即出版媒体:open ebook(电子书籍)、newsml(新闻媒体);科学:mathml(数学表达式)、cml(化学);电子商务:cxml(电子商务)、fpml(金融);多媒体:smil(多媒体演示)、bml(卫星数据传送)。

另外,就像我们使用的自然语言,讲这种语言的人多了就会把它当作不认识的人之间的初次交流时的工具。同样,在特定的企业之间或在业界内归纳出一套标记集合,即约定用一套特定的xml应用语言作为交流工具是很有价值的。但是,许多xml用户都是用业界或集团标准化以后的应用语言,很少有人自己制作一套新的xml应用语言。

xml的不足之处

xml作为数据描述语言是非常优秀的,但是并不是所有的电子数据都是转换到xml是最有效的。例如xml的文本表现手法、标记的符号化等会导致xml数据比二进制表现方法数据量增加,尤其当数据量很大时,会成为很大的问题。也就是说,xml的导入要根据具体需求,比较其优缺点,在充分发挥xml优点的领域进行。

尽管xml具备了作为通用数据描述语言的优秀特征,但是xml不是编程语言,说到底它是一种数据描述的技术。因此xml文件的显示、文件结构的变更、应用程序的操作等xml相关技术也是非常重要的。

xml的主要相关技术分类

xml是描述内容的数据格式,在使用xml数据时,还需要xml数据的显示、打印、数据结构的变更等许多相关技术。如果这些相关技术也都标准化的话,即使在不同平台开发应用程序也都可以用相同的方法,使开发难度降低。

处理xml数据时,一定要使用xml processor(也就是xml parser),把xml数据结构的检查等交给xml parser去做。

关于xmlprocessor有许多软件产品,当然,也有不少免费的。开发工程师只需将xml数据的检查工作交给xmlprocessor即可,集中精力开发应用程序部分,减少了不小的负担。

应用程序对接收到xmlprocessor传递来的xml树进行处理,向用户提供服务。此时,不管是电子商务,还是知识管理,都是定义xml数据结构的技术、显示打印xml数据的技术、xml数据结构变更技术、xml数据联接整合技术、用程序操作xml树的api和其它应用技术的组合。

定义xml数据结构的技术

在xml中用户可以自由的定义标记名以及与标记相关的元素及元素层次,这是xml的主要特征。但是,如果定义的都是只有自己才能理解的标记,就无法与其他人进行交换数据。为了在企业团体之间进行xml格式的数据的交换,xml数据的结构、元素的名称、元素的数据类型以及元素的亲子关系都需要仔细考虑,一定要设计成人和系统能够理解的语言。这样设计的xml数据结构在xml领域称为schema,描述schema的语言称为schema语言。

dtd 最普通xml的schema语言是dtd(document type definition:文档类型定义)。dtd是远在sgml时期就一直使用的schema语言,1998年制订xml语法时,沿用了描述schema的dtd。

xml schema 在xml中,所谓的“dtd”就是schema文件。dtd描述的schema应用非常广泛。但是,随着xml的应用的发展,从sgml继承下来的dtd显然有许多不足的地方。为了解决这些问题,w3c制订了schema语言xml schema。

xml schema中有下述dtd中不具备的特征:多个schema复合使用xml名字空间;用xml语法描述;可以详细定义元素的内容及属性值的数据类型。

由于在xml schema中的数据结构也都是用xml数据来表现的,与dtd相比数据量增大很多。但是,xml schema的表现力要远比dtd强得多,不仅支持字符串、10进制数、浮动小数点、日期等,还支持m回以上和n回以下出现的元素(m、n为整数)的指定。例如“邮编xxxxxx”(x是字符)是邮政编码元素的格式指定等都是dtd所不能表现的内容。xml schema于2001年5月成为w3c的推荐规范,对xml的利用产生了重要的影响。

显示和打印xml数据的技术

xml数据定义打印、显示排版信息主要有3种方法: 用css定义打印和显示排版信息;用xslt转换到html进行显示和打印;用xslt转换成xsl的fo(formatter object) 进行显示和打印。

css 指定文件排版信息的数据称为样式表,描述html样式表的语言是css(cascading style sheet)。这里介绍的是使用css来浏览、打印xml数据的方法,具体来讲css是给html的每个标记元素指定排版信息,同样也可以用来给xml的标记元素定义显示排版方法。css不能改变xml的结构,只能在简单的定义排版信息的时候使用。

xslt 还有一种是使用改变xml数据结构的语言xslt(extensible stylesheet language transformations)的方法。使用xslt,可以改变xml元素名、属性名、元素层次结构等,根据xslt的指定,可以将xml的元素转换为html元素,则可以是用浏览器浏览。現在,这种用浏览器显示xml数据的方法是最常用的方法。

xsl xsl(extensible stylesheet language)是用xml描述的文件。它是一种可以详细描述商用印刷排版水平的规范,xsl排版信息的定义。用xsl指定排版信息的方法由2步组成:

将要打印、显示的原xml树进  行结构变换,追加排版信息生成新的树结构(xsl-fo树);将这个新树传递给xsl-fo对应的打印和显示引擎进行相应的操作。

xml数据结构转换技术

在xml的应用中,有的xml数据需要转换到其他结构的xml数据,为此w3c制订了描述标准化的xml数据结构转换规则的语言xslt。

xslt是为显示和打印xml,而从xsl规范独立出来的规范,原本是描述排版信息的语言,因此,用xslt制作的程序称为样式表。但是,xslt也可以用于排版以外的各种用途。

例如,使用了不同schema(标记集合)的企业团体之间交换xml数据时,需要将使用了各公司独自数据格式的xml数据向双方系统共同采用的业界标准格式结构转换以后,才可能进行数据交换。在xslt中不仅描述了转换规则,结构转换还可以交给xslt样式表的执行引擎(xslt processor)。为了跨过业界之间的障碍实现数据交换,其它文件格式的数据交换也会经常发生,尽管如此,结构转换时如果利用xslt,可以不改更程序只改变样式表就可以了。

随着xml的普及,xslt的应用也会更加广泛。在windows上,只需进行简单的环境设定,用ie 5.x和任意一个文本编辑器就可以制作和执行xslt。即使只会一点点制作xslt样式表的方法,就可以很简单的进行xml的处理了,非常方便。

随着计算机和网络技术的不断发展深入xml技术的应用也将不断扩大。该技术不仅在传统的银行之间数据交换、证券公司对上市公司情况的数据统计、图书馆对图书的查询检索、企事业文件档案管理等领域的应用更加迫切,在电子商务、搜索引擎软件、自动智能翻译、文档发声软件等领域也将得到更大的发展,特别是近期发展起来的移动通讯网络服务的发展,将使各种各样的信息经过格式转换到达pda、甚至到达手持电话机,将来我们可以通过网络数据格式转换服务使小小的手机可以阅读到大千世界的丰富信息。

时间: 2024-11-01 11:51:18

基础知识认识XML:下一代网络的基石的相关文章

RESTful_基础知识

前言 本篇主要是RESTful的基础知识整理,主要是为了将要开始的Openstack架构主题做知识积累.理解好RESTful的设计思想无论是对学习Openstack架构还是Openstack Dashboard实现都是一件事半功倍的事情. RESTful REST(Representational State Transfer):是一种软件架构的设计风格,而不是一种标准.主要用于C/S架构的软件设计,也能很好的支持B/S架构,为软件设计提供了一组原则和约束条件,但这是原则和约束的条件均不具有标准

Java核心技术 卷Ⅰ 基础知识(原书第10版)

Java核心技术系列 Java核心技术 卷Ⅰ 基础知识 (原书第10版) Core Java Volume I-Fundamentals (10th Edition) [美] 凯S.霍斯特曼(Cay S. Horstmann) 著 周立新 陈 波 叶乃文 邝劲筠 杜永萍 译 图书在版编目(CIP)数据 Java核心技术 卷Ⅰ 基础知识(原书第10版) / (美)凯S. 霍斯特曼(Cay S. Horstmann)著:周立新等译. -北京:机械工业出版社,2016.8 (Java核心技术系列) 书

基础知识__WebService

基础知识__WebService 本文由 Luzhuo 编写,请尊重个人劳动成果,转发请保留该信息. 原文: http://blog.csdn.net/Rozol/article/details/50511873 微博: http://weibo.com/u/2524456400 这是一篇关于WebService的基础知识的整理 介绍 提供一种通过web方式访问的Api. 解决两个系统/应用之间的远程调用.(跨语言,跨平台) 简单应用(原理) New –> java project –> -

基础知识:认识ASP.NET的基础知识

asp.net ASP.NET是微软的ASP技术的最新版本. 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解: WWW, HTML 以及网站构建的基础知识 脚本语言 比如JavaScript 或者 VBScript 有关服务器脚本的基础知识 什么是ASP? ASP是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术. ASP是一项微软公司的技术 ASP指Active Server Pages(动态服务器页面) ASP是运行于ISS之中的程序 IIS指Interne

PHP初学者入门基础知识

PHP入门基础知识总结及入门实例详细讲解. 一,PHP脚本代码标记 PHP的脚本是文件中一对特殊标记所包括的内容,如ASP是"<%....%>",PHP可看成是"<?...?>". 然而为了适应XML标准以将PHP嵌入到XML或XHTML中,PHP不建议使用短格式的"<?...?>",而建议使用长格式标记"<?php...?>" 此外PHP代码块还支持 <script la

认识ASP.NET的基础知识

ASP.NET是微软的ASP技术的最新版本. 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解: WWW, HTML 以及网站构建的基础知识 脚本语言 比如JavaScript 或者 VBScript 有关服务器脚本的基础知识 什么是ASP? ASP是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术. ASP是一项微软公司的技术 ASP指Active Server Pages(动态服务器页面) ASP是运行于ISS之中的程序 IIS指Internet Inform

ASP.NET的基础知识

ASP.NET是微软的ASP技术的最新版本. 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解: WWW, HTML 以及网站构建的基础知识 脚本语言 比如JavaScript 或者 VBScript 有关服务器脚本的基础知识 什么是ASP? ASP是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术. ASP是一项微软公司的技术 ASP指Active Server Pages(动态服务器页面) ASP是运行于ISS之中的程序 IIS指Internet Inform

Android手机UI设计分辨率基础知识

1.术语和概念 Android手机ui设计分辨率基础知识 Screen size(屏幕尺寸) 指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸 摩托罗拉milestone手机是3.7英寸 Aspect Ratio(宽高比率) 指的是实际的物理尺寸宽高比率,分为long和nolong Milestone是16:9,属于long Resolution(分辨率) 和电脑的分辨率概念一样,指手机屏幕纵.横方向像素个数 Milestone是854*480 DPI(dot

Java Mybatis框架入门基础教程_基础知识

一.Mybatis介绍 MyBatis是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架.MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去 设置参数和获取检索结果.MyBatis能够使用简单的XML格式或者注解进行来配置,能够映射基本数据元素.Map接口和POJOs(普通java对象)到数据库中的记录. 二.MyBatis工作流程 (1)加载配置并初始化 触发条件:加载配置文件 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个