Danke, danke, danke. Ich habe mit diesem Problem für eine Weile gekämpft und es ist nicht wirklich so offensichtlich, wie man das Schema definiert, obwohl das tatsächliche XML-Beispiel ziemlich direkt ist. Mein größtes Problem war, wie man eine JAXB-Klasse strukturiert, um damit umzugehen. Erst als ich Ihre Schemadefinition sah und sie durch xjc lief, konnte ich sehen, wie ich sie in JAXB einrichten konnte. Die JAXB Java-Klassen sind ziemlich unintuitiv IMHO und ich hätte nie gedacht, wie ich es einrichten soll. Ich habe verschiedene Möglichkeiten ausprobiert, um dies ohne Erfolg zum Laufen zu bringen.
Unten finden Sie ein Beispiel für die JAXB-Java-Klasse, die aus Ihrem geposteten Schema generiert wird. Der Schlüssel wird mit der der @XmlValue Anmerkung auf dem Feld (man kann es auch auf dem Getter des Feldes verwenden, aber die XmlAccessorType Anmerkung entfernen:
@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.
Hier ist das vermarshallten JAXB XML-Dokument aus der gegebenen Klasse:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tagname description="The Description">true</tagname>
ich hoffe, dass dieser Zusatz andere helfen wird, die mit dem gleichen obskuren Problem zu kämpfen hat.