Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从xsd:choice元素自定义JAXB2.0生成的方法名称_Java_Xml_Jaxb - Fatal编程技术网

Java 从xsd:choice元素自定义JAXB2.0生成的方法名称

Java 从xsd:choice元素自定义JAXB2.0生成的方法名称,java,xml,jaxb,Java,Xml,Jaxb,我试图弄清楚如何定制由JAXB2.1.12生成的方法名。我有一个epicxmlschema(不在我的控制范围内),它包含一个带有choice元素的组,该元素包含大约200个其他元素。因此,当我生成JAXB类时,创建的get()方法是毫无帮助的——它最终类似于“getElement1AndElement2AndElement3()” 我想将get()方法重命名为更好的方法,但我不知道具体怎么做。我知道其中描述了通过在元素上使用自定义类名 我发现了一篇非常古老的文章(),它描述了将“name”属性附

我试图弄清楚如何定制由JAXB2.1.12生成的方法名。我有一个epicxmlschema(不在我的控制范围内),它包含一个带有choice元素的组,该元素包含大约200个其他元素。因此,当我生成JAXB类时,创建的get()方法是毫无帮助的——它最终类似于“getElement1AndElement2AndElement3()”

我想将get()方法重命名为更好的方法,但我不知道具体怎么做。我知道其中描述了通过在元素上使用自定义类名

我发现了一篇非常古老的文章(),它描述了将“name”属性附加到元素,这似乎是我需要做的。不幸的是,我认为这篇文章引用的是1.xJAXB版本,并且名称属性在JAXB2.0之后的choice元素中不再有效

那么,有人知道如何自定义生成的方法名吗?请让我知道,如果例子或任何其他信息将有帮助,或者如果我试图做的只是不可能


谢谢

我尝试了您提供的链接中公开的示例,下面的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>

我也使用JAXB2.1.12


我希望它能有所帮助。

是的,你是对的,它在示例中确实有效。很明显我做错了别的事。谢谢你向我指出这一点!好吧,我已经知道我的问题在哪里了。与我链接到的示例不同,我使用的模式启用了供应商自定义。这就是问题所在-如果标签在那里,我会在自定义文件中得到一个错误。没有标签,没有问题。似乎有一个非常旧的bug报告()已经归档。如果有人对解决方法有任何想法(除了删除简单标签,这会导致许多其他问题,我更愿意避免),我很有兴趣听他们说!我不会继续,因为在文档中提到了。“再次提醒读者,这是一种实验性的绑定模式”。。。这两个绑定完全不兼容。我可以支持你的其他问题。