加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

@XmlElementWrapper

发布时间:2020-12-16 06:31:13 所属栏目:百科 来源:网络整理
导读:在JAXB标准中,@XmlElementWrapper注解表示生成一个包装器元素。该注释支持两种形式的序列化。 注意: @XmlElementWrapper仅允许出现在集合属性上。 第一步:定义将要转化的Java对象 注 package jijian.test;import javax.xml.bind.annotation.XmlAttribute;i

在JAXB标准中,@XmlElementWrapper注解表示生成一个包装器元素。该注释支持两种形式的序列化。


注意: @XmlElementWrapper仅允许出现在集合属性上。


第一步:定义将要转化的Java对象

package jijian.test;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Customer {
	String[] names;
	int age;
	int id;
	
	//使用@XmlElementWrapper注解后,将会在原xml结点上再包装一层xml
	@XmlElementWrapper(name = "allnames")
	@XmlElement(name = "myname")
	public String[] getNames() {
		return names;
	}
	
	public void setNames(String[] names) {
		this.names = names;
	}
	
	@XmlElement
	public int getAge() {
		return age;		
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	
	@XmlAttribute
	public int getId() {
		return id;
	}
	
	public void setId(int id) {
		this.id = id;
	}
	
	@Override
	public String toString() {
		return "Customer [id = " + id + ",names = " + names + ",age = " + age + "]";
	}
}

第二步:生成xml文件并写入文件

package jijian.test;

import java.io.File;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

public class Object2XmlDemo {
	public static void main(String[] args) throws JAXBException {
		
		Customer customer = new Customer();
		customer.setId(100);
		customer.setNames(new String[]{"name-a","name-b","name-c"});
		customer.setAge(25);
		
		File file = new File("D:file.xml");
		JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
		Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
		jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true);	
		jaxbMarshaller.marshal(customer,file);
		jaxbMarshaller.marshal(customer,System.out);
	}
}

生成的xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer id="100">
    <age>25</age>
    <allnames>
        <myname>name-a</myname>
        <myname>name-b</myname>
        <myname>name-c</myname>
    </allnames>
</customer>


这个示范代码生成的xml同时写入了文件和标准输出(控制台):



??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读