XML文档定义有几种方式?它们之间有何本质区别?解析XML文档有哪几种方式?
XML文档定义方式:有两种定义形式,dtd文档类型定义和schema模式
本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的)
普通区别:
1.schema 是内容开放模型,可扩展,功能性强,而DTD可扩展性差。
2.shema 支持丰富的数据类型,而 DTD不支持元素的数据类型,对属性的类型定义也很有限。
3.schema 支持命名空间机制,而DTD不支持。
4.schema 可针对不同情况对整个XML 文档或文档局部进行验证;而 DTD缺乏这种灵活性。
5.schema 完全遵循XML规范,符合XML语法,可以和DOM结合使用,功能强大;而DTD 语法本身有自身的语法和要求,难以学习。
解析XML文档方式:
1.DOM解析: DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。
2.SAX解析:SAX的全称是Simple APIs for XML,也即XML简单应用程序接口。与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式。当使用SAX分析器对XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,应用程序通过这些事件处理函数实现对XML文档的访问,因而SAX接口也被称作事件驱动接口。
3.JDOM解析:JDOM采用了Java中的Collection架构来封装集合,是Java爱好者更加熟悉的模式
4.DOM4J解析:xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容
XML文档定义有几种方式?它们之间有何本质区别?解析XML文档有哪几种方式?相关推荐
- XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? XML文档定义分为DTD和Schema两种形式,二者都是对XML语法的约束.其本质区别在于Schema本身也是一个XML文 ...
- Java - XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net XML文档定义分为DTD和Schema两种形式,二者 ...
- ZigBee、Wi-Fi、蓝牙和几种无线技术之间,有什么区别?
社会的不断发展,无线的优点已经逐步显现.如:无线通信覆盖范围大,几乎不受地理环境限制:无线通信可以随时架设,随时增加链路,安装.扩容方便:无线通信可以迅速(数十分钟内)组建起通信链路,实现临时.应急. ...
- XML文档定义有几种形式?解析XML文档有哪几种方式?
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? a: 两种形式 dtd schema,b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上 ...
- 解析XML的几种方式
XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM ...
- java解析xml的4种方式
xml是一种常用的标记语言,可以用来传输数据,它的作用与json类似.不过当下web开发中前后台数据加护基本都使用json,但是在maven.spring的配置文件等方面,xml仍有广泛的使用.比如, ...
- 详解Java解析XML的四种方法
http://developer.51cto.com 2009-03-31 13:12 cnlw1985 javaeye 我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...
- 详解Java解析XML的四种方法(转载)
原文地址:http://developer.51cto.com/art/200903/117512.htm XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成 ...
- java 的xml_详解Java解析XML的四种方法
XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM ...
最新文章
- Javascript模块化编程(一):模块的写法
- c语言链表如何做成环,在C语言中单向链表环测试并返回环起始节点的实现方法...
- redis 安装测试
- Pandas库(3):DataFrame的条件过滤用法
- 关于wordpress 点击文章查看内容跳转加载失败(404)的解决方法
- 最大子段和 分治与动态规划
- python基础教程笔记—即时标记(详解)
- java string 字符个数字_java从字符串中提取数字
- day5 模拟用户登录
- 三菱plc字高八位和低八位_三菱PLC如何传送高8位和低8位数据
- Atitit 浏览器tech原理与概论 目录 1. 浏览器概述	1 1.1. 浏览器野史 UserAgent列传	1 1.2. 浏览器趋势	1 1.3. 浏览器大战	1 1.4. 三次浏览器大战	2
- 安捷伦or是德信号源+频谱仪操作: 从程控到自动测试 (四)平坦度检测的程控实现
- c语言编写的车道线检测程序,opencv车道线检测的实现方法
- android lame,Android 采用Lame编码器编码mp3文件
- LTE-FDD和TDD帧结构
- Aspose.word Java实现html转word,word转html
- UI设计必备网站,一定要收藏。
- 离婚后发现对方婚内出轨,还能否要赔偿
- 权限管理框架实现(1)--Struts切面处理
- 巧用宏录制,轻松制作Excel简易查询小系统
热门文章
- [k8s集群系列-09]Kubernetes 组件 Dashboard
- 如何去除PDF中的水印,PDF去水印方法
- Hive基础知识概念
- 解决 VS 无法打开包括文件: “XXX.h”: No such file or directory问题
- 【ANDROID学习】
- 人工智能(1)-样本空间、假设空间、版本空间
- 易语言可以编译c语言,刷屏软件?其实易语言也可以做这种软件
- 【mysql】 踩坑记录之derived(派生表)
- 递归详解——让你真正明白递归的含义
- 【DB笔试面试702】在Oracle中,如何定时清理INACTIVE状态的会话?