gpt4 book ai didi

java - 需要从绑定(bind)文件在 package-info.java 中生成 JAXB 注释

转载 作者:搜寻专家 更新时间:2023-11-01 00:58:21 25 4
gpt4 key购买 nike

我有一个 XmlAdapter 注释,我需要将其放入 package-info.java 中。问题是,我们的 package-info.java 是从 XJC 自动生成的。有没有办法使用JAXB绑定(bind)文件在package-info.java生成的时候自动给package-info.java加上这个注解?

@javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters
({
@javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter(value=Adapter.class,type=Original.class)
})

感谢您的帮助!

最佳答案

不幸的是,在外部绑定(bind)文件中定义自定义元素时,上面优雅的语法不起作用。Annotate Plugin 为您提供了一种从 XJC 绑定(bind)定制中读取注释并自动添加到您的 XmlAdapter 类中的方法。因此,您的适配器类将添加到您的 package-info.java。

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

<jaxb:bindings schemaLocation="schema.xsd" node="/xs:schema">
...
<jaxb:bindings node="xs:complexType[@name='...']/xs:sequence/xs:element[@name='name']">
<annox:annotate>
<annox:annotate
annox:class="org.hibernate.search.annotations.FieldBridge"
impl="com.acme.foo.MyFieldBridge">
<annox:annotate annox:field="params">
<annox:annotate annox:class="org.hibernate.search.annotations.Parameter"
name="foo"
value="bar"/>
</annox:annotate>
</annox:annotate>
</annox:annotate>
</jaxb:bindings>
...
</jaxb:bindings>

</jaxb:bindings>

产生:

@FieldBridge(impl = com.acme.foo.MyFieldBridge.class, params = {
@Parameter(name = "foo", value = "bar")
})

另一种方法是将绑定(bind)添加到您的模式:直接在模式文件中:

参见 Annotate Plugin

关于java - 需要从绑定(bind)文件在 package-info.java 中生成 JAXB 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5996562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com