diff --git a/sdk/basyx/aas/adapter/json/json_deserialization.py b/sdk/basyx/aas/adapter/json/json_deserialization.py index e6ae5c83..e5e975ea 100644 --- a/sdk/basyx/aas/adapter/json/json_deserialization.py +++ b/sdk/basyx/aas/adapter/json/json_deserialization.py @@ -427,7 +427,8 @@ def _construct_value_list(cls, dct: Dict[str, object]) -> model.ValueList: def _construct_value_reference_pair(cls, dct: Dict[str, object], object_class=model.ValueReferencePair) -> model.ValueReferencePair: return object_class(value=_get_ts(dct, 'value', str), - value_id=cls._construct_reference(_get_ts(dct, 'valueId', dict))) + value_id=cls._construct_reference(_get_ts(dct, 'valueId', dict)) + if 'valueId' in dct else None) # ############################################################################# # Direct Constructor Methods (for classes with `modelType`) starting from here @@ -705,6 +706,7 @@ def _construct_blob(cls, dct: Dict[str, object], object_class=model.Blob) -> mod @classmethod def _construct_file(cls, dct: Dict[str, object], object_class=model.File) -> model.File: + content_type = _get_ts(dct, "contentType", str) if 'contentType' in dct else None ret = object_class(id_short=None, value=None, content_type=_get_ts(dct, "contentType", str) if 'contentType' in dct else None) diff --git a/sdk/basyx/aas/adapter/xml/xml_deserialization.py b/sdk/basyx/aas/adapter/xml/xml_deserialization.py index e927addd..c231e142 100644 --- a/sdk/basyx/aas/adapter/xml/xml_deserialization.py +++ b/sdk/basyx/aas/adapter/xml/xml_deserialization.py @@ -1063,8 +1063,10 @@ def construct_submodel(cls, element: etree._Element, object_class=model.Submodel @classmethod def construct_value_reference_pair(cls, element: etree._Element, object_class=model.ValueReferencePair, **_kwargs: Any) -> model.ValueReferencePair: + value_id_element = element.find(NS_AAS + "valueId") + value_id = cls.construct_reference(value_id_element, **_kwargs) if value_id_element is not None else None return object_class(_child_text_mandatory(element, NS_AAS + "value"), - _child_construct_mandatory(element, NS_AAS + "valueId", cls.construct_reference)) + value_id) @classmethod def construct_value_list(cls, element: etree._Element, **_kwargs: Any) -> model.ValueList: