XSD继承导致Jersey / JAXB出现问题

时间:2014-08-19 19:08:23

标签: jaxb xsd jersey

我有以下XSD文件(显示的内容):

<xs:element name="person" type="Person"/>
<xs:element name="child" type="Child"/>

<xs:complexType name="Person">
    <xs:sequence>
       <xs:element name="age" type="xs:int"/>
       <xs:element name="sex" type="xs:string"/>
       <xs:element name="fullname" type="xs:string"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="Child">
    <xs:complexContent>
        <xs:extension base="Person">
            <xs:sequence>
                <xs:element name="grade" type="xs:string"/>
                <xs:element name="school" type="xs:string"/>
            </xs:sequence>
        </xs:extension>
    </xs:complexContent>
</xs:complexType>

我可以编组Child类的实例,并使用Jersey REST API将它们发送到客户端浏览器。

但是当我尝试为Person类执行此操作时,它不再有效。我收到错误消息:

A message body writer for Java class app.Person, and Java type class app.Person, and MIME media type application/xml was not found

通过扩展Person模式类型,我是否以某种方式将其渲染为不再是根级元素?当Child没有扩展Person时,它工作正常。

0 个答案:

没有答案