@Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { LegendsRawInfo legendsRawInfo = new LegendsRawInfo(); // setting the defaults based on legends element attributes legendsRawInfo.setDefaultWidth(toInteger(reader.getAttribute("defaultWidth"))); legendsRawInfo.setDefaultHeight(toInteger(reader.getAttribute("defaultHeight"))); legendsRawInfo.setDefaultFormat(reader.getAttribute("defaultFormat")); // parsing all legends information while (reader.hasMoreChildren()) { reader.moveDown(); legendsRawInfo.addLegendRawInfo(parseLegendRawInfo(reader)); reader.moveUp(); } return legendsRawInfo; }