def are_equal_or_superset(superset_tree, base_tree):
    """Return True if ``superset_tree`` is equal to or a superset of ``base_tree``

    - Checks that all elements and attributes in ``superset_tree`` are present and
      contain the same values as in ``base_tree``. For elements, also checks that the
      order is the same.
    - Can be used for checking if one XML document is based on another, as long as all
      the information in ``base_tree`` is also present and unmodified in
      ``superset_tree``.

    """
    try:
        _compare_attr(superset_tree, base_tree)
        _compare_text(superset_tree, base_tree)
    except CompareError as e:
        logger.debug(str(e))
        return False
    return True