XML

XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
XML实例
  <?xml version="1.0" encoding="ISO-8859-1"?>   <bookstore>   <book id="No1">   <title>An Introduction to XML</title>   <author>Chunbin</author>   <year>2010</year>   <price>98.0</price>   </book>   <book id="No2">   <title>The Performance of DataBase</title>   <author>John</author>   <year>1996</year>   <price>56.0</price>   </book>   </bookstore>   上面的XML文档对应的树形结构如下:    

编辑本段特性
  XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:它极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。   XML与HTML的设计区别是:XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。   XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。   为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。   因为XML是W3C制定的,XML的标准化工作由W3C的XML工作组负责,该小组成员由来自各个地方和行业的专家组成,他们通过email交流对XML标准的意见,并提出自己的看法 (www.w3.org/TR/WD-xml)。因为XML 是个公共格式, (它不专属于任何一家公司),你不必担心XML技术会成为少数公司的盈利工具,XML不是一个依附于特定浏览器的语言   XML英文解释   The Extensible Markup Language (XML) is a general-purpose specification for creating custom markup languages.It is classified as an extensible language, because it allows the user to define the mark-up elements. XML's purpose is to aid information systems in sharing structured data, especially via the Internet, to encode documents, and to serialize data; in the last context, it compares with text-based serialization languages such as JSON and YAML.XML began as a simplified subset of the Standard Generalized Markup Language (SGML), meant to be readable by people via semantic constraints; application languages can be implemented in XML. These include XHTML,RSS, MathML, GraphML, Scalable Vector Graphics, MusicXML, and others. Moreover, XML is sometimes used as the specification language for such application languages.XML is recommended by the World Wide Web Consortium (W3C). It is a fee-free open standard. The recommendation specifies lexical grammar and parsing requirements.
编辑本段XML历史
  XML是从1996年开始有其雏形,并向 W3C(全球信息网联盟)提案,而在1998二月发布为W3C的标准(XML1.0)。 XML的前身是SGML(The Standard Generalized Markup Language),是自IBM从60年代就开始发展的 GML(Generalized Markup Language)标准化后的名称。   GML的重要概念:   文件中能够明确的将标示与内容区隔;所有文件的标签使用方法均一致.   1978年,ANSI将GML加以整理规范,发布成为SGML,1986年起为 ISO 所采用(ISO 8879),并且被广泛地运用在各种大型的文件计划中,但是SGML是一种非常严谨的文件描述法,导致过于庞大复杂(标准手册就有500多页),难以理解和学习,进而影响其推广与应用。   于是,人们对SGML进行了简化衍生出 HTML。HTML 简单,在初期没有任何定义文档外观的相关方法,仅用来在浏览器里显示网页文件。而后,随着因特网的发展,人们为了控制其文件样式,扩充了描述如何显现数据的卷标。在 Netscape 与 Microsoft 之间的浏览器大战后, HTML 标准权威性遭受重大的考验,所幸,到了HTML 4.0时,W3C 又恢复了其地位。   同时W3C意识到HTML的原则:   不能解决所有解释数据的问题 - 像是影音文件或化学公式、音乐符号等其它型态的内容。   效能问题 - 需要下载整份文件,才能开始对文件做搜寻的动作。   扩充性、弹性、易读性均不佳。   为了解决以上问题,专家们使用SGML精简制作,并依照HTML的发展经验,产生出一套使用上规则严谨,但是简单的描述数据语言:XML。 XML是在一个这样的背景下诞生的——是不是能有一个更中立的方式,让消费端自行决定要如何消化、呈现从服务端所提供的信息?   XML被广泛用来作为跨平台之间交互数据的形式,主要针对数据的内容,通过不同的格式化描述手段(XSLT,CSS等)可以完成最终的形式表达(生成对应的HTML,PDF或者其他的文件格式)。   而XML目的即在于提供一个对信息能够做精准描述的机制,藉以弥补 HTML 太过于表现导向的特质。
编辑本段作用
  丰富文件(Rich Documents)- 自定文件描述并使其更丰富   属于文件为主的XML技术应用   标记是用来定义一块数据应该如何呈现   解释数据(Metadata)- 描述其它文件或在线信息   属于数据为主的XML技术应用   标记是用来说明一块资料的意义   组态档案(Configuration Files)- 描述软件的组态参数
