JAXB обработка xs: normalizedString - PullRequest
1 голос
/ 04 ноября 2011

Предположим, у вас сложный тип

<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. Существуют ли другие простые типы, с которыми это поведение будет происходить?

Приветствия,

Мэтью

...