Синтаксический анализ Jackson XML - два возможных типа данных (Android, Kotlin) - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь проанализировать XML для класса kotlin, используя Джексона, и он работает нормально, но схема говорит, например:

<xs:element name="Center" type="PointType">
<xs:annotation>
<xs:documentation>Represents a 2D or 3D Center Point</xs:documentation>
<xs:documentation>
Defined by either a coordinate text value ("north east" or "north east elev") or a CgPoint number reference "pntRef" attribute.
</xs:documentation>
</xs:annotation>
</xs:element>

Таким образом, центр может быть проанализирован для класса PointType или также может быть просто String.

//...
@JacksonXmlProperty(isAttribute = true, localName="Center")
    var center: PointType? = null,
//...

Этот код работает хорошо, но когда я пытаюсь с примером, где просто строка (два числа, разделенные пробелом), тогда у меня есть

Исключение com.fasterxml.jackson. databind.exc.MismatchedInputException: Невозможно создать экземпляр ...

Можно ли, например, игнорировать эту ошибку и добавить второе поле с типом String или что-то подобное?

1 Ответ

0 голосов
/ 08 ноября 2019

Лучший способ, который я нашел, это изменить тип на «Любой» в схеме. И тогда позже можно разыграть его используя «как».

...