java - 具有自定义属性的 jaxb xmlelement 编码

标签 java jaxb

尝试将我的类映射到 xml 并添加自定义属性。

public class MyXmlMappings  {
    @XmlElement
    protected String username;
    @XmlElement
    protected String password;
    @XmlElement
    protected Integer age;
}

编码到 xml 后看起来像这样:

<myXmlMappings>
<username/>
<password/>
<age/>
</myXmlMappings>

我需要这样的 xml:

<myXmlMappings>
<username type="String" defaultValue="hello" />
<password type="String" defaultValue="asdf" />
<age type="Integer" defaultValue="25" />
</myXmlMappings>

如您所见,我添加了 type 和 defaultValue 属性。如何将它们添加到 myXmlMappings 类中以便在编码后可见?

向 myXmlMappings 类添加额外的字段是不可行的,我想通过注释以某种方式做到这一点。

最佳答案

XML 表示

我建议使用以下 XML 表示形式:

<myXmlMappings>
    <xmlMapping name="username" type="String" defaultValue="hello" />
    <xmlMapping name="password" type="String" defaultValue="asdf" />
    <xmlMapping name="age" type="Integer" defaultValue="25" />
</myXmlMappings>

Java 模型

使用以下 Java 模型:

XmlMappings

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class MyXmlMappings  {
    @XmlElement(name="xmlMapping")
    protected List<XmlMapping> xmlMappings;

}

XmlMapping

@XmlAccessorType(XmlAccessType.FIELD)
public class XmlMapping {
    @XmlAttribute
    protected String name;
    @XmlAttribute
    protected String type;
    @XmlAttribute
    protected String defaultValue;
}

关于java - 具有自定义属性的 jaxb xmlelement 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11762271/

相关文章:

java - 当我尝试使用具有相同名称和参数类型的两个方法时,为什么会出现编译错误?

java - 如何修剪编码的字符串?

java - 如何将带有命名空间的 XML 字符串解码为 Java 对象

java - 如何为 XSD 中的基本类型生成 @XmlRootElement 类?

java - 如何在 JAXB Adapter 中使用属性作为键、使用整个元素作为值将复杂元素解析为 Map

jaxb - 防止 JAXB 在我的元素中转义 HTML 标记

jaxb - MOXy @XmlPath 被忽略

java - 如何在 POST 期间获取不同资源的 JAX-RS @Path?

java - 在 hadoop 2.6 中配置默认​​名称节点端口

java - 如何读取连续数据并显示