【问题标题】:Adding annotations to package-info generated by JAXB向 JAXB 生成的 package-info 添加注释
【发布时间】:2014-08-07 13:37:04
【问题描述】:

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

我一直在尝试在我的 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 预计不会在那里。

还有其他方法吗?

【问题讨论】:

  • 请在我的回答中查看更新。

标签: jaxb2 jaxb2-basics annox


【解决方案1】:

作者在这里。

暂时不支持,但可以轻松实现。 请在此处提交问题: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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 2011-12-21
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多