diff --git a/docs/4___common_content.adoc b/docs/4___common_content.adoc index 45fe93e..0d074a4 100644 --- a/docs/4___common_content.adoc +++ b/docs/4___common_content.adoc @@ -177,7 +177,7 @@ The following XML child elements denote the data type of a connector or dictiona |Real / Float64 / Float32 / + Integer / Int8 / UInt8 / Int16 / UInt16 / + Int32 / UInt32 / Int64 / UInt64 / + -Boolean / String / Enumeration / Binary / Clock |Exactly one of these elements *MUST* be present to specify the type of the element. +Boolean / String / Enumeration / Binary / Clock / Terminal |Exactly one of these elements *MUST* be present to specify the type of the element. See below for details. |=== @@ -382,6 +382,21 @@ a|This optional attribute specifies the execution priority of the clock for sche Lower values indicate higher priority. |=== +===== Terminal + +image:images/SystemStructureCommon_Terminal.svg[image] + +This type specifies that the connector in question represents a structured terminal, compatible with FMI 3.0 terminals. +It *MUST* only be used for connectors of kind `terminal`. For detailed terminal semantics and behavior, refer to the FMI 3.0 specification. + +[width="100%",cols="28%,72%",options="header",] +|=== +|Attribute |Description +|name |This required attribute references a terminal type definition by name. +The name *MUST* match the name of a Terminal entry in the Terminals XML element of the top-level SystemStructureDescription element. +The member-to-variable binding follows the naming convention `connectorName.memberName`. +|=== + [#ssc_transformations] ==== Transformation Choice diff --git a/docs/5___ssd.adoc b/docs/5___ssd.adoc index 5449f1c..0bb150a 100644 --- a/docs/5___ssd.adoc +++ b/docs/5___ssd.adoc @@ -17,7 +17,7 @@ The root element of an SSD file *MUST* be a SystemStructureDescription element, |Attribute |Description |version |This required attribute specifies the version of this specification that the system description conforms to. Only major and minor version number are included, the patch version number *MUST NOT* be included in this attribute. -For the current release this *MUST* be either 1.0 or 2.0. +For the current release this *MUST* be either 1.0, 2.0, or 2.1. If it is 1.0 the file *MUST* also conform fully to the 1.0 standard. |name |This required attribute provides a name, which can be used for purposes of presenting the system structure to the user, for example when selecting individual variant SSDs from an SSP. |=== @@ -32,6 +32,8 @@ The following XML child elements are specified for the SystemStructureDescriptio See <> for its definition. |Units |This optional element *MUST* contain definitions for all units referenced in the system description file. See <> for its definition. +|Terminals |This optional element *MUST* contain definitions for all terminal types referenced in the system description file. +See <> for its definition. |DefaultExperiment |This optional element *MAY* contain information of a default simulation setup that is supplied with the system definition for informational purposes, see description below. |=== @@ -144,6 +146,10 @@ This can be used for example to allow a connector to function as both an input a Connectors of kind `unspecified` are used to define connectors for which the flow of information is either not yet specified, or is determined at runtime, for example for acausal connections of Modelica models. Such connectors can be connected to any other connector under the rules of the underlying modeling language. +Connectors of kind `terminal` are used to group member connectors into a structured interface, compatible with FMI 3.0 terminals. +The name of the connector follows the naming convention `connectorName.memberName` for the member bindings. +Such a connector *MUST* reference a terminal type definition via a Terminal child element (see <> for details). + |=== The following XML child elements are specified for the Connector element: @@ -154,7 +160,7 @@ The following XML child elements are specified for the Connector element: |Real / Float64 / Float32 / + Integer / Int8 / UInt8 / Int16 / UInt16 / + Int32 / UInt32 / Int64 / UInt64 / + -Boolean / String / Enumeration / Binary / Clock |Exactly one of these elements *CAN* be present to specify the type of the Connector. +Boolean / String / Enumeration / Binary / Clock / Terminal |Exactly one of these elements *CAN* be present to specify the type of the Connector. See <> for details. |Dimension |One or more of these optional elements specify the connector array dimensions, making the connector an array connector. See <> for details. @@ -838,3 +844,54 @@ If that lookup yields no match, the lookup is performed on the enclosing system, It is an error if no matching signal dictionary is found. |=== + +[#Terminals] +=== Terminals + +image:images/SystemStructureDescription_Terminals.svg[image] + +This optional element provides the set of global terminal type definitions for the system structure description. +Terminal type definitions are referenced by name from connectors of kind `terminal`. + +==== Terminal + +image:images/SystemStructureDescription_Terminal.svg[image] + +This element defines a terminal type, which groups member connectors and optional nested sub-terminals into a structured interface compatible with FMI 3.0 terminals. + +The member-to-variable binding follows the naming convention `connectorName.memberName`, where `connectorName` is the name of the connector of kind `terminal` in the system or component, and `memberName` is the name of the member connector defined in this terminal type. + +[width="100%",cols="28%,72%",options="header",] +|=== +|Attribute |Description +|name |This required attribute gives the terminal type a unique name within the Terminals element. +Qualified names using reverse domain name notation (e.g. `com.example.MyTerminalType`) are *RECOMMENDED*. +|matchingRule a| +This required attribute specifies the rule used to match member connectors when two terminals are connected. +Compatible with FMI 3.0 terminal matching semantics: + +`plug` -- All members must match by `memberName`. + +`bus` -- Partial matching by `memberName` is allowed; unmatched members are left unconnected. + +`sequence` -- Matching is done by member order; the count of members must match. + +`none` -- No automatic matching is performed. + +Each terminal's `matchingRule` is evaluated independently. +|terminalKind |This optional attribute specifies the terminal kind using FMI 3.0 semantics. +Use reverse domain name notation (e.g. `com.example.MyTerminalType`). +|=== + +The following XML child elements are specified for the Terminal element: + +[width="100%",cols="23%,77%",options="header",] +|=== +|Element |Description +|Connectors |This optional element *MUST* contain the member connectors of this terminal type. +Member connectors *MUST* use kind `local`. +See <> for details. +|Terminals |This optional element *MUST* contain nested sub-terminal type definitions. +|Annotations |This optional element *MAY* contain annotations. +See <> for details. +|=== diff --git a/schema/SystemStructureCommon.xsd b/schema/SystemStructureCommon.xsd index 94eac39..9b716b6 100644 --- a/schema/SystemStructureCommon.xsd +++ b/schema/SystemStructureCommon.xsd @@ -7,7 +7,7 @@ This is the normative XML Schema 1.0 schema for the MAP SSP SystemStructure 2.0 common content across formats. - Version: 2.0.1-rc.1 + Version: 2.1.0-alpha Copyright 2016 -- 2026 Modelica Association Project "SSP" @@ -614,6 +614,25 @@ + + + + References a global terminal type definition by name. + The member-to-variable binding follows the naming + convention connectorName.memberName. + + + + + + + References a Terminal defined in the Terminals + section of the enclosing SystemStructureDescription. + + + + + diff --git a/schema/SystemStructureDescription.xsd b/schema/SystemStructureDescription.xsd index cd18033..de543d5 100644 --- a/schema/SystemStructureDescription.xsd +++ b/schema/SystemStructureDescription.xsd @@ -6,9 +6,9 @@ This is the normative XML Schema 1.0 schema for the MAP SSP - SystemStructureDescription 2.0 format. + SystemStructureDescription 2.1 format. - Version: 2.0.1-rc.1 + Version: 2.1.0-alpha Copyright 2016 -- 2026 Modelica Association Project "SSP" @@ -50,6 +50,7 @@ + @@ -65,6 +66,7 @@ + @@ -795,6 +797,7 @@ + @@ -1053,6 +1056,82 @@ + + + + A set of terminal type definitions, referenced by name from + connectors of kind "terminal". + + + + + + + + + + + Defines a terminal type with member connectors (kind="local"), + optional nested sub-terminals, and a matching rule. + Compatible with FMI 3.0 terminals. + + + + + + + The member connectors of this terminal, using kind="local". + + + + + + + Nested sub-terminals. + + + + + + + + + + Unique name of the terminal type. Qualified names + (e.g. reverse domain name notation) are recommended. + + + + + + + Matching rule for connecting terminals (FMI 3.0 semantics): + - plug: All members must match by memberName. + - bus: Partial matching by memberName allowed. + - sequence: Matching by member order; count must match. + - none: No automatic matching. + Each terminal's matchingRule is evaluated independently. + + + + + + + + + + + + + + + Optional terminal kind (FMI 3.0 semantics). Use reverse domain + name notation (e.g. "com.example.MyTerminalType"). + + + + + diff --git a/schema/SystemStructureDescription11.xsd b/schema/SystemStructureDescription11.xsd index 0935e8d..935a402 100644 --- a/schema/SystemStructureDescription11.xsd +++ b/schema/SystemStructureDescription11.xsd @@ -10,11 +10,11 @@ This is the XML Schema 1.1 schema for the MAP SSP - SystemStructureDescription 2.0 format. It is provided + SystemStructureDescription 2.1 format. It is provided as a non-normative alternative to the XML Schema 1.0 schema to support simpler cross-namespace validation of SSD files. - Version: 2.0.1-rc.1 + Version: 2.1.0-alpha Copyright 2016 -- 2026 Modelica Association Project "SSP" @@ -59,6 +59,7 @@ + @@ -74,6 +75,7 @@ + @@ -779,6 +781,7 @@ + @@ -1000,6 +1003,82 @@ + + + + A set of terminal type definitions, referenced by name from + connectors of kind "terminal". + + + + + + + + + + + Defines a terminal type with member connectors (kind="local"), + optional nested sub-terminals, and a matching rule. + Compatible with FMI 3.0 terminals. + + + + + + + The member connectors of this terminal, using kind="local". + + + + + + + Nested sub-terminals. + + + + + + + + + + Unique name of the terminal type. Qualified names + (e.g. reverse domain name notation) are recommended. + + + + + + + Matching rule for connecting terminals (FMI 3.0 semantics): + - plug: All members must match by memberName. + - bus: Partial matching by memberName allowed. + - sequence: Matching by member order; count must match. + - none: No automatic matching. + Each terminal's matchingRule is evaluated independently. + + + + + + + + + + + + + + + Optional terminal kind (FMI 3.0 semantics). Use reverse domain + name notation (e.g. "com.example.MyTerminalType"). + + + + + diff --git a/schema/SystemStructureParameterMapping.xsd b/schema/SystemStructureParameterMapping.xsd index cdc72fc..af95433 100644 --- a/schema/SystemStructureParameterMapping.xsd +++ b/schema/SystemStructureParameterMapping.xsd @@ -6,9 +6,9 @@ This is the normative XML Schema 1.0 schema for the MAP SSP - SystemStructureParameterMapping 2.0 format. + SystemStructureParameterMapping 2.1 format. - Version: 2.0.1-rc.1 + Version: 2.1.0-alpha Copyright 2016 -- 2026 Modelica Association Project "SSP" diff --git a/schema/SystemStructureParameterValues.xsd b/schema/SystemStructureParameterValues.xsd index f162e95..0b899db 100644 --- a/schema/SystemStructureParameterValues.xsd +++ b/schema/SystemStructureParameterValues.xsd @@ -6,9 +6,9 @@ This is the normative XML Schema 1.0 schema for the MAP SSP - SystemStructureParameterValues 2.0 format. + SystemStructureParameterValues 2.1 format. - Version: 2.0.1-rc.1 + Version: 2.1.0-alpha Copyright 2016 -- 2026 Modelica Association Project "SSP" diff --git a/schema/SystemStructureSignalDictionary.xsd b/schema/SystemStructureSignalDictionary.xsd index 12a8b66..44cfadc 100644 --- a/schema/SystemStructureSignalDictionary.xsd +++ b/schema/SystemStructureSignalDictionary.xsd @@ -6,9 +6,9 @@ This is the normative XML Schema 1.0 schema for the MAP SSP - SystemStructureSignalDictionary 2.0 format. + SystemStructureSignalDictionary 2.1 format. - Version: 2.0.1-rc.1 + Version: 2.1.0-alpha Copyright 2016 -- 2026 Modelica Association Project "SSP"