`

JAXB 深入学习<1>

阅读更多
说白了就是一个api将 xml+schema->java object. 或 java object -> schema. for webservice wsdl file.

JAXB Architecture

This section describes the components and interactions in the JAXB processing model.

Architectural Overview

Figure 17-1 shows the components that make up a JAXB implementation.

Figure 17-1 JAXB Architectural Overview

A JAXB implementation consists of the following architectural components:

  • Schema compiler: Binds a source schema to a set of schema-derived program elements. The binding is described by an XML-based binding language.

  • Schema generator: Maps a set of existing program elements to a derived schema. The mapping is described by program annotations.

  • Binding runtime framework: Provides unmarshalling (reading) and marshalling (writing) operations for accessing, manipulating, and validating XML content using either schema-derived or existing program elements.

The JAXB Binding Process

Figure 17-2 shows what occurs during the JAXB binding process.

Figure 17-2 Steps in the JAXB Binding Process

The general steps in the JAXB data binding process are:

  1. Generate classes: An XML schema is used as input to the JAXB binding compiler to generate JAXB classes based on that schema.

  2. Compile classes: All of the generated classes, source files, and application code must be compiled.

  3. Unmarshal: XML documents written according to the constraints in the source schema are unmarshalled by the JAXB binding framework. Note that JAXB also supports unmarshalling XML data from sources other than files/documents, such as DOM nodes, string buffers, SAX Sources, and so forth.

  4. Generate content tree: The unmarshalling process generates a content tree of data objects instantiated from the generated JAXB classes; this content tree represents the structure and content of the source XML documents.

  5. Validate (optional): The unmarshalling process optionally involves validation of the source XML documents before generating the content tree. Note that if you modify the content tree in Step 6, below, you can also use the JAXB Validate operation to validate the changes before marshalling the content back to an XML document.

  6. Process content: The client application can modify the XML data represented by the Java content tree by means of interfaces generated by the binding compiler.

  7. Marshal: The processed content tree is marshalled out to one or more XML output documents. The content may be validated before marshalling.

More about Unmarshalling

Unmarshalling provides a client application the ability to convert XML data into JAXB-derived Java objects.

More about Marshalling

Marshalling provides a client application the ability to convert a JAXB-derived Java object tree back into XML data.

By default, the Marshaller uses UTF-8 encoding when generating XML data.

Client applications are not required to validate the Java content tree before marshalling. There is also no requirement that the Java content tree be valid with respect to its original schema to marshal it back into XML data.

More about Validation

Validation is the process of verifying that an XML document meets all the constraints expressed in the schema. JAXB 1.0 provided validation at unmarshal time and also enabled on-demand validation on a JAXB content tree. JAXB 2.0 only allows validation at unmarshal and marshal time. A web service processing model is to be lax in reading in data and strict on writing it out. To meet that model, validation was added to marshal time so one could confirm that they did not invalidate the XML document when modifying the document in JAXB form.

 

分享到:
评论

相关推荐

    jaxb2 生产java类demo实例

    通过运行这个示例,你可以深入了解JAXB2的工作原理,并学习如何在自己的项目中应用。 总结,JAXB2是一个强大的工具,能够简化Java应用程序与XML数据之间的交互。通过理解其核心概念和实践操作,开发者可以高效地...

    jaxb:这是jaxb项目的最终版本

    &lt;artifactId&gt;jaxb-api&lt;/artifactId&gt; &lt;version&gt;2.3.1&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;com.sun.xml.bind&lt;/groupId&gt; &lt;artifactId&gt;jaxb-core&lt;/artifactId&gt; &lt;version&gt;2.3.0.1&lt;/version&gt; &lt;/...

    xml.rar_student_xml_xml 课程设计_xml报告_xml课程设计

    &lt;student id="1"&gt; &lt;name&gt;张三&lt;/name&gt; &lt;major&gt;计算机科学&lt;/major&gt; &lt;grade&gt;大二&lt;/grade&gt; &lt;/student&gt; &lt;student id="2"&gt; &lt;name&gt;李四&lt;/name&gt; &lt;major&gt;电子信息&lt;/major&gt; &lt;grade&gt;大一&lt;/grade&gt; &lt;/student&gt; &lt;/...

    XML 编程 程序设计

    在这个例子中,`&lt;book&gt;`是根元素,包含了三个子元素:`&lt;title&gt;`、`&lt;author&gt;`和`&lt;year&gt;`。每个元素都有其特定的意义,如`&lt;title&gt;`代表书名,`&lt;author&gt;`代表作者,`&lt;year&gt;`代表出版年份。 XML文档还可以通过命名空间...

    simple-rss-2.0.zip

    例如,`&lt;title&gt;`定义了频道或条目的标题,`&lt;description&gt;`提供简短的介绍,`&lt;link&gt;`是目标资源的URL,`&lt;pubDate&gt;`表示发布日期,`&lt;author&gt;`则是作者信息。 3. 扩展性:RSS 2.0允许通过自定义元素来扩展其功能,以...

    CXF3.0+Spring3.2 RESTFul服务(下)

    【CXF3.0+Spring3.2 RESTFul服务(下)】 ...CXF,一个强大的开源服务框架,支持SOAP和RESTful服务,而Spring作为Java应用开发的基石,...下载提供的`WbRest1`源代码,可以进一步学习和理解这些概念,并在实际项目中应用。

    使用CXF暴露您的REST服务

    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;!-- Mapping for the CXF Servlet --&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;CXFServlet&lt;/servlet-name&gt; &lt;url-pattern&gt;/services/*&lt;/url-pattern&gt; &lt;/servlet-...

    webservice获取List案例

    泛型List允许我们在List中存储特定类型的元素,如List&lt;String&gt;或List&lt;Integer&gt;,确保了添加和检索元素时的类型一致性。 3. **XML配置**:由于WebService返回的是XML格式的数据,因此在处理非简单类型如List时,需要...

    java学习之jaxb的学习一

    Java学习之JAXB(Java Architecture for XML Binding)的学习一 ...通过深入学习和熟练掌握JAXB,可以提高开发效率,提升XML相关应用的质量。在实际项目中,JAXB是一个值得信赖的XML处理解决方案。

    【纯java语言做RPG游戏】4.用XML导入NPC并与NPC对话

    在本教程中,我们将深入探讨如何使用纯Java语言制作角色扮演游戏(RPG)并利用XML文件导入非玩家角色(NPC)以及实现与NPC的交互。这个项目不仅涵盖了基础的Java编程,还涉及到游戏开发中的重要概念,如数据结构、...

    xml修改实例

    比如,如果你有一个父节点`&lt;parent&gt;`,你可以在它下面添加一个子节点`&lt;child&gt;`,如`&lt;parent&gt;&lt;child&gt;content&lt;/child&gt;&lt;/parent&gt;`。在编程中,可以先创建`&lt;child&gt;`,然后将其附加到`&lt;parent&gt;`节点。 通过学习和实践...

    使用jaxb将XML转化为JAVA BEAN

    在Java开发中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它具有良好的结构化和可读性。...在提供的链接中,博主Eric Xiong的博客可能更深入地探讨了JAXB的使用和实践,可以作为进一步学习的资源。

    jersey实现简单的rest接口

    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;Jersey Web Application&lt;/servlet-name&gt; &lt;url-pattern&gt;/rest/*&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; &lt;/web-app&gt; ``` 将`...

    xmlDemo代码xmlDemo

    文本内容则是元素内的实际数据,例如 `&lt;element&gt;这是文本内容&lt;/element&gt;`。注释用于解释代码,以 `&lt;!-- 这是一个注释 --&gt;` 形式存在。 在"xmlDemo"中,我们可能会看到如何创建XML文档,这通常包括定义根元素和嵌套...

    XML学习进阶 XML学习入门资料

    XML(eXtensible Markup ...通过深入学习XML,你可以掌握数据表示的灵活性,更好地进行数据交换和程序设计。这个资料包“XML初学进阶”可能包含基础教程、实战案例和相关工具的使用指南,是你提升XML技能的好助手。

    XML操作的例子

    在这个例子中,`&lt;book&gt;`是根元素,`&lt;title&gt;`、`&lt;author&gt;`和`&lt;year&gt;`是子元素。 2. **DOM解析器** DOM(Document Object Model)是一种将XML文档转换为内存中的树形结构的方法。Java中可以使用`javax.xml.parsers....

    xmldasdwqeqwe

    XML(eXtensible Markup Language)是一种用于标记数据的语言,其设计目的是传输和存储数据,而非显示数据。...通过学习这个项目,可以深入理解XML在数据管理中的作用,为将来处理更复杂的XML应用场景打下基础。

    xml一些知识

    属性则用于为元素添加额外信息,例如 `&lt;book id="1"&gt;` 中的 "id" 属性。 XML与HTML的主要区别在于,HTML主要用于展示网页内容,而XML则是为了描述数据。HTML使用预定义的标签,如 `&lt;p&gt;`(段落)和 `&lt;img&gt;`(图像)...

    xml_programming_in_java.zip_java programming

    XML(eXtensible Markup Language)是用于存储和传输数据的一种结构化格式,它在Java编程中扮演着重要角色。本教程将深入探讨如何在Java环境中进行...通过深入学习和实践,你将能够自如地驾驭XML,提升你的编程能力。

    XML实用大全.rar

    XML(eXtensible Markup Language)是一种用于标记数据的语言,其设计目的是传输和存储数据,而非显示数据。在本文中,我们将深入探讨XML...通过深入学习和实践,你可以更有效地利用XML处理和传递数据,提高工作效率。

Global site tag (gtag.js) - Google Analytics