我有以下XSD我用它来生成的JAXB对象JAXB解析 “minOccours” - 问题与unmarshling
<xs:complexType name="packageType">
<xs:sequence>
<xs:element ref="package" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="dependencies" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="id" type="xs:NMTOKEN" use="required"/>
</xs:complexType>
现在,如果我收到一个XML
- 没有依赖标签
- 空依赖关系标记即
示例XML
<package id="FA33" required="false" empty="false">
<dependencies />
</package>
在上述例子中,如果删除了“依赖性”空标签,JAXB抛出“包的意外结束”错误。
由于minOccours在那里,这两种情况都不应该有所作为。但在我的情况下,JAXB无法取消恶化给定的xml case1即,如果没有依赖关系标记。如果有一个空的依赖关系标记,那么它会很好。
它是预期的行为还是它做错了什么?
P.S: 我使用JAXB 1.3
JAXB 1参考实现的1.3版本相当陈旧。您是否可以升级到JAXB 2规范的实现:Metro,EclipseLink MOXy,Apache JaxMe等? –
你在问这里的依赖关系。在你发布的代码片段中有“依赖关系”。你可以发布与依赖关系的片段吗?也许你错过了那里的一些东西。 –
升级到版本2目前不是一种选择。这是一个错误,我已经解决了我的问题,将“依赖关系”替换为“依赖关系”。还有一个样本xml。 –