为JAXB生成的package-info添加注释

时间:2014-08-07 13:37:04

标签: jaxb2 jaxb2-basics annox

我一直在使用annox在我的jaxb生成的类上添加注释(通过绑定文件),但我找不到直接在包(package-info.java)上添加注释的方法。 / p>

我一直在尝试在bindings.xml中执行类似的操作:

<jaxb:schemaBindings>
    <jaxb:package name="my.package">
        <annox:annotate>
            <annox:annotate annox:class="my.Annotation" />
        </annox:annotate>
    </jaxb:package>
</jaxb:schemaBindings>

但jaxb抱怨annox:annotate不会出现在那里。

还有其他办法吗?

1 个答案:

答案 0 :(得分:3)

作者在这里。

目前不支持此功能,但可以轻松实现。 请在此处提出问题:https://github.com/highsource/annox/issues

这样做的方法是使用@target="package"。因此,您必须自定义此包中的内容(类,无论如何),并将target属性设置为package。然后,注释将转到package-info.java

<强>更新

这是在JAXB2 Annotate Plugin 1.0.0中实现的。

https://github.com/highsource/jaxb2-annotate-plugin/issues/1

Example

<jaxb:bindings
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:annox="http://annox.dev.java.net"
    jaxb:extensionBindingPrefixes="annox"

    jaxb:version="2.1">

    <jaxb:bindings schemaLocation="schema.xsd" node="/xsd:schema">
        <jaxb:bindings node="xsd:complexType[@name='issueJIIB43Type']">
            <annox:annotate target="class">@javax.xml.bind.annotation.XmlRootElement("someElement")</annox:annotate>
            <annox:annotate target="package">@javax.xml.bind.annotation.XmlSchema(elementFormDefault=javax.xml.bind.annotation.XmlNsForm.QUALIFIED)</annox:annotate>
            <annox:annotatePackage>@javax.annotation.Generated({"XJC"})</annox:annotatePackage>
        </jaxb:bindings>
    </jaxb:bindings>
</jaxb:bindings>