Bra*_*rad 5 java binding jaxb adapter
我有一个XmlAdapter我需要放在package-info.java中的注释.问题是,我们的package-info.java是从XJC自动生成的.有没有办法在生成时使用JAXB绑定文件自动将此注释添加到package-info.java?
@javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters
({
@javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter(value=Adapter.class,type=Original.class)
})
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
小智 0
不幸的是,在外部绑定文件中定义自定义元素时,上面的优雅语法不起作用。Annotate Plugin 为您提供了一种从 XJC 绑定自定义读取注释并自动添加到您的 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>
Run Code Online (Sandbox Code Playgroud)
生产:
@FieldBridge(impl = com.acme.foo.MyFieldBridge.class, params = {
@Parameter(name = "foo", value = "bar")
})
Run Code Online (Sandbox Code Playgroud)
另一种方法是将绑定添加到您的架构:直接在架构文件中:
请参阅注释插件
| 归档时间: |
|
| 查看次数: |
3398 次 |
| 最近记录: |