Unmarshalling XML à l'aide de JAXB
Je suis passé par presque toutes les questions liées à ce sujet ici. Mais n'a pas été en mesure d'obtenir une bonne solution.
Ma question est comme suit:
J'ai créé un programme simple pour unmarshall un fichier xml pour laquelle j'ai eu un xsd. J'ai été en mesure de le faire avec succès. Mais si je reçois un xml sans xsd, comment puis-je obtenir mon attributs que, si le xml ressemble à quelque chose comme ceci :
<items>
<item>
<code>12000</code>
<name>Samsung 620</name>
<price>9999</price>
</item>
<item>
<code>15000</code>
<name>NOKIA</name>
<price>19999</price>
</item>
<item>
<code>18000</code>
<name>HTC 620</name>
<price>29999</price>
</item>
</items>
Ici je n'ai pas de xsd pour générer mes classes. Comment puis-je procéder? De bien vouloir m'aider.
Merci
OriginalL'auteur vidhya | 2012-06-22
Vous devez vous connecter pour publier un commentaire.
Ci-dessous est une façon que vous pouvez mapper vos cas d'utilisation avec un JAXB (JSR-222) mise en œuvre:
Éléments
Nous allons utiliser la classe suivante pour la racine de l'objet et de les annoter avec
@XmlRootElement
. Le@XmlRootElement
annotation indique JAXB que cette classe doit être instanciée si l'élément racine du document en cours de unmarshalled estitems
, vous pouvez également spécifier un nom différent@XmlRootElement(name="foo")
.Élément
Dans cet exemple, j'ai créé une classe où tous les noms de propriété correspondent directement aux noms dans le document XML. Ceci signifie que ce ne sont pas les annotations qui doivent être ajoutés. Si vous avez besoin de remplacer le nom par défaut vous pouvez utiliser une annotation comme
@XmlElement
de le faire. J'ai utilisé le@XmlElement
annotation pour ce faire, dans leItems
classe pour laitems
propriété.Démo
d'entrée.xml/Sortie
OriginalL'auteur bdoughan
Si vous voulez coller avec JAXB, vous pouvez soit écrire un Document de Schéma XML sur votre propre pour valider de telles XML (ça a l'air simple mais c'est juste un exemple, vous avez besoin de savoir ce qui pourrait changer dans ces documente à l'avance) ou de créer un POJO avec Annotations JAXB correspondant à ces nœuds. J'ai peur, il n'y a pas d'autre moyen. Vous avez encore de bien connaître ce que le format permet.
OriginalL'auteur toniedzwiedz