首页 | 汉语字典 | 词语字典 | 成语字典 | |
中药名方 | 民间偏方 | 民间验方 | 自然天文 | |
诗词 | 粥谱 | 饮食 | 体育 | 酒方 |
金融 | 交通 | 动物 | 植物 | 健康 |
中草药 | 数理化 | 微生物 | 电脑网络 | 五笔编码 |
xml
█xml是extensible markup language的缩写。扩展标记语言xml是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然xml占用的空间比二进制数据要占用更多的空间,但xml极其简单易于掌握和使用。
xml与access,oracle和sql server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,xml仅仅是展示数据。事实上xml与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使xml与众不同。
xml的简单使其易于在任何应用程序中读写数据,这使xml很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持xml,那就意味着程序可以更容易的与windows、mac os, linux以及其他平台下产生的信息结合,然后可以很容易加载xml数据到程序中并分析他,并以xml格式输出结果。
xml的前身是sgml(the standard generalized markup language),是自ibm从60年代就开始发展的gml(generalized markup language)
同html一样, xml (可扩展标识语言)是通用标识语言标准(sgml)的一个子集,它是描述网络上的数据内容和结构的标准。尽管如此,xml不象html,html仅仅提供了在页面上显示信息的通用方法(没有上下文相关和动态功能) ,xml则对数据赋予上下文相关功能,它继承了sgml的大部分功能,却使用了不太复杂的技术。.
为了使得sgml显得用户友好,xml重新定义了sgml的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得sgml在设计网站时显得复杂化。xml保留了sgml的结构化功能,这样就使得网站设计者可以定义自己的文档类型,xml同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。
因为xml是w3c制定的,xml的标准化工作由w3c的xml工作组负责,该小组成员由来自各个地方和行业的专家组成,他们通过email交流对xml标准的意见,并提出自己的看法 (www.w3.org/tr/wd-xml)。因为xml 是个公共格式, (它不专属于任何一家公司),你不必担心xml技术会成为少数公司的盈利工具,xml不是一个依附于特定浏览器的语言
xml(可扩展标记语言)是从称为sgml(标准通用标记语言)的更加古老的语言派生出来的。sgml的主要目的是定义使用标签来表示数据的标记语言的语法。
标签由包围在一个小于号(<)和一个大于号(>)之间的文本组成,例如<tag>。起始标签(start tag)表示一个特定区域的开始,例如<start>;结束标签(end tag)定义了一个区域的结束,除了在小于号之后紧跟着一个斜线(/)外,和起始标签基本一样,例如</end>。sgml还定义了标签的特性(attribute),它们是定义在小于号和大于号之间的值,例如<img src="picture.jpg">中的src特性。如果你觉得它看起来很熟悉的话,应该知道,基于sgml的语言的最著名实现就是原始的html。
sgml常用来定义针对html的文档类型定义(dtd),同时它也常用于编写xml的dtd。sgml的问题就在于,它允许出现一些奇怪的语法,这让创建html的解析器成为一个大难题:
1 某些起始标签不允许出现结束标签,例如html中<img>标签。包含了结束标签就会出现错误。
2 某些起始标签可以选择性出现结束标签或者隐含了结束标签,例如html中<p>标签,当出现另一个<p>标签或者某些其他标签时,便假设在这之前有一个结束标签。
3 某些起始标签要求必须出现结束标签,例如html中<script>标签。
4 标签可以以任何顺序嵌套。即使结束标签不按照起始标签的逆序出现也是允许的,例如,<b>this is a <i> sample </b> string</i>是正确的。
5 某些特性要求必须包含值,例如<img src="picture.jpg">中的src特性。
6 某些特性不要求一定有值,例如<td nowrap>中的nowrap特性。
7 定义特性的两边有没有加上双引号都是可以的,所以<img src="picture.jpg">和<img src=picture.jpg>都是允许的。
这些问题使建立一个sgml语言的解析器变成了一项艰巨的任务。判断何时应用以上规则的困难导致了sgml语言的定义一直停滞不前。以这些问题作为出发点,xml逐渐步入我们的视野。
xml去掉了之前令许多开发人员头疼的sgml的随意语法。在xml中,采用了如下的语法:
8 任何的起始标签都必须有一个结束标签。
9 可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线(/),例如<tag />。xml解析器会将其翻译成<tag></tag>。
10 标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如<b>this is a <i>sample</i> string</b>。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的。
11 所有的特性都必须有值。
12 所有的特性都必须在值的周围加上双引号。
这些规则使得开发一个xml解析器要简便得多,而且也除去了解析sgml中花在判断何时何地应用那些奇怪语法规则上的工作。仅仅在xml出现后的前六年就衍生出多种不同的语言,包括mathml、svg、rdf、rss、soap、xslt、xsl-fo,而同时也将html改进为xhtml。
如果需要关于sgml和xml具体技术上的对比,请查看w3c的注解,位于:http://www.w3. org/tr/note-sgml-xmll
如今,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。
下面的一行就是在第二本书的定义之前的:
<?page render multiple authors ?>
虽然它看上去很像xml序言,但实际上是一种称为处理指令(processing instruction)的不同类型的语法。处理指令(以下简称pi)的目的是为了给处理页面的程序(例如xml解析器)提供额外的信息。pi通常情况下是没有固定格式的,唯一的要求是紧随第一个问号必须至少有一个字母。在此之后,pi可以包含除了小于号和大于号之外的任何字符串序列。
最常见的pi是用来指定xml文件的样式表:
这个pi一般会直接放在xml序言之后,通常由web浏览器使用,来将xml数据以特殊的样式显示出来。
←←←上一条
下一条→→→
m.zd9999.com 字典大全
本站信息均由互联网搜集而来,本站不对信息的正确性负责,仅供大家参考研讨,有不妥之处还请来信指出,谢谢!