不幸的是,在外部綁定文件中定義自定義元素時,上面的優雅語法不起作用。 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>
產地:
@FieldBridge(impl = com.acme.foo.MyFieldBridge.class, params = {
@Parameter(name = "foo", value = "bar")
})
的另一種方法是綁定添加到您的模式:直接模式文件:
看到Annotate Plugin
hmmmm ...我有點困惑..你是說上面生成的輸出將在我的Adapter或package-info.java中產生? – Brad 2011-05-16 22:17:37
在您的package-info.java中,但您可以爲您的適配器執行 – EricParis16 2011-05-17 14:23:44
除了使用適配器之外,還有其他方式使用綁定文件進行類替換嗎? – Brad 2011-06-02 18:08:50