diff --git a/reqif/parsers/spec_types/relation_group_type_parser.py b/reqif/parsers/spec_types/relation_group_type_parser.py index 3b6b165..d2bd843 100644 --- a/reqif/parsers/spec_types/relation_group_type_parser.py +++ b/reqif/parsers/spec_types/relation_group_type_parser.py @@ -55,7 +55,11 @@ def unparse(spec_relation_type: ReqIFRelationGroupType): output += f' LAST-CHANGE="{spec_relation_type.last_change}"' if spec_relation_type.long_name is not None: output += f' LONG-NAME="{spec_relation_type.long_name}"' - if spec_relation_type.is_self_closed: + has_attributes = ( + spec_relation_type.attribute_definitions is not None + and len(spec_relation_type.attribute_definitions) > 0 + ) + if spec_relation_type.is_self_closed and not has_attributes: output += "/>\n" return output diff --git a/reqif/parsers/spec_types/spec_relation_type_parser.py b/reqif/parsers/spec_types/spec_relation_type_parser.py index 92a8a11..f31cc18 100644 --- a/reqif/parsers/spec_types/spec_relation_type_parser.py +++ b/reqif/parsers/spec_types/spec_relation_type_parser.py @@ -52,7 +52,11 @@ def unparse(spec_relation_type: ReqIFSpecRelationType): output += f' LAST-CHANGE="{spec_relation_type.last_change}"' if spec_relation_type.long_name is not None: output += f' LONG-NAME="{spec_relation_type.long_name}"' - if spec_relation_type.is_self_closed: + has_attributes = ( + spec_relation_type.attribute_definitions is not None + and len(spec_relation_type.attribute_definitions) > 0 + ) + if spec_relation_type.is_self_closed and not has_attributes: output += "/>\n" return output diff --git a/reqif/parsers/spec_types/specification_type_parser.py b/reqif/parsers/spec_types/specification_type_parser.py index de1684c..538ea6a 100644 --- a/reqif/parsers/spec_types/specification_type_parser.py +++ b/reqif/parsers/spec_types/specification_type_parser.py @@ -67,7 +67,10 @@ def unparse(spec_type: ReqIFSpecificationType) -> str: output += f' LONG-NAME="{spec_type.long_name}"' # Some documents have a SPECIFICATION-TYPE without any SPEC-ATTRIBUTES. - if spec_type.is_self_closed: + has_attributes = ( + spec_type.spec_attributes is not None and len(spec_type.spec_attributes) > 0 + ) + if spec_type.is_self_closed and not has_attributes: output += "/>\n" return output else: