2016-05-12 15 views
0

Ich erstelle xsd-Dateien und konvertieren Java-Klassen aus diesen xsd-Dateien mit JAXB. Im folgenden Beispiel wurde ClassB definiert/in einigen jar-Datei deklariert und ich möchte es in meinem xsd so verweisen:Verweis auf eine externe Java-Klasse von xsd

<complexType name="ClassA"> 
    <sequence> 
    <element name="objB" type="ClassB" minOccurs="0" maxOccurs="unbounded"/> 
    </sequence> 
</complexType> 

Ist das erlaubt? Was ist der beste Weg, um darauf zuzugreifen?

Antwort

0

Dies sollte funktionieren:

<xs:complexType name="ClassBType" abstract="true"> 
    <xs:annotation> 
     <xs:appinfo> 
     <jaxb:class name="ClassB" implClass="fully.qualified.package.name.ClassB"/> 
     </xs:appinfo> 
    </xs:annotation> 
    </xs:complexType> 
    <!-- 

    --> 
    <xs:complexType name="ClassA"> 
    <xs:complexContent> 
     <xs:extension base="ClassBType"> 
    . 
    . 
    Any optional <xs:attribute> elements 
    . 
    . 
     </xs:extension> 
    </xs:complexContent> 
    </xs:complexType> 

Der generierte Java-Code wird eine Datei mit dem Namen ClassA.java erstellen, die wie folgt aussieht:

public class ClassA extends ClassB { 
. 
. 
. 
}