繁体   English   中英

从XSD引用任何外部Java类

[英]Referencing any external java class from xsd

我正在创建xsd文件,并使用JAXB从这些xsd文件转换Java类。 在以下示例中,ClassB是在某个jar文件中定义/声明的,我想在我的xsd中像这样引用它:

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

可以吗? 最好的访问方式是什么?

这应该工作:

  <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 {
.
.
.
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM