2016-05-12 54 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 { 
. 
. 
. 
}