我一直试图找到类似的回答问题,但我没有运气。
我基本上需要从文本文件中读取一些数据,然后将其编组为XML。但是,正常格式化会创建
<title></title>
字段等,而我想要的是每个字段都有这种格式:
<field name="title"></field>.
&#34;标题&#34;这里只是一个占位符,我想要的是name属性具有绑定的变量名,所以
<title>
成为
<field name="title">
,
<author>
成为
<field name="author"> etc.
我猜它与我没有得到的注释有关。
我的文档类结构简单,如
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Document
{
private Integer id;
private String content;
private String title;
private String author;
private String b;
}
答案 0 :(得分:1)
JAXB中的每个XML元素(非属性)都是Java类。 属性可以是属性。 所以你必须有类似的东西:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Document
{
@XmlElement(name = "field")
private List<Field> field = new ArrayList<>();
}
和
@XmlType()
public class Field
{
@XmlAttribute(name="name", required="true")
private String name;
@XmlValue
private Object value;
}
实际上 private Object value;
会转换为XML anyType
,因此您可以将Integer
设为id
,String
content
等。
将您当前的Document
类封送广告BT改为
<Document>
<id></id>
<content></content>
<title></title>
<author></author>
<b></b>
<Document>