我对JAXB有疑问。基本上我所拥有的是这两个类:
Element {
String name
List<Attribute> attributes;
}
Attribute {
String key
String value
}
当然使用getter和setter,以及使用JAXB XmlRootElement。
由此生成的XML是:
<element>
<attributes>
<key>id</key>
<value>1</value>
</attributes>
<name>My Element</name>
</element>
但我正在寻找的是更像这样的东西:
<element id="1">
<name>My Element</name>
</element>
也就是说,对于Attribute的每个实例,我想要key = value(作为属性)
这在JAXB中是否可行?
此致 的Morten
答案 0 :(得分:1)
我认为它不适用于List。但是有另一种选择使用
你的例子:
@XmlRootElement
public static class Element
{
@XmlElement
String name;
@XmlAnyAttribute
Map<QName, Object> map;
}
{
//
Element element = new Element();
element.name = "a wonderful name";
element.map = new HashMap<QName, Object>();
element.map.put( new QName( "id" ), "1" );
element.map.put( new QName( "other" ), "2" );
}
结果:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<element id="1" other="2">
<name>a wonderful name</name>
</element>
祝你好运!