编辑本段简明语法
  SGML常用来定义针对HTML的文档类型定义(DTD),同时它也常用于编写XML的DTD。SGML的问题就在于,它允许出现一些奇怪的语法,这让创建HTML的解析器成为一个大难题:   1 某些起始标签不允许出现结束标签,例如HTML中<img>标签。包含了结束标签就会出现错误。   2 某些起始标签可以选择性出现结束标签或者隐含了结束标签   3 某些起始标签要求必须出现结束标签,例如HTML中<script>标签。   4 标签可以以任何顺序嵌套。即使结束标签不按照起始标签的逆序出现也是允许的,例如,This is a sample string是正确的。   5 某些特性要求必须包含值,例如<img src="picture.jpg">中的src特性。   6 某些特性不要求一定有值,例如中的nowrap特性。   7 定义特性的两边有没有加上双引号都是可以的,所以<img src="picture.jpg">和<img src=picture.jpg>都是允许的。   这些问题使建立一个SGML语言的解析器变成了一项艰巨的任务。判断何时应用以上规则的困难导致了SGML语言的定义一直停滞不前。以这些问题作为出发点,XML逐渐步入我们的视野。   XML去掉了之前令许多开发人员头疼的SGML的随意语法。在XML中,采用了如下的语法:   1 任何的起始标签都必须有一个结束标签。   2 可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线(/),例如<tag />。XML解析器会将其翻译成<tag></tag>。   3 标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如this is a samplestring。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的。   4 所有的特性都必须有值。   5 所有的特性都必须在值的周围加上双引号。   这些规则使得开发一个XML解析器要简便得多,而且也除去了解析SGML中花在判断何时何地应用那些奇怪语法规则上的工作。仅仅在XML出现后的前六年就衍生出多种不同的语言,包括MathML、SVG、RDF、RSS、SOAP、XSLT、XSL-FO,而同时也将HTML改进为XHTML。   如果需要关于SGML和XML具体技术上的对比,请查看W3C的注解,位于:http:///TR/NOTE-sgml-xml.html   如今,XML已经是世界上发展最快的技术之一。它的主要目的是使用文本以结构化的方式来表示数据。在某些方面,XML文件也类似于数据库,提供数据的结构化视图。这里是一个XML文件的例子:    

编辑本段文档结构
  每个XML文档都由XML序言开始,在前面的代码中的第一行便是XML序言,<?xml version="1.0"?>。这一行代码会告诉解析器和浏览器,这个文件应该按照前面讨论过的XML规则进行解析。第二行代码,<books>,则是文档元素(document element),它是文件中最外面的标签(我们认为元素(element)是起始标签和结束标签之间的内容)。所有其他的标签必须包含在这个标签之内来组成一个有效的XML文件。XML文件的第二行并不一定要包含文档元素;如果有注释或者其他内容,文档元素可以迟些出现。   范例文件中的第三行代码是注释,你会发现它与HTML中使用的注释风格是一样的。这是XML从SGML中继承的语法元素之一。   页面再往下的一些地方,可以发现<desc>标签里有一些特殊的语法。<![CDATA[ ]]>代码用于表示无需进行解析的文本,允许诸如大于号和小于号之类的特殊字符包含在文本中,而无需担心破坏XML的语法。文本必须出现在<![CDATA[和]]>之间才能合适地避免被解析。这样的文本称为Character Data Section,简称CData Section。  XML 文档结构
下面的一行就是在第二本书的定义之前的:   <?page render multiple authors ?>   虽然它看上去很像XML序言,但实际上是一种称为处理指令(processing instruction)的不同类型的语法。处理指令(以下简称PI)的目的是为了给处理页面的程序(例如XML解析器)提供额外的信息。PI通常情况下是没有固定格式的,唯一的要求是紧随第一个问号必须至少有一个字母。在此之后,PI可以包含除了小于号和大于号之外的任何字符串序列。
编辑本段XML文档有效性
  结构良好的XML文档   如果某个文档符合XML语法规范,那么我们就说这个文档是“结构良好”的文档。使用本书讲到的XMLSpy 2006工具就可以测试某文档是否为结构良好的XML文档。   有效的XML文档   所谓有效的XML文档是指通过了DTD的验证的,具有良好结构的XML文档,在此大家要明白XML文档可分为结构良好的XML文档和有效的XML文档,以及他们之间的关系。即具有结构良好的XML文档并不一定就是有效的XML文档,反之一个有效的XML文档必定是一个结构良好的XML文档。   XML文档的解析方式   当前有两种解析方式: dtd (文档类型定义)和schema ( XML 模式)   DTD实际上可以看作一个或多个XML文件的模板,这些XML文件中的元素、元素的属性、元素的排列方式/顺序、元素能够包含的内容等,都必须符合DTD中的定义。   DTD的分类:   DTD可以是一个完全独立的文件,也可以在XML文件中直接设定。所以,DTD分为外部DTD(在XML文件中调用另外已经编辑好的DTD)和内部DTD(在XML文件中直接设定DTD)两种。比如,有几十家相互联系的、合作伙伴关系的公司、厂商,他们相互之间的交换电子文档都是用XML文档。那么我们可以将这些XML文档的DTD放在某个地方,让所有交换的XML文档都使用此DTD,这是最方便的做法,同时也适用于公司内部的XML文件使用。   XML Schema是以XML语言为基础的,它用于可替代DTD。 一份XML schema文件描述了XML文档的结构。 XML Schema语言也被称为XML Schema Definition (XSD)(XML Schema定义)我们认为XML Schema很快就会替代DTD在大多数的网络应用程序中被广泛使用。 XML Schema针对将来的额外内容是可扩展的 ; XML Schema内容比DTD丰富,作用也更大 ; XML Schema是以XML语言编写而成的 ; XML Schema支持数据类型 ; XML Schema支持名称空间(namespaces);XML Schema于2001年5月2日成为W3C推荐使用的标准,在W3C 教程中你能阅读到更多关于XML Schema标准。
