def compare_dc(dc1, dc2):
    """
    Compares two Dublin Core catalogs by comparing the tag and text of every child element.

    :param dc1: First Dublin Core catalog
    :type dc1: ElementTree.Element
    :param dc2: Second Dublin Core catalog
    :type dc2: ElementTree.Element
    :return: true if equal
    :rtype: bool
    """

    if not dc1 and not dc2:
        return True

    if (not dc1 and dc2) or (dc1 and not dc2):
        return False

    children1 = dc1.findall("*")
    children2 = dc2.findall("*")

    if len(children1) != len(children2):
        return False

    for child1, child2 in zip(children1, children2):

        tag1 = child1.tag
        tag2 = child2.tag

        if tag1 != tag2:
            return False

        text1 = child1.text
        text2 = child2.text

        if text1 != text2:
            return False

    return True