2012-11-06 10 views
7

Se ho uno schema come il seguente:JAXB XJC generazione di codice di initializers elemento con la loro dichiarazione

<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> 

Si genererà qualcosa come:

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

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

E 'possibile generare il seguente anziché?

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

Questo è così che anche se un file XML manca un elemento di capitolo all'interno di un libro, quando è deserializzati ci sarà ancora un oggetto libro creato in modo che è possibile fare book.getChapter(). getWord() e recupera una lista vuota, invece di verificare la presenza di null.

risposta

0

È possibile creare un plug-in. Ho scritto un short tutorial che ti aiuta a fare esattamente questo. Spero che tu lo trovi utile

Problemi correlati