Determine whether element conforms to etype

    :param element: Element to test for conformance
    :param etype: Type to test against
    :param namespace: Namespace to use to resolve forward references
    :return:

def conforms(element, etype, namespace: Dict[str, Any]) -> bool:
    """ Determine whether element conforms to etype

    :param element: Element to test for conformance
    :param etype: Type to test against
    :param namespace: Namespace to use to resolve forward references
    :return:
    """
    etype = proc_forward(etype, namespace)
    if is_union(etype):
        return union_conforms(element, etype, namespace, conforms)
    else:
        return element_conforms(element, etype)