The XML deserialization wrongly attests that some valid XML files are invalid. This results in a failure to deserialize the asset administrative shell.
Expected behaviour (correct)
Successfully deserialize the shell.
Relevant logs and/or media (optional)
Traceback (most recent call last):
..
environment = xmlization.environment_from_file(filename)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 7581, in environment_from_file
return environment_from_iterparse(_with_elements_cleared_after_yield(iterator))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 7503, in environment_from_iterparse
raise exception
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 7500, in environment_from_iterparse
return _read_environment_as_element(next_element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 21046, in _read_environment_as_element
return _read_environment_as_sequence(element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 21011, in _read_environment_as_sequence
read_and_set_method(reader_and_setter, next_element, iterator)
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 20888, in read_and_set_submodels
item = _read_submodel_as_element(next_element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 12063, in _read_submodel_as_element
return _read_submodel_as_sequence(element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 12015, in _read_submodel_as_sequence
read_and_set_method(reader_and_setter, next_element, iterator)
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 11941, in read_and_set_submodel_elements
item = _read_submodel_element_as_element(next_element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 12091, in _read_submodel_element_as_element
return read_as_sequence(element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 13090, in _read_submodel_element_list_as_sequence
read_and_set_method(reader_and_setter, next_element, iterator)
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 13014, in read_and_set_value
item = _read_submodel_element_as_element(next_element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 12091, in _read_submodel_element_as_element
return read_as_sequence(element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 13593, in _read_submodel_element_collection_as_sequence
read_and_set_method(reader_and_setter, next_element, iterator)
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 13517, in read_and_set_value
item = _read_submodel_element_as_element(next_element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 12091, in _read_submodel_element_as_element
return read_as_sequence(element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 13090, in _read_submodel_element_list_as_sequence
read_and_set_method(reader_and_setter, next_element, iterator)
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 13014, in read_and_set_value
item = _read_submodel_element_as_element(next_element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 12091, in _read_submodel_element_as_element
return read_as_sequence(element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 13593, in _read_submodel_element_collection_as_sequence
read_and_set_method(reader_and_setter, next_element, iterator)
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 13517, in read_and_set_value
item = _read_submodel_element_as_element(next_element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 12091, in _read_submodel_element_as_element
return read_as_sequence(element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 13593, in _read_submodel_element_collection_as_sequence
read_and_set_method(reader_and_setter, next_element, iterator)
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 13517, in read_and_set_value
item = _read_submodel_element_as_element(next_element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 12091, in _read_submodel_element_as_element
return read_as_sequence(element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 14095, in _read_property_as_sequence
read_and_set_method(reader_and_setter, next_element, iterator)
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 14011, in read_and_set_value_type
self.value_type = _read_data_type_def_xsd_from_element_text(element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 20462, in _read_data_type_def_xsd_from_element_text
text = _read_text_from_element(element, iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "..venv/lib/python3.11/site-packages/aas_core3/xmlization.py", line 9391, in _read_text_from_element
raise DeserializationException(
aas_core3.xmlization.DeserializationException: Expected an element with text, but got an element with no text.
Steps to reproduce
Current behaviour (bug)
The XML deserialization wrongly attests that some valid XML files are invalid. This results in a failure to deserialize the asset administrative shell.
Expected behaviour (correct)
Successfully deserialize the shell.
Relevant logs and/or media (optional)
Minimal sample simple.zip
Other comment
The error is due to implementation details of the Python XML library (see the note for https://github.com/aas-core-works/aas-core-codegen/pull/443#issue-2125400814). It is thus dependend on the length of the XML file.
https://github.com/aas-core-works/aas-core-codegen/pull/443#issue-2125400814 addresses this issue.