JAXB处理xs:normalizedString

时间:2011-11-04 10:26:21

标签: java jaxb xsd

假设您有一个复杂类型

<xs:complexType name="RepeatingNormalizedStringType">
    <xs:sequence>
        <xs:element name="repeatingNormalizedString" type="xs:normalizedString" maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>

JAXB将元素repeatingNormalizedString映射到

@XmlElementRef(name = "repeatingNormalizedString", namespace = "urn:test", type = JAXBElement.class)
protected List<JAXBElement<String>> repeatingNormalizedString;

而不是

protected List<String> repeatingNormalizedString;
正如您所料,

normalizedString的所有子类型都会出现此问题。当重复组或序列中的元素具有类型normalizedString时,它也会显示,在这些情况下,组/序列将折叠为:

protected List<JAXBElement<?>> synthesisedGroupOrSequencePropertyName;

即使您通常期望List<Object>List<NearestCommonSupertype>

我已经阅读了JAXB规范,例如第6.7节,第6.12节但是找不到这种情况的任何描述。

我的两个问题:

  1. 为什么会出现这种情况?我的猜测是,normalizedString及其子类型必须具有应用于它们的类型适配器这一事实。
  2. 是否有其他简单类型会发生此行为?
  3. 干杯,

    马修

0 个答案:

没有答案