Java JAXB不从模式生成@XmlRootElement

Java JAXB不从模式生成@XmlRootElement,java,xml,jaxb,Java,Xml,Jaxb,在Java1.6下使用JAXB生成Java类时,我遇到了一个问题,其中没有生成@XmlRootElement注释。 在模式文件中,我添加了以下块以强制xjc设置类名: <xs:annotation> <xs:appinfo> <jaxb:class name="ClassName" /> </xs:appinfo> </xs:annotation> 当我删除该块时,@XmlRootElement注释

在Java1.6下使用JAXB生成Java类时,我遇到了一个问题,其中没有生成
@XmlRootElement
注释。 在模式文件中,我添加了以下块以强制xjc设置类名:

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

当我删除该块时,
@XmlRootElement
注释就像我想要的那样生成


未在internet上找到此问题的解决方案,但希望与他人共享。

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


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

生成的ObjectFactory类具有并没有此类注释工厂方法,尽管它是模式中的复杂类型。将复杂类型内联到元素中或在internet上找到的其他“解决方案”无效。@user3012709-我链接到的博客文章给出了一个非常详细的示例。如果您将问题更新为包含XML模式,我可以提供有关您的用例的更多信息。谢谢Blaise。在命名复杂类型的情况下,由于它包含可以引用相同复杂类型的另一个实例的子元素,这将如何工作?(并且您仍然希望拥有
@XmlRootElement
。)