jaxbIniziare con jaxb


Osservazioni

Questa sezione fornisce una panoramica di cosa sia jaxb e perché uno sviluppatore potrebbe volerlo utilizzare.

Dovrebbe anche menzionare qualsiasi argomento di grandi dimensioni all'interno di jaxb e collegarsi agli argomenti correlati. Poiché la documentazione di jaxb è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.

Generazione del codice da XSD

JAXB può essere utilizzato per generare classi da un modello definito in XSD. Sarà quindi possibile leggere il documento XML creato contro questo XSD direttamente come istanze java e salvare invariabilmente queste istanze come documento XML.

Prendi il seguente XSD salvato in un file chiamato SimpleModel.xsd

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://myCorp/schemas/simpleModel"
 xmlns:simple="http://myCorp/schemas/simpleModel"
 elementFormDefault="qualified"
 attributeFormDefault="unqualified">
 
 <complexType name="Person">
     <sequence>
         <element name="FirstName" type="string"/>
         <element name="LastName" type="string"/>
         <element name="DateOfBirth" type="dateTime"/>
     </sequence>
 </complexType>
 
</schema>
 

Puoi usare JAXB per generare automaticamente le classi per abbinare questo XSD usando questa riga di comando (a condizione che la cartella bin di JDK sia sul tuo percorso)

xjc SimpleModel.xsd
 

Questo genererà un pacchetto basato sullo spazio dei nomi del tuo XSD (qui mycorp.schemas.simplemodel) con le seguenti classi:

  • ObjectFactory.java
  • package-info.java
  • Person.java

ObjectFactory viene utilizzato per creare istanze delle classi che sono state generate. In alcuni casi questo sembra un involucro banale attorno a

new Person();
 

Ma nei casi più complessi creerà i wrapper appropriati attorno alle tue istanze fornendo il link mancante per eseguire correttamente marshall e unmarshall degli oggetti da e verso XML.

Il pacchetto-info.java contiene informazioni sull'XSD in generale.

Tutti gli altri file sono classi derivate dal modello descritto nell'XSD. Qui abbiamo solo Person.java poiché c'è un solo oggetto nel nostro modello.

Usando altri argomenti della linea di comando, Jaxb e XJC ti daranno un potere immenso sul codice generato. XJC fornisce anche i mezzi per utilizzare o creare plug-in per andare al di sotto e fare cose come:

  • Avere il codice generato implementare un'interfaccia o estendere una classe.
  • Genera automaticamente toString, hashcode, uguale a ecc. Con la classe.
  • Mappare automaticamente tra tipi xml (semplici o complessi) e JavaType.
  • Inietti codice personalizzato o annotazioni nel codice generato.

E molto altro ancora

Puoi anche usare altri strumenti per interagire con xjc per te, plug-in Maven (almeno 4 che conosco), task Ant, ecc. Spesso questi strumenti possono eseguire cose che sarebbero difficili da ottenere solo con l'implementazione di riferimento attraverso la linea di comando .

Installazione o configurazione

L'implementazione di riferimento JAXB (JAXB-RI) è stata inclusa con il Java Development Kit dall'aggiornamento 3 di JDK 6.

Fare riferimento alla Guida non ufficiale di JAXB per ulteriori dettagli su quale versione JAXB-RI è inclusa con versioni specifiche di JDK.