温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JAXB中遇到的坑有什么

发布时间:2021-10-21 10:40:52 来源:亿速云 阅读:130 作者:柒染 栏目:大数据

本篇文章给大家分享的是有关JAXB中遇到的坑有什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1.使用JAXB将xml转化为java对象时,单纯的通过注解@XmlRootElement(namespace=“xxxxxx”),在根类上生命命名空间会产生两个问题:

  • 命名空间的作用范围只作用于根标签,而不会递归作用于下属所有标签,因而导致所有的使用@XmlElement标志的子属性全部获取不到。

  • 命名完成的namespace会产生形如nsN的前缀。

解决方法:如下方法配置package-info.java文件,解决点如注释:

/**
* package-info.java 
* 放在和实体同一个包路径下
*/
@XmlSchema(
        //在此处设置命名空间为了使用下面的@xmlnx重新命名前缀
        namespace ="http://www.omg.org/spec/BPMN/20100524/MODEL",
        //设置命名空间的应用范围,QUALIFIED为应用于所有标签
        elementFormDefault = XmlNsForm.QUALIFIED,
        xmlns = {
        @XmlNs(prefix = "activiti",namespaceURI = "http://activiti.org/bpmn"),
        @XmlNs(prefix = "bpmndi",namespaceURI = "http://www.omg.org/spec/BPMN/20100524/DI"),
        
        //重新命名前缀
        @XmlNs(prefix = "",namespaceURI = "http://www.omg.org/spec/BPMN/20100524/MODEL")
})
package com.bpmn;

import javax.xml.bind.annotation.XmlNs;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;

2.要实现xml和java对象的映射关系,需要用以下两种方法之一来进行标注:

  • 方法一:使用@XmlAccessorType注解和属性声明上添加@XmlAttribute或@XmlElement

  • 方法二:直接在get或set方法上使用@XmlAttribute或@XmlElement

以上就是JAXB中遇到的坑有什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI