Skip to content

Commit f48ed62

Browse files
authored
do not export empty <ssd:connectors/> (#1322)
1 parent a06c112 commit f48ed62

3 files changed

Lines changed: 17 additions & 17 deletions

File tree

src/OMSimulatorLib/ComponentFMUCS.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -366,15 +366,18 @@ oms_status_enu_t oms::ComponentFMUCS::exportToSSD(pugi::xml_node& node, Snapshot
366366
node.append_attribute("name") = this->getCref().c_str();
367367
node.append_attribute("type") = "application/x-fmu-sharedlibrary";
368368
node.append_attribute("source") = getPath().c_str();
369-
pugi::xml_node node_connectors = node.append_child(oms::ssp::Draft20180219::ssd::connectors);
370369

371370
if (element.getGeometry())
372371
element.getGeometry()->exportToSSD(node);
373372

374-
for (const auto& connector : connectors)
375-
if (connector)
376-
if (oms_status_ok != connector->exportToSSD(node_connectors))
377-
return oms_status_error;
373+
if (connectors.size() > 1)
374+
{
375+
pugi::xml_node node_connectors = node.append_child(oms::ssp::Draft20180219::ssd::connectors);
376+
for (const auto& connector : connectors)
377+
if (connector)
378+
if (oms_status_ok != connector->exportToSSD(node_connectors))
379+
return oms_status_error;
380+
}
378381

379382
// export ParameterBindings at component level
380383
values.exportParameterBindings(node, snapshot, variantName);

src/OMSimulatorLib/ComponentFMUME.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -364,15 +364,18 @@ oms_status_enu_t oms::ComponentFMUME::exportToSSD(pugi::xml_node& node, Snapshot
364364
node.append_attribute("name") = this->getCref().c_str();
365365
node.append_attribute("type") = "application/x-fmu-sharedlibrary";
366366
node.append_attribute("source") = getPath().c_str();
367-
pugi::xml_node node_connectors = node.append_child(oms::ssp::Draft20180219::ssd::connectors);
368367

369368
if (element.getGeometry())
370369
element.getGeometry()->exportToSSD(node);
371370

372-
for (const auto& connector : connectors)
373-
if (connector)
374-
if (oms_status_ok != connector->exportToSSD(node_connectors))
375-
return oms_status_error;
371+
if (connectors.size() > 1)
372+
{
373+
pugi::xml_node node_connectors = node.append_child(oms::ssp::Draft20180219::ssd::connectors);
374+
for (const auto& connector : connectors)
375+
if (connector)
376+
if (oms_status_ok != connector->exportToSSD(node_connectors))
377+
return oms_status_error;
378+
}
376379

377380
// export ParameterBindings at component level
378381
values.exportParameterBindings(node, snapshot, variantName);

testsuite/simulation/import_export_signalFilter2.lua

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ oms_terminate("model")
4242
oms_delete("model")
4343

4444
-- Result:
45-
-- warning: invalid "SystemStructureDescription" detected in file "signalFilterVars.ssp" at line: 18 column: 27, element 'Connectors' is not allowed for content model '(Connector+)'
46-
-- warning: "SystemStructureDescription" does not conform to the SSP standard schema
4745
-- <?xml version="1.0"?>
4846
-- <oms:snapshot
4947
-- xmlns:oms="https://raw.githubusercontent.com/OpenModelica/OMSimulator/master/schema/oms.xsd"
@@ -65,9 +63,7 @@ oms_delete("model")
6563
-- <ssd:Component
6664
-- name="testArray"
6765
-- type="application/x-fmu-sharedlibrary"
68-
-- source="resources/0001_testArray.fmu">
69-
-- <ssd:Connectors />
70-
-- </ssd:Component>
66+
-- source="resources/0001_testArray.fmu" />
7167
-- </ssd:Elements>
7268
-- <ssd:Annotations>
7369
-- <ssc:Annotation
@@ -136,6 +132,4 @@ oms_delete("model")
136132
-- info: model.root.testArray.a[2] : 1.0
137133
-- info: model.root.testArray.a[3] : 1.0
138134
-- info: model.root.testArray.x : 0.0
139-
-- info: 2 warnings
140-
-- info: 0 errors
141135
-- endResult

0 commit comments

Comments
 (0)