2012-11-06 23 views
7

Jeśli mam schematu takich jak:JAXB XJC generowania kodu z inicjalizatorów elementu z ich deklaracji

<xs:element name="Book"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="Chapter" /> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="Chapter"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element maxOccurs="unbounded" name="Word" /> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="Word"> 
</xs:element> 

To wygeneruje coś takiego:

@XmlRootElement(name = "Book") 
public class Book { 

    @XmlElement(name = "Chapter", required = true) 
    protected Chapter chapter; 

Czy możliwe jest generowanie następujących zamiast?

@XmlElement(name = "Chapter", required = true) 
protected Chapter chapter = new Chapter(); 

To jest tak, że nawet jeśli plik XML brakuje elementu rozdział w książce, kiedy to unmarshalled wciąż będzie obiektem Book stworzył więc jest to możliwe do zrobienia book.getChapter(). getWord() i odzyskaj pustą listę, zamiast sprawdzać wartość null.

Odpowiedz

0

Możesz utworzyć wtyczkę. Napisałem numer short tutorial, który pomaga ci to zrobić. Mam nadzieję, że okaże się to pomocne.