JAXP学习(1)基础知识

XML简介

为了便于理解JAXP的内容,简单介绍XML的基本知识。有关语法和用途的内容请参考w3school的XML教程

什么是 XML?

XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据
XML 标签没有被预定义,您需要自行定义标签
XML 被设计为具有自我描述性
XML 是 W3C 的推荐标准

XML示例

<?xml version="1.0" encoding="utf-8"?>
<bookstore>
<book category="COOKING">
  <title lang="en">Everyday Italian</title> 
  <author>Giada De Laurentiis</author> 
  <year>2005</year> 
  <price>30.00</price> 
</book>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title> 
  <author>J K. Rowling</author> 
  <year>2005</year> 
  <price>29.99</price> 
</book>
<book category="WEB">
  <title lang="en">Learning XML</title> 
  <author>Erik T. Ray</author> 
  <year>2003</year> 
  <price>39.95</price> 
</book>
</bookstore>

结合示例,我们知道XML 被设计用来结构化、存储以及传输信息。它仅仅是纯文本而已。有能力处理纯文本的软件都可以处理 XML。不过,能够读懂 XML 的应用程序(XML解析器)可以(基于DOM,SAX,StAX) 有针对性地处理XML 的标签。这就是项目中需要解决的问题—XML解析。

可以看出根据XML解析器的实现机制不同,主要分为DOMSAXStAX

DOM简介

DOM (Document Object Model,文档对象模型)定义了访问和操作文档的标准方法。

什么是DOM?

DOM 是 W3C(万维网联盟)的标准。
DOM 定义了访问 HTML 和 XML 文档的标准:
“W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。”

W3C DOM 标准被分为 3 个不同的部分:

  • 核心 DOM - 针对任何结构化文档的标准模型
  • XML DOM - 针对 XML 文档的标准模型
  • HTML DOM - 针对 HTML文档的标准模型

什么是 XML DOM?

XML DOM 是:

  • 用于 XML 的标准对象模型
  • 用于 XML 的标准编程接口
  • 中立于平台和语言
  • W3C 的标准

XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法(接口)。
换句话说:XML DOM 是用于获取、更改、添加或删除 XML 元素的标准

XML DOM 是将 XML 文档作为一个树形结构,而树叶被定义为节点(如下图)。


可以类比HTML DOM,更多关于XML DOM的内容,请参考w3school的XML DOM教程

SAX简介

SAX ( Simple API for XML ),是一个用于处理XML事件驱动的“推”模型,虽然它不是W3C标准,但它却是一个得到了广泛认可的API。

什么是SAX?

SAX解析器不像DOM那样建立一个完整的文档树,而是在读取文档时激活一系列事件,这些事件被推给事件处理器,然后由事件处理器提供对文档内容的访问。
常见的事件处理器有三种基本类型:
● 用于访问XML DTD内容的DTDHandler
● 用于低级访问解析错误的ErrorHandler
● 用于访问文档内容的ContentHandler,这也是最普遍使用的事件处理器。

StAX简介

StAX (Streaming API for XML),是一种针对XML的流式拉分析API.

什么是StAX?

StAX提供了两套API用来处理XML,分别提供了不同程度的抽象。基于指针的 API 把 XML 作为一个标记(或事件)流来处理;应用程序可以检查解析器的状态,获得解析的上一个标记的信息,然后再处理下一个标记,依此类推。这是一种低层 API,尽管效率高,但是没有提供底层 XML 结构的抽象。基于迭代器的 API 把 XML 作为一系列事件对象来处理。应用程序只需要确定解析事件的类型,将其转换成对应的具体类型,然后利用其方法获得属于该事件的信息。

以上只是对JAXP相关知识的简单介绍,结合后续的代码示例会有更深入的理解。


参考资料:
XML 新手入门基础知识
XML 新手入门
JAXP解析XML(基于DOM模型)
JavaXML
XML解析器
Jaxp :Dom解析Xml文档和SAX解析Xml文档学习笔记
Java6.0新特性之StAX–全面解析Java XML分析技术
The Evolution of JAXP
An Introduction to StAX


推荐oracle的JAXP官方教程

Trail: Java API for XML Processing (JAXP)

参考web Services 教程

The Java Web Services Tutorial


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值