boolean (IXMLElement elt) { if (!name.equals(elt.getName())) { return false; } if (attributes.size() != elt.getAttributeCount()) { return false; } for (XMLAttribute attr : attributes) { if (!elt.hasAttribute(attr.getName(), attr.getNamespace())) { return false; } String value = elt.getAttribute(attr.getName(), attr.getNamespace(), null); if (!attr.getValue().equals(value)) { return false; } String type = elt.getAttributeType(attr.getName(), attr.getNamespace()); if (!attr.getType().equals(type)) { return false; } } if (children.size() != elt.getChildrenCount()) { return false; } for (int i = 0; i < children.size(); i++) { IXMLElement child1 = getChildAtIndex(i); IXMLElement child2 = elt.getChildAtIndex(i); if (!child1.equalsXMLElement(child2)) { return false; } } return true; }