Utilisez l'environnement d'exécution JAXB (Java™ Architecture for XML Binding)pour manipuler les documents d'instance XML.
Avant de commencer
Utilisez JAXB pour générer des classes Java à partir d'un schéma XML à l'aide d'un compilateur de schéma (commande
xjc) ou pour générer un schéma XML à partir d'une classe Java à l'aide du générateur de schéma, (commande
schemagen).
Pourquoi et quand exécuter cette tâche
Utilisez les API JAXB et les outils pour établir des mappages entre un fichier schéma XML et des classes Java. Une fois les liaisons de données créées, utilisez l'API d'exécution de liaisons JAXB pour convertir les documents d'instance XML en objets Java ou à partir d'objets Java. Les données stockées dans un document XML sont accessibles sans qu'il soit
nécessaire de comprendre la structure des données. Les artefacts et classes annotés JAXB contiennent toutes
les informations requises par l'API d'exécution JAXB pour le traitement des
documents d'instance XML.
L'API d'exécution JAXB prend en charge la conversion de paramètres des objets
JAXB en XML et la déconversion de paramètres du document XML en instances de classe JAXB.
Procédure
- Convertissez les objets JAXB en documents d'instance XML.
Utilisez l'API d'exécution JAXB pour convertir les instances d'objet
JAXB dans un document d'instance XML.
- Instanciez vos classes JAXB.
- Appelez le programme de conversion JAXB.
Cet exemple présente comment instancier les objets JAXB générés
dans une application et utiliser la classe JAXBContext et les API
du programme de conversion d'exécution JAXB pour convertir les objets
JAXB en instances XML.
JAXBContext jc = JAXBContext.newInstance("myPackageName");
//Créer un programme de conversion
Marshaller m = jc.createMarshaller();
//Convertir l'objet en fichier.
m.marshal(myJAXBObject, myOutputStream);
JAXB Reference Implementation inclut dorénavant des propriétés
de programme de conversion spécifiques, telles le mappage de préfixe
d'espace de nom, le renforcement et le contrôle d'échappement de caractère, qui
ne sont pas définies par la spécification JAXB.
Ces propriétés permettent de définir
des contrôles supplémentaires du processus de conversion. Ces propriétés fonctionnent
uniquement avec JAXB Reference Implementation et peuvent ne pas fonctionner avec d'autres
fournisseurs JAXB. Des informations complémentaires concernant des propriétés spécifiques au fournisseur se trouvent dans l'architecture Java pour la spécification des propriétés d'exécution des extensions fournisseur JAXB RI avec liaison XML.
- Annulez la conversion des fichiers XML en objets JAXB.
Utilisez l'API d'exécution JAXB pour annuler la conversion ou pour convertir
un document d'instance XML en instances d'objet JAXB.
- Obtenez un document d'instance XML existant.
- Appelez le programme d'annulation de conversion JAXB.
Cet exemple illustre un programme qui lit un document XML et
annule la conversion ou convertit le document XML dans des instances
d'objet JAXB.
Utilisez la classe JAXBContext et les API de programme
d'annulation de conversion d'exécution JAXB pour annuler la conversion
du document XML.
JAXBContext jc = JAXBContext.newInstance("myPackageName");
//Créer le programme d'annulation de conversion
Unmarshaller um = jc.createUnmarshaller();
//Annuler la conversion du contenu XML du fichier myDoc.xml dans votre
instance d'objet Java.
MyJAXBObject myJAXBObject = (MyJAXBObject)
um.unmarshal(new java.io.FileInputStream( "myDoc.xml" ));
Résultats
A présent, vous pouvez non seulement convertir des classes Java JAXB mais aussi déconvertir des données XML à l'aide de la structure de liaison JAXB. Pour plus d'informations sur les API d'exécution de conversion et de déconversion, consultez la documentation
JAXB Reference Implementation.
Eviter les incidents: Si la sécurité Java 2 est activée, encapsulez vos appels de méthode JAXBContext.newInstance(),
Unmarshaller.unmarshal() et Marshaller.marshal() dans une méthode AccessController.doPrivileged afin d'éviter une exception de sécurité.
gotcha
.