I found a thread about "convert element with string body and attributes" in user mail list(
http://article.gmane.org/gmane.comp.java.xstream.user/2349
), but it seems that no one fire an issue here.
I have a class like this:
class Dely {
public String code;
public String content;
}
I use it like this:
public static void main(String ...strings) {
XStream xstream = new XStream();
xstream.alias("dely", Dely.class);
xstream.useAttributeFor("code", String.class);
//xstream.setDefaultContent("content", Dely.class);
Dely d = new Dely();
d.code = "abc";
d.content = "Hello";
System.out.println(xstream.toXML(d));
}
I would like the output xml as following:
<dely code="abc">Hello</dely>
public class DelyConverter implements Converter {
public void marshal(Object source, HierarchicalStreamWriter writer,
MarshallingContext context) { Dely d = (Dely) source; writer.addAttribute("code", d.code); writer.setValue(d.content); }
public Object unmarshal(HierarchicalStreamReader reader,
UnmarshallingContext context) { Dely d = new Dely(); d.code = reader.getAttribute("code"); d.content = reader.getValue(); return d; }
public boolean canConvert(Class type) { return type.equals(Dely.class); }
}