XML文档定义的形式

两种定义形式:DTD、Schema

DTD:数据类型定义(Data Type Definition),用以描述XML文档的文档结构,是早期的XML文档定义形式。

Schema:其本身是基于XML语言编写的,在类型与语法上的限定能力比DTD强,处理也比较方便,因为这个正逐渐代替DTD成为新的模式定义语言

XML文档定义形式的区别

两种本质区别:

Schema本身是xml文档结构的定义和描述,其最重要的作用是用来约束XML文件,并且验证XML文件的有效性。

DTD的作用是定义XML的合法构建模块,它使用一系列的合法元素来定义文档结构。他们之间的区别有以下几点。

1、Schema本身就是XML文档,DTD定义跟XML没有什么关系,Schema在理解和实际应用有很多的好处。

2、DTD文档的结构是“平铺型”的,如果定义很复杂的XML文档,很难把握各元素之间的嵌套关系,Schema文档结构性强,各元素之间的嵌套关系非常直观。

3、DTD只能指定元素含有文本,不能定义元素文本的具体类型,如字符型,整型,日期型,自定义类型等。Schema在这方面比DTD强大。

4、Schema支持元素节点顺序的描述,DTD没有提供无序情况的描述,要定义无序必需穷举排列的所有情况。

5、对命名空间的支持。DTD无法利用XML的命名空间,Schema很好满足命名空间。

解析XML文档的几种方式

主要有三种方式:DOM、SAX、STAX。

1、DOM

处理大型文件时其性能下降的非常厉害,这个问题是由DOM的树结构所造成的,这种机构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问。

2、SAX

不现于DOM,SAX是事件驱动型的XML解析方式,它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它就会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问。

3、STAX

Streaming API For XML(Stax)

XML文档定义的几种形式和本质区别的更多相关文章

  1. XML 文档定义有几种形式?它们之间有何本质区别?解析 XML 文档有哪几种方式?

    XML 文档定义分为 DTD 和 Schema 两种形式,二者都是对 XML 语法的约束,其 本质区别在于 Schema 本身也是一个 XML 文件,可以被 XML 解析器解析,而且 可以为 XML ...

  2. XML文档形式&JAVA抽象类和接口的区别&拦截器过滤器区别

    XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? a: 两种形式 dtd schemab: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发 ...

  3. 使用GDataXML生成、修改XML文档-陈棚

    使用GDXML生成XML文档的步骤如下. 1.调用GDataXMLNode的elementWithName:方法创建GDataXMLElement对象,对象作为XML文档的根元素. 2.调用GData ...

  4. XML文档的生成和解析操作方法

    XML文档和JSon文档同为网络传输中的数据格式,JSon的解析和创建已经在新浪微博的使用中相当熟悉,故仅仅记载XML文档的相关方法. 关于XML文档: 1.一种便于编辑和传输的数据文件格式 2.xm ...

  5. 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

    众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml- ...

  6. 四种生成和解析XML文档的方法详解

    众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml- ...

  7. 大杂烩 -- 四种生成和解析XML文档的方法详解

    基础大杂烩 -- 目录 众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J DOM:在现在的Java JDK里都自带了,在xml-apis.jar包 ...

  8. Java四种读取和创建XML文档的例子教程

    四种方法解析XML文档:Dom.SAX.JDOM.dom4j          1.了解XML XML,即可扩展标记语言(Extensible Markup Language),标准通用标记语言的子集 ...

  9. C# 写入XML文档三种方法详细介绍

      三个类将同样的xml内容写入文档,介绍了如何使用XmlDocument类对XML进行操作,以及如何使用LINQ to XML对XML进行操作. 它们分别使用了XmlDocument类和XDocum ...

  10. 四种生成和解析XML文档的方法介绍

    解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 1.DOM(Document Object Model) DOM是用与平台和语言无关的方式表示XML文档的官方 ...

随机推荐

  1. 走进RDS|说说关系型数据库与Serverless

    ​简介:看到如今Serverless在云计算行业喷薄欲出的态势,像极了<星星之火,可以燎原>中的描述:虽然不能预测未来的发展和变化,但对于云计算来说这是个相对确定的方向.本文将和大家说说关 ...

  2. 关于CDN的原理、术语和应用场景那些事

    关于CDN,想必你一定看过很多官方的解释.今天,CDN百科第七期,将用一篇3844字的文章,来带你了解CDN的诞生.术语.原理.特征以及应用场景,看完这篇文章,相信你将会对CDN这项互联网基础设施有更 ...

  3. 阿里云数字化安全生产平台 DPS V1.0 正式发布!

    ​简介:数字化安全生产平台则帮助客户促进业务与 IT 的全面协同,从业务集中监控.业务流程管理.应急指挥响应等多维度来帮助客户建立完善专业的业务连续性保障体系. 作者:银桑.比扬 阿里云创立于 200 ...

  4. 阿里云田涛涛:高效智能的云,CloudOps让运维更简单

    ​简介:CloudOps:以应用为中心的自动化运维新趋势 12月21日,在阿里云弹性计算年度峰会上,阿里云弹性计算体验与控制系统负责人田涛涛发表了主题为<高效智能的云,CloudOps让运维更简 ...

  5. Javascript 机器学习的四个层次

    ​简介: Atwood定律说,凡是可以用Javascript实现的应用,最终都会用Javascript实现掉.作为最热门的机器学习领域,服务端是Python的主场,但是到了手机端呢?Android和i ...

  6. [Blockchain] Cosmos Starport 安装的三种方式

    官方二进制包方式: # 下载 starport 二进制到 /usr/local/bin $ curl https://get.starport.network/starport! | bash   # ...

  7. 2018-11-23-国内好用的-DNS-列表

    title author date CreateTime categories 国内好用的 DNS 列表 lindexi 2018-11-23 12:45:57 +0800 2018-11-23 12 ...

  8. 15.prometheus之pushgateway自定义监控

    一.Pushgateway 1.Pushgateway简介 Pushgateway 是 Prometheus 生态中一个重要工具,使用它的原因主要是: ● Prometheus 采用 pull 模式, ...

  9. jumpserver-v3搭建配置与使用

    一.jumpserver简介 官网:https://www.jumpserver.org/ 文档:https://docs.jumpserver.org/zh/v3/ 单机部署:https://doc ...

  10. C语言程序设计-笔记2-分支结构

    C语言程序设计-笔记2-分支结构 例3-1  简单的猜数游戏.输入你所猜的整数(假定1-100),与计算机产生的被猜数比较,若相等,显示猜中:若不等,显示与被猜数的大小关系. /*简单的猜数游戏*/ ...