### Question:
XMLChangeDescription { @XmlElements({ @XmlElement(name = "beanShell", namespace = "http: @XmlElement(name = "groovy", namespace = "http: @XmlElement(name = "impEx", namespace = "http: @XmlElement(name = "sql", namespace = "http: public List<XMLChange> getChanges() { return changes; }  @XmlElements({ @XmlElement(name = "beanShell", namespace = "http://firefly.neuland-bfi.de/v1", type = XMLBeanShell.class), @XmlElement(name = "groovy", namespace = "http://firefly.neuland-bfi.de/v1", type = XMLGroovy.class), @XmlElement(name = "impEx", namespace = "http://firefly.neuland-bfi.de/v1", type = XMLImpEx.class), @XmlElement(name = "sql", namespace = "http://firefly.neuland-bfi.de/v1", type = XMLSql.class) }) List<XMLChange> getChanges(); @XmlElement(name = "precondition", namespace = "http://firefly.neuland-bfi.de/v1") List<XMLPrecondition> getPreconditions(); @Override String toString();  }### Answer:
@Test public void shouldParseChangeList() throws Exception { String xmlFile = "resources/changes/v1/changeDescription.xml"; XMLChangeDescription changeDescription = TestUtils.loadXML(XMLChangeDescription.class, xmlFile); assertEquals(4, changeDescription.getChanges().size()); assertEquals(XMLBeanShell.class, changeDescription.getChanges().get(0).getClass()); assertEquals(XMLGroovy.class, changeDescription.getChanges().get(1).getClass()); assertEquals(XMLImpEx.class, changeDescription.getChanges().get(2).getClass()); assertEquals(XMLSql.class, changeDescription.getChanges().get(3).getClass()); }