JAXB是将java实体类序列化和反序列化处理中比较方便的一个工具,在jaxb的使用中,若是实体类中存在继承的层次关系,那么就需要一些值得注意的地方了。
比如在开发百度轻应用时候就需要处理到:
<?xml version="1.0" encoding="UTF-8"?>
<urlset>
<url>
<loc>http://www.baidu.com/</loc>
<lastmod>2010-01-01</lastmod>
<changefreq>always</changefreq>
<priority>1.0</priority>
<data>
<display>
<!-- display 标签内的字段为微站在标准 sitemap 协议基础上的扩展,
描述微站所需的标签内容
-->
</display>
</data>
</url>
</urlset>
可以看到此xml中,display节点下是根据各个模板的不同,而不同的,那么在java的开发实体构建中,我们是可以定义几个子类的,然后让它们来继承这个display类。则所有的模板格式就可以通过JAXB来生成了。
简化的格式如下:
public class A {
B b;
}
public class B {}
public class C {}
public class D {}
public class E extends A {
C c;
}
public class F extends A {
D d;
}
这个方案看着比较直观也符合一般逻辑思想,但是问题在于实践中只能生成父类部分,结果如下:
<a>
<b></b>
<a>
这并不是我们所需要的,所以需要申明一些标记来达到我们所需要的结果:
改造如下:
public class A {
B b;
@XmlElements({
@XmlElement(name = "c", type=C.class),
@XmlElement(name = "d", type=D.class)
})
E e;
}
public class B {}
public class E {}
public class C extends E {}
public class D extends E {}
这样的结构,最后就能正确生成了。
ps:类结构可以使用这个工具生成,
http://xml2csharp.com/(我本是c#程序员,因为工作上的需要,所以在独自的学习java)
那么在实际的开发过程中,序列化成xml可能会碰到很多特殊的一些问题,但是自己去看并理解那些报错信息,对于我们问题的解决是有帮助的,灵活运用上面的那些xml标记,那么才能体现到JAXB的好用。
<完>
分享到:
相关推荐
一个基于java jaxb的序列化例子,非常简单易懂。jaxb是java标准的序列化方案,实现方式简单,是一种很好用的java xml 序列化反序列化方式
JAXB工具类 xml转为java对象 java对象转为xml ,本人亲测,可以使用!!!
java 使用 JAXB 将xml转换为 bean 包含xml和dto和读取文件的util类
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例...
编写xsd文件,利用jaxb生成java类。
NULL 博文链接:https://xiongpan0807.iteye.com/blog/1832124
用JAXB生成一个XML文档,一个XML 模式(Schema)用XML语法表达了一个XML文档的结构。...在这篇教程中,作者使用了JAXB用来从一个XML模式中生成Java类。这些Java类将会生成一个范例XML文档。这篇文章由以下几个部份组成.
JAXB XML TO JAVA,文件转化 生成java代码
使用java jdk的JAXB技术实现xml与java对象互相转化代码教程: JDK中JAXB相关的重要Class和Interface:(来源于百度百科JAXB) •JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。 •Marshaller接口,将Java...
使用jaxb生成XML例子,含有例子和注解解析
THE Java™Architecture for XML Binding (JAXB) provides a fast and convenient way to bind between XML schemas and Java representations, making it easy for Java developers to incorporate XML data and ...
在android 6.0下,应用JAXB jar包根据XML Schema解析XML文件。
NULL 博文链接:https://rayoo.iteye.com/blog/1233534
Jaxb webservice java调用客户端代码示例
使用jaxb根据xsd生成xml文档,不要积分的,赶快下载
NULL 博文链接:https://luyuwww.iteye.com/blog/1988355
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。JAXB与xml相互转换实例。
jaxb将xml转换为对象或将对象转换为xml。测试通过。
JAXB注解 java 关于xml的注解,自动生成xml文件
NULL 博文链接:https://ericxiong.iteye.com/blog/1003995