从xsd:choice元素自定义JAXB 2.0生成的方法名称

Mar*_*k D 3 java xml jaxb

我试图弄清楚如何自定义由JAXB 2.1.12生成的方法名称.我有一个史诗般的XML模式(不在我的控制之下),它包含一个包含一个包含大约200个其他元素的choice元素的组.所以,当我生成JAXB类,创建的get()方法是相当无用的 - 它最终被类似"getElement1AndElement2AndElement3()".

我想将get()方法重命名为更好的东西,但我无法弄明白该怎么做.我在教程中知道它描述了通过在元素上使用来定制类名.

我发现了一篇非常古老的文章(http://onjava.com/pub/a/onjava/2003/12/10/jaxb.html?page=2),它描述了将"name"属性附加到元素上,这似乎是是我需要做的.不幸的是,我认为该文章引用了1.x JAXB版本,并且name属性在JAXB 2.0的选择元素中不再有效.

那么有谁知道如何自定义生成的方法名称?如果示例或任何其他信息有用,或者我正在尝试做的事情是不可能的,请告诉我.

谢谢!

roc*_*chb 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>
Run Code Online (Sandbox Code Playgroud)

我也使用JAXB 2.1.12.

我希望它有所帮助.