jaxb 生成java类_重用生成的JAXB类

jaxb 生成java类

在本文中,我将演示如何利用XJC扩展来重用以前从XML模式生成的类。 当其他XML架构导入XML架构并且您不想每次都生成相同的类时,这很有用。

导入的架构(Product.xsd)

以下XML模式代表有关产品的基本信息。 产品是此示例域中的通用概念,因此我决定定义一种可以被其他模式利用的表示形式,而不是让每个模式都定义自己的产品信息表示形式。

<?xml version="1.0" encoding="UTF-8"?>
<schemaxmlns="http://www.w3.org/2001/XMLSchema "targetNamespace=" http://www.example.org/Product "xmlns:tns=" http://www.example.org/Product "elementFormDefault="qualified"><element name="product"><complexType><sequence><element name="id" type="string"/><element name="name" type="string"/></sequence></complexType></element>
</schema>

由于多个XML模式导入Product.xsd,我们可以利用情节文件,以便与Product.xsd对应的类仅生成一次。 以下XJC调用演示了如何生成称为product的情节文件。 情节以及生成的类:

xjc -d out -episode product.episode Product.xsd

导入架构(ProductPurchaseRequest.xsd)

以下是导入Product.xsd的XML模式的示例:

<?xml version="1.0" encoding="UTF-8"?>
<schemaxmlns="http://www.w3.org/2001/XMLSchema "targetNamespace=" http://www.example.org/ProductPurchaseRequest "xmlns:tns=" http://www.example.org/ProductPurchaseRequest "xmlns:prod=" http://www.example.org/Product "elementFormDefault="qualified"><import namespace=" http://www.example.org/Product " schemaLocation="Product.xsd"/><element name="purchase-request"><complexType><sequence><element ref="prod:product" maxOccurs="unbounded"/></sequence></complexType></element>
</schema>

从XML模式生成类时,将引用从Product.xsd生成Java类时创建的情节文件。 如果我们未指定情节文件,则将为ProductPurchaseRequest.xsdProduct.xsd生成类:

另一个导入模式(ProductQuoteRequest.xsd)

以下是导入Product.xsd的XML模式的另一个示例:

<?xml version="1.0" encoding="UTF-8"?>
<schemaxmlns="http://www.w3.org/2001/XMLSchema "targetNamespace=" http://www.example.org/ProductQuoteRequest "xmlns:tns=" http://www.example.org/ProductQuoteRequest "xmlns:prod=" http://www.example.org/Product "elementFormDefault="qualified"><import namespace=" http://www.example.org/Product " schemaLocation="Product.xsd"/><element name="quote"><complexType><sequence><element ref="prod:product"/></sequence></complexType></element>
</schema>

同样,当我们从该XML模式生成类时,我们将引用从Product.xsd生成Java类时创建的情节文件。

xjc -d out ProductQuoteRequest.xsd -extension -b product.episode

它是如何工作的? (product.episode)

对于你们中的那些人来说,这很奇怪。 XJC生成的情节文件实际上只是一个用于自定义类生成的标准JAXB绑定文件。 生成的绑定/情节文件包含一些条目,这些条目告诉XJC此类型的类已经存在。 您可以手工编写此文件,但是XJC的-episode标志可以帮您完成。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bindings version="2.1" xmlns="http://java.sun.com/xml/ns/jaxb ">
<!--This file was generated by the JavaTM Architecture for XML Binding
(JAXB) Reference Implementation, vJAXB 2.1.10 in JDK 6 See 
<a href=" http://java.sun.com/xml/jaxb "> http://java.sun.com/xml/jaxb </a> 
Any modifications to this file will be lost upon recompilation of the 
source schema. 
Generated on: 2011.11.02 at 03:40:10 PM EDT -->
<bindings scd="x-schema::tns"
xmlns:tns=" http://www.example.org/Product ">
<schemaBindings map="false"/>
<bindings scd="tns:product">
<class ref="org.example.product.Product"/>
</bindings>
</bindings>
</bindings>

