From 5d9810e43ad4aa4d113615d2765c06b617bcac50 Mon Sep 17 00:00:00 2001 From: Sercan Sahin Date: Mon, 1 Dec 2025 09:50:16 +0100 Subject: [PATCH 1/5] update contentType to be optional --- sdk/basyx/aas/model/submodel.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk/basyx/aas/model/submodel.py b/sdk/basyx/aas/model/submodel.py index 6ce0d22e..ea55c3ff 100644 --- a/sdk/basyx/aas/model/submodel.py +++ b/sdk/basyx/aas/model/submodel.py @@ -474,7 +474,7 @@ class Blob(DataElement): def __init__(self, id_short: Optional[base.NameType], - content_type: base.ContentType, + content_type: Optional[base.ContentType], value: Optional[base.BlobType] = None, display_name: Optional[base.MultiLanguageNameType] = None, category: Optional[base.NameType] = None, @@ -492,7 +492,7 @@ def __init__(self, super().__init__(id_short, display_name, category, description, parent, semantic_id, qualifier, extension, supplemental_semantic_id, embedded_data_specifications) self.value: Optional[base.BlobType] = value - self.content_type: base.ContentType = content_type + self.content_type: Optional[base.ContentType] = content_type @_string_constraints.constrain_content_type("content_type") @@ -528,7 +528,7 @@ class File(DataElement): def __init__(self, id_short: Optional[base.NameType], - content_type: base.ContentType, + content_type: Optional[base.ContentType], value: Optional[base.PathType] = None, display_name: Optional[base.MultiLanguageNameType] = None, category: Optional[base.NameType] = None, @@ -546,7 +546,7 @@ def __init__(self, super().__init__(id_short, display_name, category, description, parent, semantic_id, qualifier, extension, supplemental_semantic_id, embedded_data_specifications) self.value: Optional[base.PathType] = value - self.content_type: base.ContentType = content_type + self.content_type: Optional[base.ContentType] = content_type class ReferenceElement(DataElement): From 1ff1dbddfa42e05d418bb0ff9e3b24546e43a401 Mon Sep 17 00:00:00 2001 From: Sercan Sahin Date: Wed, 10 Dec 2025 16:30:25 +0100 Subject: [PATCH 2/5] adapt serialization --- sdk/basyx/aas/adapter/json/json_serialization.py | 6 ++++-- sdk/basyx/aas/model/submodel.py | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/sdk/basyx/aas/adapter/json/json_serialization.py b/sdk/basyx/aas/adapter/json/json_serialization.py index 8f21fe91..afc6bf9c 100644 --- a/sdk/basyx/aas/adapter/json/json_serialization.py +++ b/sdk/basyx/aas/adapter/json/json_serialization.py @@ -476,7 +476,8 @@ def _blob_to_json(cls, obj: model.Blob) -> Dict[str, object]: :return: dict with the serialized attributes of this object """ data = cls._abstract_classes_to_json(obj) - data['contentType'] = obj.content_type + if obj.content_type is not None: + data['contentType'] = obj.content_type if obj.value is not None: data['value'] = base64.b64encode(obj.value).decode() return data @@ -490,7 +491,8 @@ def _file_to_json(cls, obj: model.File) -> Dict[str, object]: :return: dict with the serialized attributes of this object """ data = cls._abstract_classes_to_json(obj) - data['contentType'] = obj.content_type + if obj.content_type is not None: + data['contentType'] = obj.content_type if obj.value is not None: data['value'] = obj.value return data diff --git a/sdk/basyx/aas/model/submodel.py b/sdk/basyx/aas/model/submodel.py index ea55c3ff..7fbc3eea 100644 --- a/sdk/basyx/aas/model/submodel.py +++ b/sdk/basyx/aas/model/submodel.py @@ -474,7 +474,7 @@ class Blob(DataElement): def __init__(self, id_short: Optional[base.NameType], - content_type: Optional[base.ContentType], + content_type: Optional[base.ContentType] = None, value: Optional[base.BlobType] = None, display_name: Optional[base.MultiLanguageNameType] = None, category: Optional[base.NameType] = None, @@ -528,7 +528,7 @@ class File(DataElement): def __init__(self, id_short: Optional[base.NameType], - content_type: Optional[base.ContentType], + content_type: Optional[base.ContentType] = None, value: Optional[base.PathType] = None, display_name: Optional[base.MultiLanguageNameType] = None, category: Optional[base.NameType] = None, From 0fd0bd3937ef82fb773a5d44d5ac26641fcd9a89 Mon Sep 17 00:00:00 2001 From: Leon Huang Date: Mon, 2 Feb 2026 13:56:31 +0100 Subject: [PATCH 3/5] copyright mismatch edit --- sdk/basyx/aas/adapter/json/json_serialization.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/basyx/aas/adapter/json/json_serialization.py b/sdk/basyx/aas/adapter/json/json_serialization.py index afc6bf9c..4f03ce71 100644 --- a/sdk/basyx/aas/adapter/json/json_serialization.py +++ b/sdk/basyx/aas/adapter/json/json_serialization.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 the Eclipse BaSyx Authors +# Copyright (c) 2026 the Eclipse BaSyx Authors # # This program and the accompanying materials are made available under the terms of the MIT License, available in # the LICENSE file of this project. From 6d71aad43b8af24fef9514a51d7d650290187639 Mon Sep 17 00:00:00 2001 From: Leon Huang Date: Sun, 8 Feb 2026 14:12:27 +0100 Subject: [PATCH 4/5] content_type adjustment in XML serialization --- sdk/basyx/aas/adapter/xml/xml_serialization.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sdk/basyx/aas/adapter/xml/xml_serialization.py b/sdk/basyx/aas/adapter/xml/xml_serialization.py index 0607a064..ee0b8b4b 100644 --- a/sdk/basyx/aas/adapter/xml/xml_serialization.py +++ b/sdk/basyx/aas/adapter/xml/xml_serialization.py @@ -627,7 +627,8 @@ def blob_to_xml(obj: model.Blob, if obj.value is not None: et_value.text = base64.b64encode(obj.value).decode() et_blob.append(et_value) - et_blob.append(_generate_element(NS_AAS + "contentType", text=obj.content_type)) + if obj.content_type is not None: + et_blob.append(_generate_element(NS_AAS + "contentType", text=obj.content_type)) return et_blob @@ -643,7 +644,8 @@ def file_to_xml(obj: model.File, et_file = abstract_classes_to_xml(tag, obj) if obj.value: et_file.append(_generate_element(NS_AAS + "value", text=obj.value)) - et_file.append(_generate_element(NS_AAS + "contentType", text=obj.content_type)) + if obj.content_type is not None: + et_file.append(_generate_element(NS_AAS + "contentType", text=obj.content_type)) return et_file From 7a01626e292d9a958e94175ad5ab52c4a0581729 Mon Sep 17 00:00:00 2001 From: Leon Huang Date: Sun, 8 Feb 2026 14:16:42 +0100 Subject: [PATCH 5/5] copyright mismatch edit --- sdk/basyx/aas/adapter/xml/xml_serialization.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/basyx/aas/adapter/xml/xml_serialization.py b/sdk/basyx/aas/adapter/xml/xml_serialization.py index ee0b8b4b..c309ee1d 100644 --- a/sdk/basyx/aas/adapter/xml/xml_serialization.py +++ b/sdk/basyx/aas/adapter/xml/xml_serialization.py @@ -1,4 +1,4 @@ -# Copyright (c) 2025 the Eclipse BaSyx Authors +# Copyright (c) 2026 the Eclipse BaSyx Authors # # This program and the accompanying materials are made available under the terms of the MIT License, available in # the LICENSE file of this project.