statemachine/io/scxml/parser.py:64:    # Parse datamodel
statemachine/io/scxml/parser.py:65:    datamodel = parse_datamodel(scxml)
statemachine/io/scxml/parser.py:66:    if datamodel:
statemachine/io/scxml/parser.py:67:        definition.datamodel = datamodel
statemachine/io/scxml/parser.py:90:def _find_own_datamodel_elements(root: ET.Element) -> List[ET.Element]:
statemachine/io/scxml/parser.py:91:    """Find <datamodel> elements that belong to this SCXML document, not to inline children.
statemachine/io/scxml/parser.py:93:    Skips any <datamodel> nested inside <content> elements (which contain inline
statemachine/io/scxml/parser.py:102:            if child.tag == "datamodel":
statemachine/io/scxml/parser.py:110:def parse_datamodel(root: ET.Element) -> "DataModel | None":
statemachine/io/scxml/parser.py:113:    for datamodel_elem in _find_own_datamodel_elements(root):
statemachine/io/scxml/parser.py:114:        for data_elem in datamodel_elem.findall("data"):
statemachine/io/scxml/parser.py:131:    # Parse <script> elements outside of <datamodel>
statemachine/io/scxml/schema.py:175:    datamodel: "DataModel | None" = None
statemachine/io/scxml/processor.py:21:from .actions import create_datamodel_action_callable
statemachine/io/scxml/processor.py:105:        # Process datamodel (initial variables)
statemachine/io/scxml/processor.py:106:        if definition.datamodel:
statemachine/io/scxml/processor.py:107:            datamodel = create_datamodel_action_callable(definition.datamodel)
statemachine/io/scxml/processor.py:108:            if datamodel:  # pragma: no branch – parse_datamodel guarantees non-empty
statemachine/io/scxml/processor.py:112:                    initial_state["enter"].insert(insert_pos, datamodel)  # type: ignore[arg-type]
