【问题标题】:Referencing any external java class from xsd从 xsd 引用任何外部 java 类
【发布时间】:2016-09-08 20:15:47
【问题描述】:

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

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

这是允许的吗?访问它的最佳方式是什么?

【问题讨论】:

    标签: java xml xsd jaxb schema


    【解决方案1】:

    这应该可行:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多