private Definition parseEvent(XMLEvent event, Definition def) { StartElement se = event.asStartElement(); String elementName = se.getName().getLocalPart(); if (elementName.equals("catalog")) { return null; } Iterator<Attribute> attributes = se.getAttributes(); if (def == null) { Attribute id = attributes.next(); if (id.getName().toString() != ID) { throw new RuntimeException( "At line " + event.getLocation().getLineNumber() + ", problem with definition '" + elementName + "'. The first attribute of a definition must be called '" + ID + "'."); } def = new Definition(elementName, id.getValue()); // LogUtil.logger.info("def cree "+def.type+" - "+def.id); } else { DefElement de = new DefElement(elementName); while (attributes.hasNext()) { Attribute a = attributes.next(); de.addVal(a.getName().toString(), a.getValue()); } def.getElements().add(de); // LogUtil.logger.info(" element ajouté : "+de.name+" - "+de.getVal()); } return def; }