参考: Java XML和JSON绑定博客中的JCG合作伙伴 Blaise Doughan 重用了生成的JAXB类 。

相关文章 :

  • 使用JAXB从XSD生成XML
  • 将对象映射到多个XML模式–天气示例

翻译自: https://www.javacodegeeks.com/2011/12/reusing-generated-jaxb-classes.html

jaxb 生成java类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎样在Ubuntu系统安装可用的QQ

http://jingyan.baidu.com/article/9f63fb91d1f6bbc8400f0e1c.html转载于:https://www.cnblogs.com/Ph-one/p/4330749.html

印象笔记桌面版怎么导出html,服务通知:印象笔记PC端Markdown取消支持HTML标签解析功能...

亲爱的用户&#xff1a;印象笔记电脑端 Markdown 取消了对 HTML 标签解析功能的支持&#xff0c;使用 Windows 6.15.12 Beta 版及 Mac 8.3.2 版的部分用户将受到影响&#xff0c;以下是对本次影响的详细说明。“HTML 标签解析”功能自上线以来就得到部分 Markdown 资深用户的深…

普通 项目打包包含第三方jar包

在工程中包含第三方Jar包时&#xff0c;普通打包方式打出的Jar包无法包含第三方Jar包。 可以使用net.sf.fjep.fatjar_0.0.31.jar插件&#xff0c;将第三方Jar包包含在打出的jar包中&#xff0c; 只要将该插件放到Eclipse的dropins目录&#xff08;如&#xff1a;D:\Program F…

如何优化Hibernate EllementCollection语句

介绍 Hibernate支持三种数据映射类型 &#xff1a; 基本 &#xff08;例如String&#xff0c;int&#xff09;&#xff0c; Embeddable和Entity 。 通常&#xff0c;数据库行映射到Entity &#xff0c;每个数据库列都与一个基本属性关联。 当将多个字段映射组合到一个可重用的组…

《黑马程序员》 流程控制(C语言)

------- <a href"http://www.itheima.com" target"blank">android培训</a>、<a href"http://www.itheima.com" target"blank">java培训</a>、期待与您交流&#xff01; --------- 流程控制主要有 顺序结构…

android中屏幕宽高显示不全,Android 获取屏幕宽度跟高度

Android 获取屏幕宽度跟高度在android开发过程中&#xff0c;对于控件的高度&#xff0c;宽度&#xff0c;通过下面的函数调用&#xff0c;轻松实现编程中设置控件的相对宽度跟高度&#xff1a;// 获得屏幕的宽度public static int getScreenWidth(Context ctx) {// 从系统服务…

使用Eclipse将包含第三方jar库的java工程打包成jar包

1、MANIFEST.MF 在工程下新建一个MANIFEST.MF的文件,项目结构如下。 M.java package cn.hwd.main;import java.io.IOException;import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.s…

C#实现整数冒泡排序、选择排序

/// <summary> /// 交换两个整数的值 /// </summary> /// <param name"aa">数1</param> /// <param name"bb">数2</param> private static void Swap(ref int aa,ref int bb) { …

史上最牛逼的导航网站(很全很详细)

今天,给大家推荐47个聚合型的导航网站 每一个都收录上百个网站,1个能顶100个,丝毫没有夸张的成分。 (推荐收藏) 设计师导航网站 01 优设导航 https://hao.uisdc.com/ 设计师必备的导航网站,包含设计工具、素材资源、字体设计、配色方案、酷站模板等。 界面清晰无广告…

gmat阅读.html,GMAT阅读长难句50句+参考译文.pdf

GMAT 阅读长难句50 句参考译文GMAT 阅读的考查重点是句子结构和句与句、段与段之间的逻辑关系。GMAT 阅读长难句都比较长&#xff0c;读起来拗口。在遇到这类句子时&#xff0c;我们不必细细梳理&#xff0c;而要先抓住句子主干。有些成分根本就对我们做题没有任何影响&#xf…

