JAXB objets initialisés avec les valeurs par défaut

Il y a peu de problème avec JAXB.


Donné:

  • Java 1.5; jaxb -pots de jaxws-2_0.
  • .xsd schéma et généré JAXB classes.
  • Chaque élément simple .xsd est la valeur par défaut. Et, par conséquent, les membres de la classe a des annotations comme
    "@XmlElement(name = "cl_fname", required = true, la valeur par défaut = "[______]")"

Nécessaire


Obtenir java objet (élément racine) qui représentent pleinement xml et chaque membre initialisé par des valeurs par défaut.


quand j'essaie de marshall xml sans explicitement les valeurs de réglage, les valeurs par défaut ne fait pas de sens... est-il possible de marshall xml rempli avec les valeurs par défaut sans la personnalisation des classes générées?

exemple de .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"/>

et de la classe java:

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;
...
}

OriginalL'auteur A7iz | 2012-08-20