`
阅读更多
  • 什么是JAXB

JAXB (Java Architecture for XML Binding) 的主要功能是根据DTD或者XML Schema将XML Element转化为Java类。将XML文本流转化为Java Object,把XML Processing转化为对类的一些属性的访问。简单的来说,它可以让你轻松解析和验证XML内容而不用去写那些繁琐的XML解析代码。

其主要结构如下:

xml_schema_fig1.gif

  • JAXB的组成

JAXB 包含两个部分:

1, 第一部分:JAXB包含一个编译器,它读入DTD或者XML Schema,然后生成相等结构的Java Object Model. 这些生成的object model 比DOM或SAX这些general的API更有针对性,更好的反映了Schema原本的结构。这样,使对XML内容的操作变得更为简单。

2, 第二部分:是操作JAXB时的API,你通过这个API来和生成的代码交互。这个API隐藏了JAXB内部操作的实现代码并且提供了统一的基本操作(如 marshalling ,unmarshalling)。
marshalling : 是将一个Java Object转化成XML text的过程。
unmarshalling : 是将XML text转化成相应的Java Object的过程。

  • JAXB 的基本操作

基本操作,像marshalling和unmarshalling需要schema的邦定。

1. 一个schema定义一个XML的格式,说明了了哪些元素允许在XML Message中出现,和元素之间的关系等等. 如图:是一个简单的XML Schema。

clip_image0021.jpg

Fig. Partial code of primitives.xsd

2. 邦定一个Schema所做的操作就是生成一些Java类来对应相应的Schema。可以通过下面的命令来执行:

xjc -p test.jaxb primitives.xsd -d work

-p 指定生成的Java class所在的package。

-d 指定生成Java class放置的文件夹.

所以根据上面的命令,生成的文件package为test.jaxb,放在work文件夹下.

  • Unmarshalling

1. 穿件一个JAXBContext 对象. 这个对象提供了JAXB API的入口.

JAXBContext context = JAXBContext.newInstance(“com.ericsson.imps.gateway”);

2. 穿件一个 Unmarshaller 对象. 这个对象操作 unmarshalling 的所有流程, unmarshalling() 函数就包含在这个类中.

Unmarshaller unmarshaller = context.createUnmarshaller();

3. 调用 unmarshal() 方法. 这个方法是真正的 unmarshalling XML 文本的地方.

WVSSPMessage wvSSPMessage = (WVSSPMessage) unmarshaller.unmarshal(new File( ” SubscribeRequest .xml”));

下面的图是部分示例代码:

clip_image002.jpg

Fig. Partial code of Unmarshalling the SubscribeRequest.xml

  • Marshalling

1. 创建XML内容树,树代表了你想要生成的XML文本的结构。通过 unmarshalling XML 数据, 你可以创建XML 树。 或正你可以通过 ObjectFactory 来创建它。

2. 首先创建一个 ObjectFactory 类的实例:

ObjectFactory objFactory = new ObjectFactory();

3. 接下来,用ObjectFactory 类中的 create 方法来创建每个在XML树种的对象。比如:

WVSSPMessage wvSSPMessage = (WVSSPMessage) objFactory. createWVSSPMessage();

然后用刚创建的实例中的 set 方法设置一些可变的参数。

4. 创建 JAXBContext 对象, 然后指定适当的 context path — 那个包含所有生成 Java 类的包.

JAXBContext jaxbContext = JAXBContext.newInstance(“com.ericsson.imps.gateway “);

5. 创建一个 Marshaller 对象. 这个对象控制整个 marshalling 的流程. 它包含了 marshalling 方法,使真正的 marshalling 操作的所在。

Marshaller marshaller = jaxbContext.createMarshaller();

6. 调用 marshal 方法. 这个方法做真正 marshalling 操作,将object转化为 Content Tree. 当你调用这个方法的时候,你指定一个对象(这个对象必须包含XML Schema中的根元素)、输出对象。

比如, 下面的代码将将 wvSSPMessage 中内容 marshal 为 XML 文本,并输出到 SubscribeRequest .xml 文件:

marshaller.marshal(wvSSPMessage, new FileOutputStream(SubscribeRequest .xml “));

分享到:
评论

相关推荐

    jaxb-api jaxb-impl jaxb-xjc jaxws-rt jar包

    Java Architecture for XML Binding (JAXB) 是Java平台标准的一部分,用于在Java对象和XML文档之间进行数据绑定。它使得开发者可以方便地将Java类转换为XML格式,反之亦然,无需编写大量的转换代码。JAXB提供了高效...

    javax.rar(jaxb-impl-2.3.0、jaxb-core-2.3.0、jaxb-api-2.3.0)

    标题中的"jaxb-impl-2.3.0、jaxb-core-2.3.0、jaxb-api-2.3.0"是JAXB的不同组件版本号,它们在处理XML到Java对象之间的转换时起到关键作用。在描述中提到的“Maven项目中缺少jaxb-api的异常报错”,通常指的是在运行...

    jaxb-api.jar.jaxws-api.zip_ jaxb-api.jar_cxf_jax-ws.jar_jaxb-api

    标题提到的"jaxb-api.jar.jaxws-api.zip_ jaxb-api.jar_cxf_jax-ws.jar_jaxb-api",是针对这个问题提供的一组支持包。 **JAXB(Java Architecture for XML Binding)** 是Java平台的一个标准,它允许开发者将XML文...

    jaxb-api-2.1.jar 和 jaxb-impl-2.1.8.jar

    `jaxb-api-2.1.jar` 和 `jaxb-impl-2.1.8.jar` 是Java应用程序中用于XML绑定(Java Architecture for XML Binding,简称JAXB)的重要库文件。JAXB是Java SE和Java EE平台的标准部分,它提供了一种将XML文档与Java...

    JAXB的 eclipse插件

    JAXB(Java Architecture for XML Binding)是Java平台上的一个标准,它提供了一种在Java对象和XML文档之间进行映射的机制。Eclipse作为一款强大的Java集成开发环境,为开发者提供了丰富的插件支持,其中包括JAXB的...

    JAXB的安装包及插件

    **JAXB(Java Architecture for XML Binding)** 是Java平台中用于XML到Java对象绑定的API,它是Java EE和Java SE标准的一部分,允许开发者在Java应用程序中方便地将XML数据转换为Java对象,反之亦然。这个过程极大...

    jaxb-impl.jar jaxb-api.jar jsr173_1.0_api.jar

    Java Architecture for XML Binding (JAXB) 是Java平台中用于XML数据绑定的标准库,它使得Java对象和XML文档之间可以进行无缝转换。在给定的压缩包文件中,包含了一些核心的JAXB组件以及相关的依赖库,如`jaxb-impl....

    jaxb生成XML例子

    JAXB (Java Architecture for XML Binding) 是 Java 中用于对象到XML以及XML到对象转换的API。它使得开发者能够轻松地将Java对象模型映射到XML文档,并反之亦然。在给定的例子中,我们将深入理解如何使用JAXB注解来...

    android上使用 jaxb所需要的包

    在Android平台上进行开发时,有时候我们需要处理XML数据,这时候JAXB(Java Architecture for XML Binding)就显得非常有用。JAXB是Java SDK中的一个标准API,它允许开发者将XML文档与Java对象之间进行自动的双向...

    jaxb2.3.0依赖jar.rar

    Java Architecture for XML Binding (JAXB) 是Java平台中用于XML到Java对象绑定的标准技术,它允许开发者在Java程序中直接操作XML数据,而无需编写大量的XML解析和序列化代码。JAXB 2.3.0是该技术的一个版本,包含了...

    idea 中用jaxb 读xml中数据

    当我们需要处理XML文件,比如从XML中提取数据时,JAXB(Java Architecture for XML Binding)是一个强大的工具。本教程将详细解释如何在Idea中利用JAXB来读取XML文件中的数据。 JAXB是Java标准API,它提供了将Java...

    activation.jar jaxb1-impl.jar jaxb-api.jar jaxb-impl.jar jaxb-xjc.jar jsr173_1.0

    这些文件是Java编程环境中常用的库文件,主要用于XML绑定(Java Architecture for XML Binding,JAXB)和JavaBeans Activation Framework(JAF)。在Java应用程序开发中,尤其是处理XML数据时,这些库扮演着至关重要...

    jackson-module-jaxb-annotations-2.2.3-API文档-中文版.zip

    赠送jar包:jackson-module-jaxb-annotations-2.2.3.jar; 赠送原API文档:jackson-module-jaxb-annotations-2.2.3-javadoc.jar; 赠送源代码:jackson-module-jaxb-annotations-2.2.3-sources.jar; 赠送Maven依赖...

    jackson-module-jaxb-annotations-2.7.8-API文档-中英对照版.zip

    赠送jar包:jackson-module-jaxb-annotations-2.7.8.jar; 赠送原API文档:jackson-module-jaxb-annotations-2.7.8-javadoc.jar; 赠送源代码:jackson-module-jaxb-annotations-2.7.8-sources.jar; 赠送Maven依赖...

    JAXB乱码问题解决

    在Java开发中,JAXB(Java Architecture for XML Binding)是一个用于将XML文档和Java对象之间进行绑定的技术。在处理XML文件时,特别是涉及到序列化和反序列化时,可能会遇到字符编码问题,即所谓的“乱码”。这个...

    JAXB 利用xsd文件生成java类

    JAXB (Java Architecture for XML Binding) 是Java平台上的一个标准,用于将XML文档与Java对象之间进行绑定,实现XML数据的解析和序列化。在Java开发中,JAXB提供了一种方便的方式,允许开发者通过XML Schema (XSD) ...

    JAXB2 jaxb-api.jar jaxb-xjc.jar jaxb-impl.jar activation.jar

    JAXB2,全称为Java Architecture for XML Binding 2,是Java平台上的一个标准技术,用于在XML和Java对象之间进行绑定。它允许开发者通过简单的API将XML文档转换为Java对象,反之亦然,大大简化了XML数据处理。JAXB2...

    jaxb-runtime-2.3.5-API文档-中文版.zip

    赠送jar包:jaxb-runtime-2.3.5.jar; 赠送原API文档:jaxb-runtime-2.3.5-javadoc.jar; 赠送源代码:jaxb-runtime-2.3.5-sources.jar; 赠送Maven依赖信息文件:jaxb-runtime-2.3.5.pom; 包含翻译后的API文档:...

    jaxb-api jaxb-impl jar

    `jaxb-api`和`jaxb-impl`是JAXB框架的核心组成部分。这两个JAR文件在处理XML到Java对象的绑定过程中扮演着关键角色。 1. **jaxb-api.jar**: 这个库包含了JAXB API,即Java接口和抽象类,定义了JAXB的工作方式。它...

    利用jaxb实现xml和bean互转

    **Java Architecture for XML Binding (JAXB)** 是Java平台上的一个标准技术,用于在XML文档和Java对象之间进行数据绑定。它允许开发者将XML文档转换为Java对象,反之亦然,从而简化了XML处理。JAXB是Java SE和Java ...

Global site tag (gtag.js) - Google Analytics