当前位置: 首页 > 面试题库 >

如何使用xjc和自定义绑定生成XMLElementWrapper批注

廉鸿运
2023-03-14
问题内容

我正在使用JAXB和xjc将XML Schema编译为Java类。我不想手动编辑此生成的类。我有这样的xml模式:

<xs:element name="root">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="items">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="item" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

xjc生成Items仅包含Item对象列表的类。是否有机会省略该类ItemsItem直接在Root该类中具有对象列表?

我知道可以通过@XMLElementWrapper注释来完成,但是我不知道如何告诉xjc创建此类注释。

感谢您的任何建议!

最好的问候,马库斯


问题答案:

Bjarne Hansen为xjc开发了一个插件,可以解决此问题。不幸的是,到原始实现的链接现在已失效。但是,Dmitry
Katsubo在github上有一个项目,该项目基于Bjarne的原始代码并进行了一些其他改进。

→ https://github.com/dmak/jaxb-xew-plugin

(仅供参考:原始链接,现已失效:http : //www.conspicio.dk/blog/bjarne/jaxb-
xmlelementwrapper-plugin



 类似资料:
  • 问题内容: 有一些方法可以在使用JAXB生成的类中生成自定义方法。 我搜索了包括oracle的教程在内的教程,但没有找到明确的说明来说明如何自定义XML Schema中描述的生成类的方法。 问题答案: 您可以编写一个XJC插件: http://weblogs.java.net/blog/kohsuke/archive/2005/06/writing_a_plugi.html

  • 这过去适用于所有以前版本的JAXB。我已经升级到JAXB的2.2.7版本,现在抛出以下内容: java.lang.AssertionError:javax.xml.bind.jaxBException-带有链接异常:[com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:1 counts of IllegalAnnotat

  • 当我试图使用数据绑定和绑定布局中的自定义XML标记运行项目时,遇到以下描述的构建错误:

  • 在我们的项目中,我们正试图从Spring标准AOP转移到AspectJ,正如在许多类似的地方所解释的那样(我们需要使事务处理成为一些私有和受保护的方法)。 我们已经能够使用标准的Spring注释(如)来很好地完成这项工作。但是我们面临的问题是,在我们的项目中,有一些自定义注释(不是自定义方面)是AeyJ无法识别的。例如,我们有一个注释“扩展”(仅修改属性): 你知道如何告诉AspectJ也给wea

  • 问题内容: 建议和有时是必要的,即表示值(类 值类 )来覆盖,[和任选]的方法。这些方法返回的值取决于类及其超类的成员变量的全部或子集。为了实现它们正常,你必须了解理论的一点点 散列 和代数和集理论的一点点(不要太多,几乎一切都在explaind 的javadoc 这些方法和有效的Java形式乔希布洛赫。) 在大多数情况下,此方法的实现遵循一个模板,并且IDE(如Eclipse JDT)包括生成它

  • 我使用XML模式,并用xjc生成java文件,以便与JAXB一起使用。生成的java文件具有默认的@XmlAccessorType(XmlAccessType。字段)指定。我想改变这一点,使生成的java文件具有带注释的属性访问(@XmlAccessorType(XmlAccessType。属性),并且不在字段级别生成@XmlElement / @XmlAttribute批注。有没有办法通过自定义