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