Я хочу отобразить следующую структуру XML на мои POJO, используя библиотеку jackson-databind-xml.
Какие аннотации необходимы для правильного разбора строки
<fontSize fontWidthPx="8" fontSizePt="10" fontStyle="BOLD" />
на два объекта?
Отображение работает нормально, если я определяю свою структуру Input XML следующим образомthis:
<fontSizes>
<fontSize fontWidthPx="8">
<fontType fontSizePt="10" fontStyle="BOLD"/>
</fontSize>
<fontSize fontWidthPx="7">
<fontType fontSizePt="10" fontStyle="REGULAR"/>
</fontSize>
</fontSizes>
Структура ввода XML:
<?xml version="1.0" encoding="UTF-8" ?>
<alphabet productFamily="FAMILYXY">
<alphabetCharacter>
<unicodeChar>A</unicodeChar>
<sortPosition>1</sortPosition>
<keyboardPosition>23</keyboardPosition>
<fontSizes>
<fontSize fontWidthPx="13" fontSizePt="10" fontStyle="BOLD" />
<fontSize fontWidthPx="11" fontSizePt="10" fontStyle="REGULAR" />
</fontSizes>
</alphabetCharacter>
<alphabetCharacter>
<unicodeChar>B</unicodeChar>
<sortPosition>2</sortPosition>
<keyboardPosition>26</keyboardPosition>
<fontSizes>
<fontSize fontWidthPx="8" fontSizePt="10" fontStyle="BOLD" />
<fontSize fontWidthPx="7" fontSizePt="10" fontStyle="REGULAR" />
</fontSizes>
</alphabetCharacter>
</alphabet>
POJO:
@JacksonXmlRootElement(localName = "alphabet")
public class AlphabetXmlWrapper {
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty
private List<AlphabetCharacterEntity> alphabetCharacter;
@JacksonXmlProperty(isAttribute = true)
private ProductFamily productFamily;
}
public class AlphabetCharacterEntity {
private Integer keyboardPosition;
private Integer sortPosition;
private Character unicodeChar;
private Set<FontSizeEntity> fontSizes = new HashSet<>();
}
public class FontSizeEntity {
private Integer fontWidthPx;
private FontTypeEntity fontType;
}
public class FontTypeEntity {
@JacksonXmlProperty(isAttribute = true)
private Integer fontSizePt;
//FontStyle is of type ENUM String
private FontStyle fontStyle;
}