Exemple du monde Bonjour JAXB

Exemple du monde bonjour JAXB

JAXB, représenteJava Architecture for XML Binding, en utilisant l'annotation JAXB pour convertir un objet Java vers / à partir d'un fichier XML. Dans ce tutoriel, nous vous montrons comment utiliser JAXB pour effectuer les tâches suivantes:

  1. Marshalling - Convertissez un objet Java en un fichier XML.

  2. Unmarshalling - Convertissez le contenu XML en un objet Java.

Technologies utilisées dans cet article

  1. JDK 1.6

  2. JAXB 2.0

Travailler avec JAXB est facile, il suffit d'annoter l'objet avec l'annotation JAXB, puis d'utiliserjaxbMarshaller.marshal() oujaxbMarshaller.unmarshal() pour effectuer la conversion objet / XML.

1. Dépendance JAXB

Aucune bibliothèque jaxb supplémentaire n'est requise si vous utilisez JDK1.6 ou supérieur, carJAXB is bundled in JDK 1.6.

Remarque
Pour JDK <1.6, téléchargez JAXB à partir dehere et placez «jaxb-api.jar» et «jaxb-impl.jar» sur le chemin de classe de votre projet.

2. Annotation JAXB

Pour un objet qui doit être converti en / à partir d'un fichier XML, il doit annoter avec l'annotation JAXB. Les annotations sont assez explicites, vous pouvez vous référer à ceJAXB guide pour une explication détaillée.

package com.example.core;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Customer {

    String name;
    int age;
    int id;

    public String getName() {
        return name;
    }

    @XmlElement
    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    @XmlElement
    public void setAge(int age) {
        this.age = age;
    }

    public int getId() {
        return id;
    }

    @XmlAttribute
    public void setId(int id) {
        this.id = id;
    }

}

3. Convertir un objet en XML

Exemple de marshaling JAXB, convertissez l'objet client en un fichier XML. LejaxbMarshaller.marshal() contient beaucoup de méthodes surchargées, trouvez-en une qui convient à votre sortie.

package com.example.core;

import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

public class JAXBExample {
    public static void main(String[] args) {

      Customer customer = new Customer();
      customer.setId(100);
      customer.setName("example");
      customer.setAge(29);

      try {

        File file = new File("C:\\file.xml");
        JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
        Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

        // output pretty printed
        jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

        jaxbMarshaller.marshal(customer, file);
        jaxbMarshaller.marshal(customer, System.out);

          } catch (JAXBException e) {
        e.printStackTrace();
          }

    }
}

Sortie


    29
    example

4. Convertir XML en objet

Exemple de décompression JAXB, convertissez un contenu de fichier XML en objet client. LejaxbMarshaller.unmarshal() contient beaucoup de méthodes surchargées, trouvez-en une qui vous convient.

package com.example.core;

import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;

public class JAXBExample {
    public static void main(String[] args) {

     try {

        File file = new File("C:\\file.xml");
        JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);

        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
        Customer customer = (Customer) jaxbUnmarshaller.unmarshal(file);
        System.out.println(customer);

      } catch (JAXBException e) {
        e.printStackTrace();
      }

    }
}

Sortie

Customer [name=example, age=29, id=100]