XML 背景和相关标准分类

  XML 究竟是什么?

   在开发的大部分情况下,我们遇到的XML都指的是一种类型的文档,而且大部分人知道这种文档类型是W3C推荐的数据存储标准,但是,为什么要有这种标准呢?很多人就答不上了。大家也都知道操作XML,java提供 SAX,DOM,JDOM等方式,很多人也在实际中用过一两种方式去操作过XML,但如果你的处理要求比较高,就很有可能需要接触到另外一些与XML相关的概念:XSLT 、 XSL 、 Xpath 、DTD 、命名空间等等,那么,这许多名称与 XML 又是什么关系呢?相信能答的好的更是寥寥无几。下面,根据我的学习,将一些知识总结一下。在此之前,给大家伙推荐一本书,

   XML:管理者指南——构筑XML的企业级应用

对于想要对XML有超越技术的,比较高和宽视野理解的同仁来说,这是一本不可多得的好书。废话少说,下面开始介绍,对于一般教材都有的部分,我会尽量避免。
   
    首先回答刚刚的那个问题:为什么会有XML?

    技术领域,一件新玩意要出现,一般有两个前提:需求和相关研究基础;XML 的出现是为了解决 Internet 的一个很强烈的需求:数据交换;Internet 的基础是连接,通过一定的协议,各地的人们、各种电子设备可以简单地连入一个共同的网络,将自己的信息资源提交到网络上,简单的连接和越来越多的资源能吸引更多的人进入,形成良性循环。这XML出现之前,大部分的数据是以超文本html的形式存在于网络上,其他的还有以办公软件、PDF等格式存在,但html有它自身的不足。

    html 更大程度上是一种数据呈现手段,它的标签全部是为布局和显示服务的,传统的html文档数据内容和显示信息杂糅在一起,不同企业、不同开发者做出来的html差别很大,即便是同类型的业务,结果也往往很不同,这对公司之间业务数据的自动处理,某主题信息的抽取等操作,带来很大不便。用CSS将显示独立出来后,剩下的也都是布局标签,无法用来表达内容。

    传统数据存储还有另一个重要的工具,即数据库;但数据库对数据复杂关系的表现力也远远不够,试想一下,用数据库表示一个树状结构,会有多麻烦,但用XML,是如此直观。
    所有说,XML的出现是有很强的现实需求的。
    第二方面,就是相关研究基础,即元数据的研究;元数据指描述数据的数据;这一领域的研究成果是XML标准的一个基石;我们知道,XML文档的主体是一个个的标签对(称为元素),标签内放有数据,这些标签的名字都可以用户自定义,并且可扩展,这些标签其实就是元数据,中间的内容是它们描述的‘数据’。下面,给出狭义的XML定义:XML是一个主体由标签组成的,具有一定结构的,包含一个文档结构定义的文本文档;

    即,从最简单的意义上理解,XML就是由一组标签组成的文本文档,为了告诉程序它是XML,每个XML文档都必须有一个header,如<?xml version="0.1"?>,更多的时候还要加上一个DTD定义;关于XML和DTD,W3cShool 有基本的教程
      http://www.w3school.com.cn/

有些人可能不理解,为什么要有DTD?XML的文档结构不是明摆着的吗?其实,DTD起着一个仲裁的作用,设想一个团队好几个同时开发针对一个业务(业务数据以XML表示)的应用,而XML的标签又特别多,这时候,对XML文档结构的精确定义,即DTD,是不是就很必要呢?只要开发之前大家统一设计一个DTD,然后所有程序都以它为标准,就可以保证最后程序不冲突;另一方面,XML Parser 在解析XML之前,先用DTD检测一下,也可以为后续处理避免不必要的错误。

接下来是本篇的重点,即XML的各种标准的理解。“XML:管理者指南”提出了一种可能的分类方式:



 

  领域标准与行业有关,我还不是很理解,就不多说了,再说这个分类体系只是帮助我们更好地理解各种相继提出的名称,能达到那个目标就足够了;平台标准指的是不管什么开发平台和语言都通用的一套规定。它又分为3部分,其中,构架标准主要是为了让 XML WEB 技术进行集成,这类标准有 SOAP XML Encryption等;技术标准主要指为了解决复杂性问题而规定的严格的标准,如 XML Infoset XML Include 等,这些标准为 XML 处理模型增加了一些更严格的制约;在所有标准中,对一般开发者而言最重要的应该是特性标准,前面提到的很多与XML相关的词汇都属于特性标准。特性标准将会在第二篇介绍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值