我有一個相當大的xsd
我從中使用org.jvnet.jaxb2.maven2.maven-jaxb2-plugin
生成JaxB類。元素名稱全部用大寫字母分隔,如下劃線FOO_BAR_BAZ
。這導致生成的類的可怕名稱,例如FOOBARBAZ
。理想情況下,我希望它被配對爲FooBarBaz
。用<jxb:class>
元素擴展定義不是一種選擇。一般改變JaxB類名映射
是否有一種通用的方法來重寫jaxb如何將元素名稱映射到java類名?
我有一個相當大的xsd
我從中使用org.jvnet.jaxb2.maven2.maven-jaxb2-plugin
生成JaxB類。元素名稱全部用大寫字母分隔,如下劃線FOO_BAR_BAZ
。這導致生成的類的可怕名稱,例如FOOBARBAZ
。理想情況下,我希望它被配對爲FooBarBaz
。用<jxb:class>
元素擴展定義不是一種選擇。一般改變JaxB類名映射
是否有一種通用的方法來重寫jaxb如何將元素名稱映射到java類名?
對於此用例,您可以調查創建自定義XJC插件來自定義如何派生Java類名稱。
您可以使用外部綁定聲明文件,其中包含一些類似的一個.xjb
文件:
<jxb:bindings node="//xs:element[@name='FOO_BAR_BAZ']">
<jxb:class name="FooBarBaz"/>
<jxb:property name="FooBarBaz"/>
</jxb:bindings>
但你必須這樣做,所有的類被生成。您可能需要配置maven插件的bindingDirectory
屬性。
定義可能會發生變化,所以我需要一個通用的解決方案。元素的數量也會使這個解決方案變得不切實際。 –
這看起來很有前途。我希望有人遇到過這樣的問題,並且確實如此。 –