XML小结

原创 2013年12月02日 08:27:26

XML小结

什么是XML?

    什么是XML呢?专业说法是可扩展性标记语言(EXtensible Markup Language).然而什么又是可扩展性标记语言呢?  首先它是标记语言,所谓标记语言就是一套标记标签.其次就是可扩展性,所谓的可扩展性是指的,XML的标签没有被预定义,需要自行定义标签,它具有自我描述性.


XML知识体系如下:


XML元素

       有关XML元素有一点需要注意,那就是命名规范,因为XML的可扩展性决定的,很多东西需要自己定义,所以命名规范显的尤为重要.

XML元素必须遵循以下命名规则:

名称可以含字母、数字以及其他的字符

名称不能以数字或者标点符号开始

名称不能以字符 “xml”(或者 XML、Xml)开始

名称不能包含空格

其实这些规范对程序员来说不陌生,重要的是养成一个良好的习惯.还有几个需要注意的字符如下

避免"-" 字符。如果您按照这样的方式进行命名:"first-name",一些软件会认为你需要提取第一个单词。

避免"." 字符。如果您按照这样的方式进行命名:"first.name",一些软件会认为 "name"是对象 "first" 的属性。

避免":" 字符。冒号会被转换为命名空间来使用

 

XML和HTML的对比

  XML和HTML很相似,但是两者却有很多的不同,XML并不是HTML的替代,因为它们的设计目的不同,XML被设计为传输和存储数据,其焦点是数据内容.而HTML被设计用来显示数据,其焦点是数据外观.HTML关注信息显示,XML关注信息的传输.

 

XMLSchema 与 XML DTD的对比

   首先什么是XML Schema 与 XML DTD?

   XML模式是指用来描述XML结构、约束等因素的语言,而XMLSchema、XML DTD则是XML的模式。XML格式则是XML文档本身所具有的格式。从模式的描述语言来说,XML Schema和XMLDTD都属于语法模式。与概念模式不同,语法模式在对同一事物描述时,可以采用不同的语法,例如在对关系模式描述时,无论是使用XML Schema还是XMLDTD,都既可以用元素也可以用属性来描述关系模式的列。

        模式必须以某种格式来表示,XML Schema的格式与XML DTD的格式有着非常明显的区别,XMLSchema事实上也是XML的一种应用,也就是说XML Schema的格式与XML的格式是完全相同的,而作为SGML DTD的一个子集,XMLDTD具有着与XML格式完全不同的格式。这种区别会给XML Schema的使用带来许多好处:

XML用户在使用XML Schema的时候,不需要为了理解XML Schema而重新学习,节省了时间;由于XML Schema本身也是一种XML,所以许多的XML编辑工具、API 开发包、XML语法分析器可以直接的应用到XMLSchema,而不需要修改。

 

作为XML的一个应用,XML Schema理所当然的继承了XML的自描述性和可扩展性,这使得XML Schema 更具有可读性和灵活性。

 

由于格式完全与XML一样,XMLSchema除了可以像XML一样处理外,也可以同它所描述的XML文档以同样的方式存储在一起,方便管理。

 

XML Schema与XML格式的一致性,使得以XML为数据交换的应用系统之间,也可以方便的进行模式交换。

 

XML有非常高的合法性要求,XML DTD对XML的描述,往往也被用作验证XML合法性的一个基础,但是XMLDTD本身的合法性却缺少较好的验证机制,必需独立处理。XML Schema则不同,它与XML有着同样的合法性验证机制。

数据类型

      XML Schema与XML DTD相比的一个最显著的特征,就是其对数据类型的支持了。这完全是因为XMLDTD提供的数据类型只有CDATA 、Enumerated、NMTOKEN、NMTOKENS等十种内置(built-in)数据类型。这样少的数据类型通常无法满足文档的可理解性和数据交换的需要。

   XMLSchema则不同,它内置了三十七种数据类型,如long,int,short,double等常用的数据类型,并通过将数据类型表示为由valuespace、lexical space和facet三部分组成的三元组而获得更大的灵活性。但是, XMLSchema数据类型的真正灵活性来自于其对用户自定义类型的支持。XML Schema提供两种方式来实现数据类型的定义。

简单类型定义(simpleType),即在XML Schema内置的数据类型基础上或其它由XMLSchema内置的数据类型继承或定义所得到的简单的数据类型(simpleType)基础上,通过restriction,list 或者union方式定义新的数据类型。

复合类型定义(complexType),该方法提供了一种功能强大的复杂数据类型定义机制,可以实现包括结构描述在内的复杂的数据类型。

元素顺序的支持

      XML DTD与XML Schema 都支持对子元素节点顺序的描述,但XMLDTD没有提供对于无序情况的描述,也就是如果以XMLDTD来描述元素的无顺序出现情况,它必须采用穷举元素各种可能出现的排列顺序的方式来实现,这种方法不仅繁琐,有时甚至是不现实的。

     通过比较,可以看出,XML Schema比XML DTD具有更强的表现力,能够更好的满足不同领域应用的需求。所以,作为一种强有力的标准,XMLSchema作为XML模式的主流已经成为一种趋势;但作为一种最简单的XML模式,XML DTD也还将会在一段时间内发挥它应有的作用。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

近况小结+Objective-c解析XML文件

蛋疼的XCode,相当的无语啊!一个月前就想尝试用xml来装我的数据了 就因为没找到添加库的选项,后来不了了之了。 iphone开发解析xml的库还是蛮多的,什么TouchXML,KISSXML,...

[学习小结]Ajax基本操作_XML格式&&在jQuery中如何操作

操作效果:

JSTL常用标签小结之XML标签库

推荐网站:www.gis520.com XML 标签库   标签是该组标签库的核心,它是作为解析XML文件而存在的。 标签属性和说明 属性 描述 doc 源XML的内容,该...

本文从以下几个基础的方面介绍dom4j操作XML的使用小结,挺好!

本文从以下几个基础的方面介绍dom4j操作XML的使用小结: [一] 读取XML文件 的示例 [二] 读取XML字符串 的示例 [三] 解析XML的document 的示例 [四] ...

android 初学之XML小技巧小结---自适应各种分辨率屏幕

迫于实习公司强压,学习了android的xml界面设计。虽然有人力图说用activity就可以解决切,干嘛还死心专研XML?笔者给出自己的答案,无论任何应用开发,离不开,              ...

web.xml中的url-pattern 写法小结(附源码分析)

前言Servlet和filter是J2EE开发中常用的技术,使用方便,配置简单.但url-pattern可能有点迷糊.这里总结其中url-pattern中的映射规则....

Mybatis小结之详解Mapper.xml

最近换了个新的工作环境,新的项目中使用的是SSM框架,其中Mybatis在之前工作中一直没有使用过,为了能够尽快的开发,在这里先详细学习了下最长使用的mapper.xml,能够实现基本的增删改查。  ...

日常小结-DOM4J解析XML文档

下面为DOM4J解析的方式。DOM4J有教程写的很好可以直接看快速开始。 另外DOM4J通常只需要一个.jar但是依然有很多支持.jar包,在使用DOM4J的时候如果提示找不到.jar类可以尝试添加...

XML知识小结1

首先要了解下XML是什么作用,它可以描述数据、传输数据,而且XML文件写法上有着固定的写法,在每个XML文件开头第一句都是,而且前面不允许有空格或者换行或者注释,其中还可以添加属性encoding,不...
  • cds885
  • cds885
  • 2012年04月14日 15:51
  • 160
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XML小结
举报原因:
原因补充:

(最多只允许输入30个字)