dbunit使用_使用dbUnit,JSON,HSQLDB和JUnit规则进行数据库单元测试

dbunit使用在本周TDD课程的运行中&#xff0c;我认为编写一些夹具以简化dbUnit的使用将很有趣。 我最初的想法只是教dbUnit有关JSON的知识&#xff0c;但事实证明Lieven Doclo已经做到了。 因此&#xff0c;我决定更进一步&#xff0c;还将dbUnit与JUnit Rules结合起来&#xf…

codeforces 337D Book of Evil(dp)

转载请注明出处&#xff1a; http://www.cnblogs.com/fraud/ ——by fraud Book of Evil Paladin Manao caught the trail of the ancient Book of Evil in a swampy area. This area contains n settlements numbered from 1 to n. Moving through the swamp is ver…

html 如何去滚动条,css怎么去除滚动条?

css可以通过overflow与scroll属性来实现去除滚动条效果。css设置overflow属性为hidden可以实现去除滚动条或设置scroll属性为no。1、这个可以用CSS实现 你可以用JS操作CSS方法一&#xff1a;设置CSS属性overflow为hidden。&#xff1c;body style"overflow:hidden"&a…

从基于Maven的Web应用程序获取版本字符串

打包maven项目时&#xff0c;它将自动在其中生成pom.properties文件&#xff0c;其中将包含版本&#xff0c;artifactId和groupId信息。 这些在运行时很方便拥有并显示给您的Web应用程序。 可以使用如下方法检索它。 public class Application {private String version;public…

【APICloud系列|31】成功上架5个应用商店总结(腾讯应用宝、阿里应用分发平台、华为开发者联盟、小米开放平台、百度开放平台)

应用商店的选择: 腾讯应用宝:http://open.qq.com/阿里应用商店(淘宝手机助手,UC应用商店,豌豆荚):http://open.uc.cn/百度手机助手:http://app.baidu.com/华为应用市场:http://developer.huawei.com/devunion/ui/devplan.html小米应用商店:http://dev.xiaomi.com/con…

PSPO表格

一、项目计划总结&#xff1a; 周活动总结表 日期 任务 听课 编写程序 阅读课本 准备考试 日总计 周日 周一 周二 300 100 30 430 周三 100 50 30 180 周四 200 80 …

html并行加载,html – 浏览器中的最大并行HTTP连接数?

我创建一些挂起的连接到http服务器(彗星&#xff0c;反向ajax等)。它工作确定&#xff0c;但我看到浏览器只允许同时给定域的两个挂起的连接。因此&#xff0c;如果用户在他们的浏览器的Tab1中查看我的网络应用程序&#xff0c;也尝试在Tab2中加载它&#xff0c;他们已经用尽了…

阿里云ECS服务器连接不上3306端口?

连不上3306端口一般有三种情况。 1 .本机上防火墙没有开放3306端口,需要自己配置入站规则,或者关闭本机防火墙。 2 .linux 服务器上的 iptables 防火墙没有开放3306端口, 或者关闭服务器上的防火墙。 打开 /etc/sysconfig/iptables 在 "-A INPUT –m state --sta…

UGUI 锚点

今天我们来学习下UGUI的锚点, 他是做什么的呢&#xff1f; 基本上就是用于界面布局. 1. 1个控件对应1个描点. 2. 描点分成四个小叶片, 每1个叶片 对应 控件四边框的角点 3. 不管屏幕如何放大缩小, 控件四边点与 每一个叶片对应的四边点距离不变.(换句话说,按钮的中心与描点的…

语文课外运用计算机探究,[小学语文]计算机在小学写字教学中的运用之我见

[小学语文]计算机在小学写字教学中的运用之我见随着经济的快速发展&#xff0c;教育也出现了加快发展、加快改革的势态。随着教育技术的不断增加&#xff0c;教学设备得以不断更新&#xff0c;教学手段变得更加现代化。特别是我们火星小学&#xff0c;计算机辅助教学已成为学校…