@XmlEnum sur l'attribut avec JAXB
J'ai un problème pour créer enum avec jaxb pour générer le xml que je veux, j'ai essayé d'utiliser le @xmlEnum annotation, mais pas avec un attribut de !
Je vais vous donner l'exemple de préciser que :
XML
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<FilePollerConfiguration configFilePath="">
<Directory path="C://Users//jmoreau040612//Desktop//Old">
<Match pattern="*.xml">
<Event name="create | modify | delete"> //here i want the enum in attribute
<FTPSend>
<FTPServer>toto.sgcib.com</FTPServer>
<FTPPort>21</FTPPort>
<FTPLogin>toto</FTPLogin>
<FTPPassword>titi</FTPPassword>
<FTPDestinationPath>/root/src</FTPDestinationPath>
</FTPSend>
</Event>
</Match>
<Match pattern="*.csv">
<Event name="create | modify | delete"> //here i want the enum in attribute
<MailSend>
<SMTPServer>smtp.fr.socgen</SMTPServer>
<SMTPPort>25</SMTPPort>
<MailTo>[email protected]</MailTo>
<MailFrom>[email protected]</MailFrom>
<Subject>tata</Subject>
<Body>blabla</Body>
</MailSend>
</Event>
</Match>
</Directory>
</FilePollerConfiguration>
Et j'ai le code suivant pour tha java partie :
@XmlAccessorType(XmlAccessType.FIELD)
public class Event {
//I would like this enum in attribute of "Event"
@XmlType
@XmlEnum(String.class)
public enum name{
@XmlEnumValue("create") CREATE,
@XmlEnumValue("modify") MODIFY,
@XmlEnumValue("delete") DELETE
}
@XmlElements(value = {
@XmlElement(type=FTPSendConfiguration.class, name="FTPSend"),
@XmlElement(type=SFTPSendConfiguration.class, name="SFTPSend"),
@XmlElement(type=MailSendConfiguration.class, name="MailSend"),
@XmlElement(type=
ServerToServerSendConfiguration.class, name="ServerToServer")
})
ArrayList<IAction> actionsList = new ArrayList<IAction>();
public Event(){
}
public ArrayList<IAction> getActionsList() {
return actionsList;
}
public void setActionsList(ArrayList<IAction> actionsList) {
this.actionsList = actionsList;
}
}
Donc, si vous avez une idée, vous êtes les bienvenus =)
Grâce.
OriginalL'auteur Julien Moreau | 2013-10-23
Vous devez vous connecter pour publier un commentaire.
Essayez d'ajouter à votre classe d'un autre champ et le marquer comme
@XmlAttribute
:Si je comprendre correctement ce que vous avez besoin, cela devrait résoudre votre problème.
Ciao!
Mise à JOUR (.fichier xsd générées à l'aide de schemagen):
Vous pouvez voir que le
complexType
event
a un attribut nommé "nom" de type "nom" et le nom du type est défini comme unesimpleType
à l'aide deenumeration
.DERNIÈRE MISE À JOUR:
C'est ce que j'ai écrit:
Si vous exécutez la méthode main, le résultat sera le suivant:
Qui est un événement de la balise avec un attribut provenant d'un enum ...
J'espère que ce dernier va essayer de vous aider ...
J'ai créé l'Événement de classe comme vous l'avez fait et j'ai essayé de générer le schéma xsd à l'aide de org.eclipse.jpt.jaxb.de base.schemagen.Principal. Le résultat est ce que j'ai modifier dans ma réponse.
Comment utilisez-vous votre
Event
classe? Avez-vous ajoutégetter
etsetter
pour le nouveau domaine?Merci beaucoup Paolo, je ne peux pas créer getter et setter pour mon enum l'aide d'annotations jaxb... Désolé si vous ne comprenez pas de moi, mais je suis assez perdu ...
OriginalL'auteur Paolo