/** * Recursively traverse and add the descendant with the given name to the descendants list. * * @param descendants List to add descendants * @param currentElement Current node * @param qname Qualified name of the descendants to search */ protected void addDescendants(List<BXML<?>> descendants, OMElement currentElement, String qname) { Iterator<OMNode> childrenItr = currentElement.getChildren(); while (childrenItr.hasNext()) { OMNode child = childrenItr.next(); if (child.getType() != OMNode.ELEMENT_NODE) { continue; } if (qname.equals(((OMElement) child).getQName().toString())) { descendants.add(new BXMLItem(child)); continue; } addDescendants(descendants, (OMElement) child, qname); } }