Спасибо, спасибо, спасибо.Некоторое время я боролся с этой проблемой, и на самом деле не совсем очевидно, как определить схему, хотя сам пример XML довольно прост.Моя самая большая проблема заключалась в том, как структурировать класс JAXB, чтобы справиться с этим.Только до тех пор, пока я не увидел ваше определение схемы и не запустил его через xjc, я смог увидеть, как настроить его в JAXB.Классы java JAXB довольно не интуитивны, ИМХО, и я бы никогда не догадался, как их настроить.Я пробовал несколько разных способов заставить это работать без какого-либо успеха.
Ниже приведен пример Java-класса JAXB, который генерируется из вашей опубликованной схемы.Ключ использует аннотацию @XmlValue на поле (вы также можете использовать ее на получателе поля, но удалите аннотацию XmlAccessorType:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "value" })
@XmlRootElement(name = "tagname")
public class Tagname {
@XmlValue
protected boolean value;
@XmlAttribute(name = "description", required = true)
protected String description;
public boolean isValue() {
return value;
}
public void setValue(boolean value) {
this.value = value;
}
get and set for description omitted.
Вот маршаллированный XML-документ JAXB из данного класса:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tagname description="The Description">true</tagname>
Я надеюсь, что это дополнение поможет другим, кто борется с той же неясной проблемой.