java - JAXB 不会从架构生成 @XmlRootElement

标签 java xml jaxb

我在 Java 1.6 下使用 JAXB 生成 Java 类时遇到问题,其中未生成 @XmlRootElement 注释。 在架构文件中,我添加了以下 block 来强制 xjc 设置类名:

<xs:annotation>
    <xs:appinfo>
        <jaxb:class name="ClassName" />
    </xs:appinfo>
</xs:annotation>

当我删除这个 block 时,@XmlRootElement注释就按照我想要的那样生成了。

在互联网上没有找到该问题的解决方案,但想分享一下。

最佳答案

当从 XML 模式生成类时,JAXB 实现将为每个具有匿名复杂类型的全局元素生成一个用 @XmlRootElement 注释的类。具有命名复杂类型的全局元素将在生成的 ObjectFactory 类的 create 方法上具有 @XmlElementDecl 注释。

@XmlRootElement 与您在问题中引用的 JAXB 架构注释无关。

关于java - JAXB 不会从架构生成 @XmlRootElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21627269/

相关文章:

java - JSON 响应字符串中包含自动添加的反斜杠

java - 在以编程方式生成的元素上按父级对齐

xml - 如何从他们的 DTD 或 XSD 生成示例 XML 文档?

java - JAXB - 检查是否存在子元素

java - JAXB 更改服务器上的 XML 顺序,但不更改本地主机上的 XML 顺序

java - 在屏幕关闭时延迟接收器的启动 Activity

java - 表达式语言 : variables vs. 属性

xml - 将 tz 偏移量内不带冒号的 ISO 日期字符串转换为 XMLGregorianCalendar

java - 在 StringWriter 中获取字符串长度?

java - 来自 log4j2 的奇怪日志