public void parseActivities(Element element, Parse parse, CompositeElementImpl compositeElement) { List<Element> elements = XmlUtil.elements(element); for (Element nestedElement : elements) { String tagName = nestedElement.getLocalName(); String name = XmlUtil.attribute(nestedElement, "name"); String id = XmlUtil.attribute(nestedElement, "id", parse); TagBinding activityBinding = (TagBinding) getBinding(nestedElement, CATEGORY_ACTIVITY); if (activityBinding == null) { if (!"sequenceFlow".equals(tagName)) { log.debug("unrecognized activity: " + tagName); } continue; } ActivityImpl activity = compositeElement.createActivity(); parse.contextStackPush(activity); try { activity.setType(activityBinding.getTagName()); activity.setName(id); activity.setDescription(name); if (log.isDebugEnabled()) { log.debug("Parsing Activity: " + name + "(id=" + id + ")"); } ActivityBehaviour activityBehaviour = (ActivityBehaviour) activityBinding.parse(nestedElement, parse, this); activity.setActivityBehaviour(activityBehaviour); } finally { parse.contextStackPop(); } } }