SubmodelElementListsHaveExactlyOneElementInTree🔗

Type: Transpilable verification function
Recursively check that submodel element lists have exactly one child.

Code

if isinstance(element, Submodel_element_list):
    return (
        element.value is not None
        and len(element.value) == 1
        and all(
            submodel_element_lists_have_exactly_one_element_in_tree(child)
            for child in element.value
        )
    )

if isinstance(element, Submodel_element_collection):
    return element.value is None or all(
        submodel_element_lists_have_exactly_one_element_in_tree(child)
        for child in element.value
    )

if isinstance(element, Entity):
    return element.statements is None or all(
        submodel_element_lists_have_exactly_one_element_in_tree(child)
        for child in element.statements
    )

if isinstance(element, Annotated_relationship_element):
    return element.annotations is None or all(
        submodel_element_lists_have_exactly_one_element_in_tree(child)
        for child in element.annotations
    )

return True