映射,绑定和解析之间有什么区别?

sfr*_*frj 15 java web-services jax-rs jaxb java-ee-6

我开始在java EE6中学习Web服务.

我之前做过Web开发,但从来没有与Web服务有任何关系.

对我来说一切都是新的,我在网上找到的书籍和教程都是技术性的.

我开始学习.xsd架构和.xml.

在那个主题中我感到自信,我理解用于什么模式和验证意味着什么.

现在我的下一步是学习JAX-B(用于XML绑定的Java Api).我骑了一些关于它,我也在我的IDE中做了一些练习.但是我有很多基本的疑虑,这让我陷入困境,无法继续下一个话题.

如果有人能够很好地解释我的怀疑,我会感激不尽:

  1. 它是什么意思映射和什么是映射工具?
  2. 什么是绑定和什么是绑定工具?
  3. 解析什么是解析工具?
  4. JAX-B如何与映射,绑定和解析相关?

我正在寻找一个由你建立的好答案,而不仅仅是谷歌的复制粘贴(我已经在网上几个小时而且只是感到困惑).

rin*_*rer 10

根据我的理解......

它是什么意思映射和什么是映射工具?

对于Java/XML,映射只不过是将Java对象模型表示为XML文档表示(反之亦然).映射工具允许您从一种格式转换为另一种格式.这只是定义步骤.

什么是绑定和什么是绑定工具?

绑定是内存中(当应用程序运行时)将XML文档转换为对象represantation的过程.绑定是通过解组来实现的.

解析什么是解析工具?

解析是读取输入的数据流并检查数据流是否符合某种语法.当数据无法符合工具检查的语法时,解析工具会消耗数据流并生成错误.它还会生成事件以指示它已从流中收到某些"令牌".在java/xml场景中,有多种类型的解析器,如DOM,StAx,SAX ......

JAX-B如何与映射,绑定和解析相关?

JAXB映射:

是什么时候使用xjc生成基于XSD的java类层次结构当使用JAXB注释生成类时,映射发生在场景中的映射工具是xjc

JAXB绑定:

当应用程序将XML文档解组到Object represanation时发生 (JAXBElement) unmarshaller.unmarshal( new File("some.xml"));

解析:

为了将XML文档转换为对象represantation,JAXB引擎必须首先"解析"xml文档以确保正确性,然后标记化以实现java对象的实例化.这在内部发生,您不控制它以确保正确性,然后标记化以实例化java对象.