导读:在标记语言出现之前,计算机中的数据一直都是以神秘的二进制在进行处理,但是,标记语言的出现,慢慢的改变了这种认识。那么,标记语言都经过了什么样的发展呢?它又有什么用处呢?

一、追根溯源(XML的产生)

1.1,SGML

1969年,IBM的研究人员:Ed Mosher、 Ray Lorie、Charies F.Goldfarb发明了第一种标记语言——GML(Generalized Markup Languge,通用标记语言)。GML是一种资参考的语言,它可以用于标记任何数据集合的结构,同时它也是一种元语言(Meta-language),即能够描述其他语言及其语法和词汇表的语言。

1974年,Goldfarb提出了在GML中实现的语法合法性分析器的概念,即在处理一个文档之前,先读取改文档的类型定义,然后由此检查标记语言使用的正确性,而不必实际处理这个文档。此后,GML发展成了SGML(Standard Generalized Markup Language,标准通用标记语言)。此后,在Goldfarb的带领下,SGML得到发展。

1986年,SGML被国际标准化组织(ISO)接受为国际性的数据存储和交换的标准,收录在ISO-8897中。

注意:标记,是一种传输元数据(机关与数据集本身的信息)的方法。标记语言,使用文字串或标记来界定和描述这些数据。标记文档的过程实际上就是标识出文档的某些部分具有特殊含义的过程。

SGML为了适应各种复杂应用的需求,在其成为国际标准时,已经变得异常庞大和错综复杂,它的复杂性及其实现 限制了它的用户范围,并没有得到普及。

1.2,HTML

1989年,Tim BernersLee的研究人员提出,用超链接的文本文档实现在欧洲原子能研究所(CERN)内部的信息共享。在anders Berglund的建议下,Tim采用SGML形式的语法,他们从SGML的一种简单文档类型入手,开发出了一种超文本格式——HTML(Hypertext Markup language,超文本标记语言)

HTML的简易性和平台无关性,使得它的应用遍及WWW的各个角落。但是,随着网络应用的发展,HTML的简单易用的优点也逐渐成为它的缺点,表现在:

1.2.1,HTML扩展困难

HTML采用一部分GML思想,即文档表示应该标准化,所以它只使用了一个固定的元素类型集。它不能扩展,用户也不能在其中增加有意义的并能供他们使用的标记。

1.2.2,HTML的交互性差

频繁的请求处理使Web服务器不堪重负,以HTML作为数据标准,网络上的应用程序依赖服务器上CGI(公共网关接口)脚本来处理网页上的数据,这样的结构非常清晰,但HTML却使得服务器要处理的数据非常大,降低了处理效率。

1.2.3,HTML的语义性差

<H2>Apple</H2>,这条代码在网络浏览器上有特定的表现,但是HTML却没有告诉我们它到底是什么,水果、手机。。。。。。

其他表现:单项的超链接、缺乏对双字节或多国文字的支持。

1.3,XML

1998年2月10日,W3C正式批准公布XML1.0标准,从此XML(eXtensible Markup Language,可扩展标记语言)诞生了。

XML,是根据SGML制定出来,使用于标记电子文件使其具有结构性的语言。XML是SGML的一个子集,是一个精简的SGML,它将SGML的丰富功能与HTML的易学易用性结合到了Web的应用。

二、XML的主要要素

Schema(模式):规定了XML文档的逻辑结构,定义了XML文件中的元素、元素的属性以及元素和元素之间的关系,它可以帮助XML的分析程序检验XML文档标记的合法性。
XSL(eXtensible Stylesheet Language,可扩展样式语言):用于规定XML文档样式的语言,它能在客户端使web浏览器改变文档的表示法,从而不需要再与服务器进行交互通信。
XLL(eXtensible Link Language,可扩展链接语言):进一步扩展目前web上已有的简单链接。

了解更多,请看博客:【HTML/XML 2】XML基础知识点总结

三、XML与SGML的比较

XML是SGML的一个子集,所有的XML文档都是有效的SGML文档,但并不是所有的SGML文档,都是有效的XML文档。

四、XML与HTML的比较

HTML只是Web显示数据的通用方法,而XML提供了直接处理Web数据的通用方法。

HTML着重描述Web页面的显示格式,而XML着重描述Web页面的内容。

在外观上,HTML和XML差不多,但是XML却有着HTML文档无法比拟的语义性。注:XML文档可以转换为HTML文档。

注意:关于XML与HTML的比较,将在下一篇博客中,通过实例进行深入说明。

五、总结

总是有些东西,在需要的时候,才发现自己没有学。XML,这个东西,以前真心是不知天高地厚的没有把它当回事。突然想起最近写论文里面的一句广告词,挺应景的:如果,你了解我的内涵,你就会知道,我的美不止一面。美丽不止一面,心动不止一刻。

