JAXP和JAXB有什么区别?
JAXP和JAXB有什么区别?
JAXP(用于XML处理的Java API)是一个相当过时的术语,涵盖了JavaSE中的各种低级XML API,如DOM,SAX和StAX。
JAXB(用于XML绑定的Java架构)是一个特定的API( javax.xml.bind
下的东西),它使用注释将XML文档绑定到java对象模型。
JAXP是用于XML处理的Java API,它为我们提供了使用DOM或SAXparsing器parsingXML文件的平台。
JAXB是用于XML绑定的Java体系结构,它将使从用Java编程语言编写的应用程序访问XML文档更容易。
例如:Computer.xml文件,如果我们想用JAXP访问数据,我们将执行以下步骤
- 创build一个SAXparsing器或DOMparsing器,然后对数据进行分析,如果我们使用DOM,如果文档太大,可能会占用大量内存。 假设我们使用SAXparsing器,我们需要确定文档的开始。 当它遇到一些重要的东西(用SAX术语来说,就是一个“事件”),比如XML标签的开始,或者标签里面的文本,这些数据就可以用于调用应用程序。
- 然后创build一个内容处理程序,它定义parsing器遇到事件时要通知的方法。 这些称为callback方法的方法对接收到的数据采取适当的行动。
如果由JAXB执行相同的操作,则需要执行以下步骤才能访问Computer.xml
- 绑定XML文档的模式。
- 将文档解组成Java内容对象。 Java内容对象表示XML文档的内容和组织,可直接用于您的程序。 解组后,您的程序可以访问和显示XML文档中的数据,只需访问Java内容对象中的数据然后显示即可。 不需要创build和使用parsing器,也不需要使用callback方法编写内容处理程序。 这意味着开发人员可以访问和处理XML数据,而无需了解XML或XML处理
关键区别是xml架构扮演的angular色。 JAXP已经过时了,而没有意识到XML Schema,JAXB作为第一步处理模式绑定。