编辑本段XML文档对网站的重要性
  《互联网论坛收录开放协议》是搜索引擎制定的网站内容收录标准,可在网站根目录制作成遵循此开放协议的XML格式的网页供搜索引擎索引,将网页信息主动、及时地告知各大搜索引擎。 采用了《互联网论坛收录开放协议》,就相当于网页被搜索引擎订阅,通过搜索引擎平台,网民将有可能在更大范围内更高频率地访问到您的网站,进而为您的网站带来潜在的流量。   以百度搜索引擎为例,将制作好的XML文件命名为sitemap_baidu.xml上传到您网站根目录下,并保证文件所在的url地址能够被百度spider正常访问。例如,网站为post.baidu.com,则将xml文件上传至post.baidu.com/sitemap_baidu.xml   当百度spider发现了xml文件后,会根据上面提供的参数自动对xml文件进行更新,并抓取高质量的内容。
编辑本段XML和HTML的差异
  XML和HTML的不同可以归纳为3点:   ① XML扩展性比HTML强   XML(Extensible Markup Languages)是扩展标记语言的英语缩写,他可以创建个性化的标记语言,可以称之为元语言。XML的标记语言可以自定义,这样可以提供更多的数据操作,而不像HTML一样,只能局限于按一定的格式在终端显示出来。HTML的功能只有浏览器放入显示和打印,仅仅适合静态网页的要求。   ② XML的语法比HTML严格   由于XML的扩展性强,它需要稳定的基础规则来支持扩展。它的严格规则为:   1、起始和结束的标签相匹配   2、嵌套标签不能相互嵌套   3、区分大小写   相对应XML的严格规则,HTML语言并没有规定标签的绝对位置,也不区分大小写,而这些全部由浏览器来完成识别和更正。   ③ XML与HTML互补   
XML可以获得应用之间的相应信息,提供终端的多项处理要求,也能被其他的解析器和工具所使用,在现阶段,XML可以转化成相应的HTML,来适应当前浏览器的需求。   XML 工具   XML如果有一个好的编辑器就能够减少很多麻烦   1 、XML Notepad   一种软件   软件大小: 1872 KB   软件语言: 英文   软件类别: 国外软件 / 共享版 / 字体工具   应用平台: Win9x/NT/2000/XP/2003   微软发布的XML Notepad,这是一个简单+好用的XML阅读和编辑工具,支持多种语法显示和数型结构排列并提供了大量编写XML所需的工具.   2、XML Spy   3、Xeena   4、Xmetsal
编辑本段注释
  有些时候,希望在XML文档中加入一些用做解释的字符数据,并且希望XML处理器不对他们进行任何处理。这种类型的文本称作注释文本。在XML中,注释的方法与HTML完全相同,使用"<!--"和"-->"将注释文本括起来,注释还有以下规定:   ·注释不能被嵌套;   ·在注释文本中不能出现字符"-"或"—";   ·不要把注释文本放在标记之中,同样不要把注释文本放在实体声明之前或实体声明中。
编辑本段处理指令PI
  处理指令(Processing Instruction)是用来给处理XML文档的应用程序提供信息的,XML解析器把这些信息原封不动地传给应用程序,由应用程序来解释这个指令,遵照它所提供的信息进行处理。处理指令应该遵循下面的格式:   <? 处理指令名 处理指令信息?>   下面是一个例子,它是描述辞典信息的XML文档:   <?xml version="1.0"encoding="UTF-8" standalone="no"?>   <?xml-stylesheet type="text/xsl"href="mystyle.xsl"?>   <辞典>   <词条>   <?targetProgram Save:Useful Information about XML?>   <词目>XML</词目>   <解释>XML是一种可扩标记语言,它可用以规定新的标记规则,并根据这个规则组织数据。</解释>   <示例>   <!--XML示例>   <![CDATA[   <商品>   <类型>食品类</类型>   <价格>80元</价格>   </商品>   ]]>   </示例>   </词条>   </辞典>   其中的内容,   <?targetProgram Save:Useful Information about XML?>   即为PI部分:将指令Save:Useful Information about XML传递给应用程序targetProgram。   处理指令很少使用,而且XML团体并不赞成使用处理指令,特别不赞成随意地使用处理指令。尽管如此,如果有足够的理由使用它,也无需犹豫。利用处理指令,正好可以使用在HTML里只能用在注释里的信息。用户对注释中的信息能否传递给应用程序没有把握,但是处理指令一定会传递给应用程序。
