gpt4 book ai didi

java - 使用 JAXB 的嵌套元素,其中元素同时包含属性和元素值

转载 作者:搜寻专家 更新时间:2023-11-01 01:54:24 26 4
gpt4 key购买 nike

环境:带有 EclipseLink MOXy 的 JAXB 2.1.2

要求:

我想在编码时得到这样的 XML:

<?xml version="1.0" encoding="UTF-8"?>
<root id="id123">
<email>test@gmail.com</email>
<address type="short">...</address>
</root>

我用这两个类来建模:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="root")
public class ClassA {

@XmlAttribute(name="id")
private String id = null;

@XmlElement(name="address")
private Address addr = new Address();

// and some getters setters
}

@XmlAccessorType(XmlAccessType.FIELD)
public class Address {

@XmlElement(name="address")
private String address = null;

@XmlAttribute(name="type")
private String type = null;

}

我得到的是这个,其中地址嵌套了两次:

<?xml version="1.0" encoding="UTF-8"?>
<root id="id123">
<email>test@gmail.com</email>
<address type="short">
<address>...</address>
</address>
</root>

如何删除一个层次结构?

最佳答案

您可以利用 @XmlValue 执行以下操作:

@XmlAccessorType(XmlAccessType.FIELD)
public class Address {

@XmlValue
private String address = null;

@XmlAttribute(name="type")
private String type = null;

}

了解更多信息

关于java - 使用 JAXB 的嵌套元素,其中元素同时包含属性和元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14238062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com