因为不了解,所以认识不到它的美,对于知识是这样,对于人,好像也是这样。嗯,好好学习。

【HTML/XML 3】XML 简介,来源的更多相关文章

  1. XML代码生成器——XMLFACTORY 简介(四)

    XML代码生成器——XMLFACTORY 简介(四) 这一篇我们讲“类属性”页签的配置功能,您将了解到:如何为元素子值指定类属性的名称,数据类型,及容器类型. 如果,你没看过这个系列的第一篇文章,请先 ...

  2. XML代码生成器——XMLFACTORY 简介(三)

    XML代码生成器——XMLFACTORY 简介(三) 这一篇我们讲“类名称”页签 的配置功能,您将了解到:如何为Xml元素指定对应的类名称及脱壳功能. 如果,你没看过这个系列的第一篇文章,请先去看这篇 ...

  3. XML代码生成器——XMLFACTORY 简介(一)

    XML代码生成器——XMLFACTORY 简介(一) 软件开发中经常要和第三方应用交互数据,特别是在银行.电信行业,这种需求更是必不可少,往往一个系统要和三五个其它系统交互数据,而数据交换的报文经常采 ...

  4. XML代码生成器——XMLFACTORY 简介(二)

    XML代码生成器——XMLFACTORY 简介(二)      因为春节和项目上线的原因,离写上一篇文章的时间已经好久了. 不知道是事情太多了,还是自已效率太低了.总之是时间不够用. 哎,苦逼的程序员 ...

  5. XML.01-语法简介

    body,td { font-family: calibri; font-size: 10pt }   XML.01-语法简介 文档声明 元素(标签) 属性 注释 特殊字符 CDATA区域 处理指令 ...

  6. XML 参考:XML基础 XML 简介

    XML 参考:XML基础 -- XML简介和用途 转:http://www.cnblogs.com/Dlonghow/archive/2009/01/22/1379799.html XML 参考:XM ...

  7. XML语言1.简介和语法

    一.什么是XML语言? XML 指可扩展标记语言(Extensible Markup Language) Xml是独立于软件和硬件的信息传输工具. XML 是一种很像HTML的标记语言. 但xml不是 ...

  8. XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax

    本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...

  9. js解析xml,获取XMl标签属性值

    <script type="text/javascript"> var xml="<?xml version=\"1.0\" enc ...

  10. XML Helper XML操作类

    写的一个XML操作类,包括读取/插入/修改/删除. using System;using System.Data;using System.Configuration;using System.Web ...

随机推荐

  1. normal曲线绘制

      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q ...

  2. 128 Longest Consecutive Sequence 一个无序整数数组中找到最长连续序列

    给定一个未排序的整数数组,找出最长连续序列的长度.例如,给出 [100, 4, 200, 1, 3, 2],这个最长的连续序列是 [1, 2, 3, 4].返回所求长度: 4.要求你的算法复杂度为 O ...

  3. ubuntu下php安装目录说明

    php当前安装目录 /etc/php5/ apache2:   采用APACHE2HANDLER启动 cli:   采用命令启动 fpm php-fpm启动 fpm2     php-fpm多实例 m ...

  4. ubuntu下php-fpm多实例运行配置

    php-fpm服务一般情况下我们只会配置一个php-fpm了,如果我们碰到要实现多实例php-fpm服务要如何来配置呢,下面一起来看看吧. 这里是在LNMP环境的基础上配置多实例的过程.因为我在使用的 ...

  5. NIO入门之轻松读取大文件

    NIO入门之轻松读取大文件 今天同事碰到了一个问题,从游戏服务器下载下来的输出log有一个多G大.用记事本打不开,EditPlus也打不开,都提示文件太大.用word也打不开,提示文件大于512M.打 ...

  6. 在SQLServer使用触发器实现数据完整性

    1.实现数据完整性的手段 在sqlserver中,在服务器端实现数据完整性主要有两种手段:一种是在创建表时定义数据完整性,主要分为:实体完整性.域完整性.和级联参照完整性:实现的手段是创建主键约束.唯 ...

  7. 洛谷 P1006 传纸条

    题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是 ...

  8. 备忘录:python 3在class中使用yield

    之前代码都是直接在函数级别使用yield,但封装class后如何使用yield很少遇到. 经过半天的学习,总算完成示例.代码没有什么特殊地方,仅仅作为一个工作项. 与生成器合作: ########## ...

  9. Modal 下面的 v-model 就是显示不显示 true 或 false

    Modal 下面的 v-model 就是显示不显示 true 或 false

  10. python爬虫---实现项目(一) Requests爬取HTML信息

    上面的博客把基本的HTML解析库已经说完了,这次我们来给予几个实战的项目. 这次主要用Requests库+正则表达式来解析HTML. 项目一:爬取猫眼电影TOP100信息 代码地址:https://g ...