jaxbRozpoczęcie pracy z jaxb


Uwagi

W tej sekcji omówiono, czym jest jaxb i dlaczego deweloper może chcieć go używać.

Powinien także wspomnieć o wszelkich dużych tematach w jaxb i link do powiązanych tematów. Ponieważ Dokumentacja dla Javyb jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.

Generowanie kodu z XSD

JAXB może być używany do generowania klas z modelu zdefiniowanego w XSD. Będzie wtedy możliwe odczytanie dokumentu XML utworzonego na podstawie tego XSD bezpośrednio jako instancji java i odwrotne zapisanie tych instancji jako dokumentu XML.

Weź następujący XSD zapisany w pliku o nazwie 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>
 

Możesz użyć JAXB do automatycznego generowania klas, aby dopasować ten XSD za pomocą tego wiersza poleceń (pod warunkiem, że folder bin twojego JDK znajduje się na twojej ścieżce)

xjc SimpleModel.xsd
 

Spowoduje to wygenerowanie pakietu na podstawie przestrzeni nazw twojego XSD (tutaj mycorp.schemas.simplemodel) z następującymi klasami:

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

ObjectFactory służy do tworzenia wystąpień klas, które zostały wygenerowane. W niektórych przypadkach wygląda to na trywialne opakowanie wokół

new Person();
 

Ale w bardziej skomplikowanych przypadkach utworzy on odpowiednie owijki wokół twoich instancji, zapewniając brakujące łącze do prawidłowego uporządkowania i odinstalowania obiektów do i z XML.

Pakiet-info.java zawiera ogólnie informacje o XSD.

Wszystkie pozostałe pliki są klasami wywodzącymi się z modelu opisanego w XSD. Tutaj mamy tylko Person.java, ponieważ w naszym modelu jest tylko jeden obiekt.

Używając innych argumentów wiersza poleceń, Jaxb i XJC dadzą ci ogromną władzę nad generowanym kodem. XJC zapewnia również środki do używania lub tworzenia wtyczek, aby przejść dalej i robić takie rzeczy jak:

  • Niech wygenerowany kod implementuje interfejs lub rozszerza klasę.
  • Automatycznie generuj toString, hashcode, równa się itp. Z klasą.
  • Automatycznie mapuj między typami xml (prostymi lub złożonymi) a JavaType.
  • Wstrzyknąć niestandardowy kod lub adnotacje do wygenerowanego kodu.

I dużo dużo więcej

Możesz także użyć innych narzędzi do interakcji z tobą xjc, wtyczek Maven (co najmniej 4, o których wiem), zadania Ant itp. Często te narzędzia mogą wykonywać czynności, które byłyby trudne do uzyskania za pomocą wiersza poleceń implementacji Reference .

Instalacja lub konfiguracja

Implementacja referencyjna JAXB (JAXB-RI) została dołączona do zestawu Java Development Kit od aktualizacji JDK 6 3.

Dodatkowe informacje na temat wersji JAXB-RI dołączonej do konkretnych wersji JDK można znaleźć w nieoficjalnym przewodniku JAXB .