编辑本段XML的优势
  XML 的优势有以下六个方面:   
[align=left][/align]①XML可以从HTML中分离数据   通过XML,你可以在HTML文件之外存储数据。在不使用XML时,HTML用于显示数据,数据必须存储在   HTML文件之内;使用了XML,数据就可以存放在分离的XML文档中。这种方法可以让你集中精力去到使用   HTML做好数据的显示和布局上,并确保数据改动时不会导致HTML文件也需要改动。这样可以方便维护页面。   XML数据同样可以以“数据岛”的形式存储在HTML页面中。你仍然可以集中精力到使用HTML格式化和显示数据上去。   ②XML用于交换数据   通过XML,我们可以在不兼容的系统之间交换数据。在现实生活中,计算机系统和数据库系统所存储的数据有N^N种形式,对于开发者来说,最耗时间的就是在遍布网络的系统之间交换数据。把数据转换为XML格式存   储将大大减少交换数据时的复杂性,并且还可以使得这些数据能被不同的程序读取。   ③XML和B2B   使用XML,可以在网络中交换金融信息。在不远的将来,我们可以期望看到很多关于XML和B2B(BusinessToBusiness)的应用。XML正在成为遍布网络的商业系统之间交换金融信息所使用的主要语言。   许多与B2B有关的完全基于XML的应用程序正在开发中。   ④XML可以用于共享数据   通过XML,纯文本文件可以用来共享数据。既然XML数据是以纯文本格式存储的,那么XML提供了一种与软件和硬件无关的共享数据方法。这样创建一个能够被不同的应用程序读取的数据文件就变得简单了。同样,我们升级操作系统、升级服务器、升级应用程序、更新浏览器就容易多了。   XML可以用于存储数据   利用XML,纯文本文件可以用来存储数据。大量的数据可以存储到XML文件中或者数据库中。应用程序可以读写和存储数据,一般的程序可以显示数据。   ⑤XML可以充分利用数据   使用XML,你的数据可以被更多的用户使用。既然XML是与软件、硬件和应用程序无关的,所以可以使你的数据可以被更多的用户、更多的设备所利用,而不仅仅是基于HTML标准的浏览器哦。别的客户端和应用程序可以把你的XML文档作为数据源来处理,就像他们对待数据库一样,你的数据可以被各种各样的“阅读器”处理,这时对某些人来说是很方便的,比如盲人或者残疾人。   ⑥XML可以用于创建新的语言   XML是WAP和WML语言的母亲。无线标记语言,用于标识运行于   手持设备上的Internet程序。
编辑本段XML的层叠样式
  XML要将内容和表现分离, Web建造者需要新的方法来控制设计, 显示和输出.。   Style sheet 是问题的答案. 目前, 有三种可用于XML的 style sheet::   Cascading Style Sheets (CSS)   Extensible Style Language (XSL)   Document Style Semantics and Specification Language (DSSSL).。   如果5.0版的浏览器支持XML, XML对现有的CSS标准的支持将会处理大部分基本的风   格和页面问题. 但是CSS对于专业出版商可能不够强大. 所以, 另一端存在着   DSSSL, 一个在使用SGML的高端出版商中流行的ISO (国际标准组织)标准. 然而,   DSSSL是复杂的, 它处理的打印文档管理在Web上很少有用.。   现在剩下了 Extensible Style Language (XSL), 特别为XML而写的style-sheet.   XSL目前上交给了W3C作为一个提议, 它给了Web开发者和用户较HTML更多的表现灵   活性. 例如, HTML的 <H2> 标识符在所有浏览器上的表现是基本一样的, 但是XSL   让开发者指定他们的页面元素如何表现 (尽管用户可以在个人设置中覆盖它).。   XSL较CSS更强大, 因为它使Web建造者创建可以动态改变其表现的文档.。例如, 你   可以包含这样的程序语句, "如果一个XML元素的属性为数值10, 显示为绿色, 否则   为黑色." 或者你可以将"仅供内部使用"作为属性给一个段落标上, 这样它在某些   情况下不会出现. XSL被设计用于脚本语言如JavaScript。

你可能感兴趣的:(xml)