@Override
  public boolean equalsXMLElement(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;
  }
@Override
  public boolean equalsXMLElement(IXMLElement elt)