Sortie des éléments vides
J'ai un Objet avec les deux champs "nom" et "adresse". JAXB ignore les éléments vides tout en transformant l'objet en XMl.
Ex: si j'ai name="xyz" et l'adresse=null alors sera
<name>xyz</name>
mais ce que je veux comme une sortie en tant que
<name>xyz</name>
<address></address>
J'ai vu l'option @XmlElement(nillable="true")
mais ce qui donne le résultat sous la forme
<name>xyz</name>
<address xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
Merci de m'aider à obtenir le résultat souhaité.
Merci d'avance.
OriginalL'auteur Ritesh | 2013-02-04
Vous devez vous connecter pour publier un commentaire.
Un JAXB (JSR-222) mise en œuvre sera de sortie une Chaîne vide
""
valeur d'un élément vide. Vous pouvez définir laaddress
bien pour obtenir l'effet désiré.Mise à JOUR #1
Vous pourriez tirer parti de Maréchal Les Rappels D'Événement pour ajuster la valeur de
address
.Mise à JOUR #2
Si vous utilisez EclipseLink MOXy que votre JAXB fournisseur (je suis le MOXy plomb), alors vous pouvez utiliser un
XmlAdapter
pour ce cas d'utilisation.XmlAdapter (StringAdapter)
paquet-info
Ensuite, si vous le spécifier au niveau du package, il va s'appliquer à tous les champs mappés/propriétés de type
String
au sein de ce package.Pour Plus D'Informations
J'ai mis à jour ma réponse
Merci Blaise..Cette solution fonctionne. Le seul souci, c'est que si j'ai 10 champs de la classe je dois écrire si pour tous les champs. Est-il une autre solution?
J'ai ajouté une autre mise à jour.
Je suis nouvelle package-info.java. J'ai fait de la même façon qu'expliqué mais la sortie n'est pas venue dans la direction souhaitée. Je suis en train de travailler sur eclipse Helios. J'ai mis un point de débogage dans eclipse et démarré en mode de débogage, mais le pointeur ne s'est jamais arrêté à ce stade. peut-u s'il vous plaît m'aider sur ce point?
OriginalL'auteur bdoughan
Si vous utilisez EclipseLink MOXy que votre JAXB fournisseur alors vous pourriez utiliser
À l'aide de cette façon, vous n'avez pas à écrire adaptateur pour tous les champs
OriginalL'auteur Lê văn Huy
Suffit de définir une chaîne vide, la valeur par défaut sur le terrain.
et vous obtiendrez
OriginalL'auteur ndr_brt