2016-05-12 3 views
0

私はxsdファイルを作成し、JAXBを使用してそれらのxsdファイルからJavaクラスを変換しています。次の例では、ClassBのは、いくつかのjarファイルで宣言/定義されていたと私はこのように私のXSDでそれを参照するようにしたい:xsdから外部Javaクラスを参照する

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

が、これは許可されていますか?それにアクセスする最善の方法は何ですか?

答えて

0

これは動作するはずです:

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

生成されたJavaコードは次のようになりClassA.javaという名前のファイルを作成します。

public class ClassA extends ClassB { 
. 
. 
. 
} 
関連する問題