我正在试图弄清楚如何自定义由JAXB 2.1.12生成的方法名称。我有一个史诗般的XML模式(不在我的控制之下),它包含一个包含一个包含大约200个其他元素的choice元素的组。因此,当我生成JAXB类时,创建的get()方法相当无用 - 最终会出现类似“getElement1AndElement2AndElement3()”的内容。
我想将get()方法重命名为更好的方法,但我无法确切地知道如何做到这一点。我知道在the tutorial中它描述了通过在元素上使用来定制类名。
我发现了一篇非常古老的文章(http://onjava.com/pub/a/onjava/2003/12/10/jaxb.html?page=2),它描述了将“name”属性附加到元素上,这似乎是我需要做的。不幸的是,我认为该文章引用的是1.x JAXB版本,并且name属性在JAXB 2.0的选择元素中不再有效。
那么有人知道如何自定义生成的方法名称吗?如果示例或任何其他信息有用,或者如果我不想做的话,请告诉我。
谢谢!
答案 0 :(得分:5)
我已尝试使用您提供的链接中显示的示例,并且以下binding.xjb有效:
<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jxb:bindings>
<jxb:bindings schemaLocation="po4.xsd" node="/xs:schema/xs:element[@name='Widgets']//xs:complexType//xs:choice">
<jxb:property name="Shapes"/>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
我也使用JAXB 2.1.12。
我希望它有所帮助。