JAXB - XJC可以将appinfo编译成类结构吗?

时间:2010-09-16 09:37:22

标签: xml jaxb xjc

我有一个架构,由几个不同的应用程序读取表单生成;其中一个使用JAXB / XJC来编译其类结构。该模式包含友好域名的appinfo信息,例如:

<xs:element name="HomeAddress" type="xs:string">
  <xs:annotation>
    <xs:appinfo>Home address</xs:appinfo>
  </xs:annotation>
</xs:element>

有没有办法让XJC编译这些信息?

2 个答案:

答案 0 :(得分:6)

您可以使用Annotate plugin将任意Java注释添加到模式派生类中。使用此插件,您可以管理如下语法:

<xs:element name="HomeAddress" type="xs:string">
  <xs:annotation>
    <xs:appinfo>
      <ann:annotate xmlns:ann="http://annox.dev.java.net/com.acme.foo">
        <my:Label value="Home address"/>
      </ann:annotate>
    </xs:appinfo>
  </xs:annotation>
</xs:element>

你会得到类似的东西:

@Label("Home address") // FQCN is com.acme.foo.Label
public String getHomeAddress(...) {}

答案 1 :(得分:0)

我不知道使用JAXB参考实现附带的XJC工具来实现此目的。但是,XJC允许您创建可能需要的自定义插件: