JAXB-Objekte mit Standardwerten initialisiert

Mit JAXB gibt es kaum Probleme.

Gegeben:

Java 1.5; jaxb -jars von jaxws-2_0..xsd Schema und generierte JAXB Klassen.Jedes einfache Element in .xsd hat einen Standardwert. Und als Ergebnis haben die Teilnehmer Anmerkungen wie "@XmlElement (name = "cl_fname", required = true, defaultValue = "[______] ")"

Erforderlich

Holen Sie sich ein Java-Objekt (Root-Element), das XML vollständig repräsentiert und jedes Mitglied mit Standardwerten initialisiert.

Wenn ich versuche, XML ohne explizite Einstellung von Werten zu marshallen, sind Standardwerte nicht sinnvoll. Gibt es eine Möglichkeit, XML mit Standardwerten zu marshallen, ohne die generierten Klassen anzupassen?

Beispiel für .xsd:

<xs:element name="document">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="d_int"/>
            <xs:element ref="d_double"/>
            <xs:element ref="d_string"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

<xs:element name="d_int" type="xs:int" default="-1"/>
<xs:element name="d_double" type="xs:double" default="-1.0"/>
<xs:element name="d_string" type="xs:string" default="false"/>

und Java-Klasse:

public class Document {
    @XmlElement(name = "d_int", defaultValue = "-1")
    protected int dInt;
    @XmlElement(name = "d_double", defaultValue = "-1.0")
    protected double dDouble;
    @XmlElement(name = "d_string", required = true, defaultValue = "Default")
    protected String dString;
...
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage