2012-11-06 7 views
7

Wenn ich ein Schema wie die folgenden:JAXB XJC Code-Generierung von Element initializers mit ihrer Erklärung

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

Es wird erzeugen so etwas wie:

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

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

Ist es möglich, die folgenden zu erzeugen stattdessen?

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

Dies ist so, dass, selbst wenn eine XML-Datei ein Kapitel Element in einem Buch fehlt, wenn es entordnet ist es immer noch ein Buch-Objekt erstellt werden, so dass es möglich ist, book.getChapter() zu tun. getWord() und eine leere Liste abrufen, anstatt auf Null zu prüfen.

Antwort

0

Sie können ein Plugin erstellen. Ich habe eine short tutorial geschrieben, die Ihnen hilft, genau das zu tun. Ich hoffe, Sie finden es hilfreich.