重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇文章给大家分享的是有关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中遇到的坑有什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。