Vous ne savez pas si le titre a un sens. J'ai un objet que je veux maréchal en utilisant JAXB qui ressemble à ceci:Marquage d'un objet comportant des zones d'objet
@XmlRootElement(name = "subscriptionRequest")
public class RegistrationRequest {
private Long id;
private RegistrationSource registrationSource;
}
L'objet RegistrationSource:
public class RegistrationSource {
private Integer id;
private String code;
}
Je veux créer un fichier XML qui a la mise en page suivante:
Où la valeur de l'attribut registrationSource est la valeur du champ de code de l'objet RegistrationSource.<subscriptionRequest registrationSource="0002">
...
</subscriptionRequest>
De quelles annotations xml ai-je besoin?
Je reçois l'exception suivante: Exception dans le thread « principal » com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 compte de IllegalAnnotationExceptions @XmlValue ne sont pas admis sur un classe qui dérive une autre classe. – Imhotep
@Imhotep: J'ai ajouté le code de travail. – axtavt
Avant d'écrire ce code, j'ai mis les annotations sur la déclaration des champs. Après avoir vu votre code et appliqué les changements, je reçois ces: Exception dans le fil "principal" com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 5 chefs d'IllegalAnnotationExceptions @XmlValue n'est pas autorisé sur une classe qui dérive une autre classe. . Si une classe a la propriété @XmlElement, elle ne peut pas avoir de propriété @XmlValue. . @ XmlAttribute/@ XmlValue doit faire référence à un type Java mappé au texte en XML. . La classe a deux propriétés du même nom "registrationSource" . La classe a deux propriétés du même nom "code" – Imhotep