使用带继承的JaxB从Schema生成Java类

时间:2014-02-07 22:18:35

标签: java xml eclipse jaxb

我有这个xsd:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name="figures" type="Figures" />

<xsd:complexType name="Figures">
    <xsd:sequence>
        <xsd:element name="figure" type="Figure" />
    </xsd:sequence>
</xsd:complexType>


<xsd:complexType name="Figure">
    <xsd:sequence>
        <xsd:element name="argument" type="xsd:double" />
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string" />
    <xsd:attribute name="type" type="xsd:string" />
    <xsd:attribute name="area" type="xsd:string" />
</xsd:complexType>

</xsd:schema>

这个xjb:

<?xml version="1.0"?>
<jxb:bindings version="1.0" 
  xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
  xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
  jxb:extensionBindingPrefixes="xjc">

    <jxb:bindings schemaLocation="FiguresDefinition.xsd">
      <jxb:bindings node="//xs:complexType[@name='Figure']">
        <inheritance:implements>figures.Figure</inheritance:implements> 
      </jxb:bindings>
    </jxb:bindings>

</jxb:bindings>

我的想法是创建一个Figure抽象类,并使用属性“argument”来创建对象。

但是当我生成课程时,我得到了:

[ERROR]不支持的绑定名称空间“http://jaxb2-commons.dev.java.net/basic/inheritance”。也许你的意思是“http://jaxb.dev.java.net/plugin/code-injector”?

我不知道它是否足够清楚,但我希望能够使用名称类型区域来实例化图对象和XML中的参数

0 个答案:

没有答案