boolean (@NotNull XmlElementDescriptor elementDescriptor, String tagName, Set<? super XmlElementDescriptor> visited) { final String name = elementDescriptor.getDefaultName(); if (name == null) { LOG.error(elementDescriptor + " returned null as default name"); return false; } if (name.equals(tagName)) { return true; } for (XmlElementDescriptor descriptor : elementDescriptor.getElementsDescriptors(null)) { if (!visited.contains(elementDescriptor)) { visited.add(elementDescriptor); if (hasTag(descriptor, tagName, visited)) { return true; } } } return false; }