解组会导致意外的元素消息

时间:2015-04-30 08:19:42

标签: xml eclipse xsd jaxb unmarshalling

目前,当我尝试从测试文件解组时,我正在处理错误消息。我收到以下错误消息:

  • 意外元素(uri:“”,local:“dataList”)。预期的元素是(无)

首先,在我的Eclipse环境中,我从模式文件生成Java类。此功能包含4个XSD。这是其中两个:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="statisticsTypes.xsd" />
<xs:element name="data" type="Data" />  
</xs:schema>

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="statisticsTypes.xsd" />
<xs:element name="dataList" type="DataList" />
</xs:schema>

statisticsTypes.xsd如下所示(仅部分代码):

    .....
    <xs:complexType name="Data">
    <xs:sequence>
        <xs:element name="abcType" type="ABCType" />
        <xs:element name="typeID" type="xs:long" />
    </xs:sequence>
    </xs:complexType>

<xs:complexType name="DataList">
    <xs:sequence>
        <xs:element name="data" type="Data" minOccurs="0"
            maxOccurs="unbounded" />
    </xs:sequence>
</xs:complexType>
.....

任何想法,如何解决这个问题?它必须是XSD文件中的问题,但仍然找不到要更改的部分。

最佳

更新1

生成的类Data和DataList没有@xmlrootelement。

更新2

虽然我可以通过集成绑定并允许供应商扩展来“解决”部分问题,但对于某些REST操作,我收到以下错误消息:

“找不到媒体类型的MessageBodyWriter = application / json,type = class ...,genericType = class ...”

我如何调整XSD来解决这个问题?

0 个答案:

没有答案