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