From cdd8070c4e78f3069c55c59d01ca77bff5a6ef6e Mon Sep 17 00:00:00 2001 From: UlrichK Date: Fri, 25 Oct 2024 08:47:58 +0200 Subject: [PATCH 1/2] Editorial fixes for the SSP 2.0 documentation * Reference of FMI 3.0 * Description for attribute MetaData.source and MetaData.sourceBase changed -> STC replaced by SSD. --- docs/1___overview.adoc | 6 +- docs/4___common_content.adoc | 18 +- docs/5___ssd.adoc | 16 +- docs/A___literature.adoc | 7 +- schema/SystemStructureCommon.xsd | 1437 +++++++++++++----------------- 5 files changed, 640 insertions(+), 844 deletions(-) diff --git a/docs/1___overview.adoc b/docs/1___overview.adoc index 22a3412..649068a 100644 --- a/docs/1___overview.adoc +++ b/docs/1___overview.adoc @@ -4,7 +4,7 @@ SSP is a tool-independent format for the description, packaging and exchange of The standard is comprised of a set of XML-based formats to describe a network of component models with their signal flow and parametrization, as well as a ZIP-based packaging format for efficient distribution of entire systems, including any referenced models and other resources. This description is tool neutral and is intended to be used primarly as an exchange format of simulation system descriptions between different tools. -SSP can be seen as an extension to the FMI (Functional Mockup Interface) standard [FMI20]. +SSP can be seen as an extension to the FMI (Functional Mockup Interface) standard [FMI20] [FMI30]. FMI describes a tool independent standard to exchange single simulation models. Using SSP, complete systems consisting of multiple interconnected simulation models can be defined with the desired signal flow and also with the wanted parameterization of each single model as well as the parameters for the complete system. This system topology can include hierarchies of sub-systems for proper structuring of the overall system. @@ -52,7 +52,6 @@ From a simulation perspective, each component has to be described with its input This can be done using SSP by defining the wrapper of this component with an empty Component element comprising the connectors for the inputs and outputs and the component's parameters. The interaction of the components is defined by the connections. -Connections in SSP are always causal. Connections can be made directly between components or via signal dictionaries. A signal dictionary is a collection of signals similar to a bus concept (e.g. like a CAN bus). During the design phase of a system, a signal dictionary can be a good way to predefine the available signal connections. @@ -123,10 +122,11 @@ The following companies and persons were involved in the creation of the standar * Christian Bertsch, Bosch * Dag Brück, Dassault Systèmes -* Markus Deppe, dSpace +* Markus Deppe, dSPACE * Hans-Martin Heinkel, Bosch * Maria Henningsson, Modelon * Jan-Niklas Jäschke, TLK-Thermo +* Ulrich Kiffmeier, dSPACE * Jochen Köhler, ZF Friedrichshafen * Jürgen Krasser, AVL * Peter Lobner, eXXcellent solutions diff --git a/docs/4___common_content.adoc b/docs/4___common_content.adoc index 1286628..3d6b792 100644 --- a/docs/4___common_content.adoc +++ b/docs/4___common_content.adoc @@ -136,7 +136,7 @@ The following XML child elements are specified for the Unit element: ===== BaseUnit This element defines the base unit of the given unit in SI units. -This is completely aligned with the specification of base units in section 2.2.2 of the FMI 2.0 standard [FMI20]. +This is completely aligned with the specification of base units in section 2.4.3 of the FMI 3.0 standard [FMI30]. image:images/image10.png[image,width=263,height=771] @@ -462,17 +462,18 @@ This attribute references another connector by name, that gives the size of this |=== [#ssc_metadata] -==== MetaData Sequence +==== MetaData and Signatures image:images/SystemStructureCommon_GMetaData.png[image,width=597,height=196] -The MetaData element allows the specification of additional meta data for a given model element. -Multiple (or no) MetaData elements may be present in a given model element. +The group GMetaData allows the specification of additional meta data and signatures for a given model element. +Multiple (or no) MetaData and Signature elements may be present in a given model element. [width="100%",cols="33%,67%",options="header",] |=== |Element |Description |MetaData |One or more instances of this element *CAN* be present to specify meta data related to the containing model element. +|Signature |One or more instances of this element *CAN* be present to specify signatures related to the containing model element. See below for details. |=== @@ -507,15 +508,18 @@ The kind can be `general` or `quality`, indicating general meta data or quality This mandatory attribute specifies the MIME type of the meta data, which does not have a default value. If no specific MIME type can be indicated, then the type `application/octet-stream` is to be used. |source a| -Optional attribute indicating the source of the meta data as a URI (cf. RFC 3986). -For purposes of the resolution of relative URIs the base URI is the URI of the SSD, if the sourceBase attribute is not specified or is specified as `SSD`, and the URI of the containing model element (e.g. component) if the base attribute is specified as `component`. +This attribute indicates the source of the resource meta data as a URI (cf. RFC 3986). +For purposes of the resolution of relative URIs the base URI is the URI of the SSD, +if the sourceBase attribute is not specified or is specified as SSD, +and the URI of the referenced resource if the sourceBase attribute is specified as resource. This allows the specification of meta data sources that reside inside the component (for example an FMU) through relative URIs. If the source attribute is missing, the meta data *MUST* be provided inline as contents of a Content element, which *MUST NOT* be present otherwise. |sourceBase a| Defines the base the source URI is resolved against: -If the attribute is missing or is specified as `SSD`, the source is resolved against the URI of the SSD, if the attribute is specified as `component` the URI is resolved against the (resolved) URI of the model element (e.g. component) source. +If the attribute is missing or is specified as SSD, the source is resolved against the URI of the SSD, +if the attribute is specified as resource the URI is resolved against the (resolved) URI of the resource source. |=== ===== Content diff --git a/docs/5___ssd.adoc b/docs/5___ssd.adoc index fab9885..bcfb271 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 1.0. +For the current release this *MUST* be 2.0 or 1.0. |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,8 +32,6 @@ The following XML child elements are specified for the SystemStructureDescriptio |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. |=== -The root system of the model is specified through the required System element, see <>. - Any enumerations and units referenced in the system description file *MUST* be provided through the optional Enumerations and Units elements, as described in <> and <> respectively. ==== Default Experiment @@ -95,8 +93,8 @@ For components the set of connectors *MUST* match variables/ports of the underly For FMI 3.0 FMUs, the connector name has to match either the name of the corresponding variable element, or one of its elements. Names of variable elements of an FMU might follow the “Variable Naming Conventions” specification as defined by the FMI standard. -Hence, several ScalarVariables might be grouped as a structure or an array. -However, the name of a connector *MUST* match the name of a single . +Hence, several variables might be grouped as a structure or an array. +However, the name of a connector *MUST* match the name of a single variable. Note that there is no requirement that connectors have to be present for all variables/ports of an underlying component implementation. At least those connectors *MUST* be present which are referenced in connections inside the SSD. @@ -157,12 +155,6 @@ Boolean / String / Enumeration / Binary / Clock |Exactly one of these elements * |ConnectorGeometry |This optional element defines the geometry information of the connector. See below for details. |=== -The type of the Connector is identified by the presence of one of the XML child elements Real, Float64, Float32, Integer, Int8, UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Boolean, String, Enumeration, Binary, or Clock. - -The dimensionality of the Connector is given by the presence of one or more Dimension elements. - -The association of a connector to a clock is given by the presence of one or more Clock elements. - When Modelica models are represented in SSP, built-in input and output connectors shall be mapped as follows: [width="100%",cols="25%,25%,50%",options="header",] @@ -410,7 +402,7 @@ For structural parameters it is assumed that the parameterization is applied in This means that variables eligible for parameterization are those with: * either causality = "input" or a start value for FMI 1.0 -* variability != "constant" and initial = "exact" or "approx" for FMI 2.0 +* variability != "constant" and initial = "exact" or "approx" for FMI 2.0 or FMI 3.0 All kinds of system connectors can be parameterized. In case the system level connectors are connected to FMU components, the parameterization *MUST* be compatible with the variable in the connected FMU. diff --git a/docs/A___literature.adoc b/docs/A___literature.adoc index 41856c4..888af0f 100644 --- a/docs/A___literature.adoc +++ b/docs/A___literature.adoc @@ -12,8 +12,11 @@ https://semver.org/spec/v2.0.0.html [XML10] World Wide Web Consortium: *Extensible Markup Language (XML) 1.0 (Fifth Edition).* W3C Recommendation. 2008. + http://www.w3.org/TR/2008/REC-xml-20081126/ -[FMI20] Modelica Association: *Functional Mock-up Interface for Model Exchange and Co-Simulation, Version 2.0.3.* 2021. + -https://github.com/modelica/fmi-standard/releases/download/v2.0.3/FMI-Specification-2.0.3.pdf +[FMI20] Modelica Association: *Functional Mock-up Interface for Model Exchange and Co-Simulation, Version 2.0.4.* 2022. + +https://github.com/modelica/fmi-standard/releases/download/v2.0.4/FMI-Specification-2.0.4.pdf + +[FMI30] Modelica Association: *Functional Mock-up Interface Specification, Version 3.0.1.* 2023. + +https://fmi-standard.org/docs/3.0.1/ [OSMP120] ASAM e.V.: *OSI Sensor Model Packaging Version 1.2.0.* 2021. + https://github.com/OpenSimulationInterface/osi-sensor-model-packaging/releases/tag/v1.2.0 diff --git a/schema/SystemStructureCommon.xsd b/schema/SystemStructureCommon.xsd index a0d6daf..9394147 100644 --- a/schema/SystemStructureCommon.xsd +++ b/schema/SystemStructureCommon.xsd @@ -1,822 +1,619 @@ - - - - This is the normative XML Schema 1.0 schema for the MAP SSP - SystemStructure 2.0 common content across formats. - - Version: 2.0-alpha - - Copyright 2016 -- 2019 Modelica Association Project "SSP" - - Redistribution and use in source and binary forms, with or - without modification, are permitted provided that the - following conditions are met: - - 1. Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - - 2. Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - - - - - - This attribute group specifies the attributes common to all model elements. - - - - - - This attribute gives the model element a file-wide unique id which can - be referenced from other elements or via URI fragment identifier. - - - - - - - This attribute gives a human readable longer description of the - model element, which can be shown to the user where appropriate. - - - - - - - - - This attribute group specifies the optional meta-data attributes common to - all top-level container elements of all defined file formats. - - - - - - This attribute gives the name of the author of this file's content. - - - - - - - This attribute gives a version number for this file's content. - - - - - - - This attribute gives copyright information for this file's content. - - - - - - - This attribute gives license information for this file's content. - - - - - - - This attribute gives the name of the tool that generated this file. - - - - - - - This attribute gives the date and time this file was generated. - - - - - - - - - - - - - - - - - - - - - - - - - Name of the Enumeration Item - - - - - The Value of the Enumeration Item - - - - - - - - - - - This attribute specifies the name of the enumeration in the system description, - which must be unique within in the system description. - - - - - - - - - - - - - - - - - - Exponent of SI base unit "kg" - - - - - Exponent of SI base unit "m" - - - - - Exponent of SI base unit "s" - - - - - Exponent of SI base unit "A" - - - - - Exponent of SI base unit "K" - - - - - Exponent of SI base unit "mol" - - - - - Exponent of SI base unit "cd" - - - - - Exponent of SI derived unit "rad" - - - - - - - - - - - - - This attribute specifies the name of the unit in the system description, - which must be unique within in the system description. - - - - - - - - - - - - - - - - The unique name of the type of the annotation. - - In order to ensure uniqueness all types should be identified - with reverse domain name notation (cf. Java package names - or Apple UTIs) of a domain that is controlled by the entity - defining the semantics and content of the annotation. - - For vendor-specific annotations this would e.g. be a domain - controlled by the tool vendor. - - For MAP-SSP defined annotations, this will be a domain under - the org.modelica prefix. - - - - - - - - - - - - - - This element can specify additional meta data for the given resource. Multiple - (or no) MetaData elements may be present. - - - - - - - - This optional element can contain inlined content of the resource meta data. If it - is present, then the attribute source of the MetaData element must not be present. - - - - - - - This element can contain digital signature information on the meta data referenced - by the enclosing MetaData element. It is left unspecified what types of signatures - are used and/or available for now. Multiple or no signature elements may be present. - - - - - - - - This attribute indicates the kind of resource meta data that is referenced, i.e. - what role it plays in relation to the resource being described. - - - - - - - - - - - - - This mandatory attribute specifies the MIME type of the resource meta data, which - does not have a default value. If no specific MIME type can be indicated, then - the type application/octet-stream is to be used. - - - - - - - This attribute indicates the source of the resource meta data as a - URI (cf. RFC 3986). For purposes of the resolution of relative URIs - the base URI is the URI of the STC, if the sourceBase attribute is - not specified or is specified as STC, and the URI of the referenced - resource if the sourceBase attribute is specified as resource. - - This allows the specification of meta data sources that reside - inside the resource (e.g. an FMU) through relative URIs. - - For meta data that are located alongside the STC, relative URIs - without scheme and authority can and should be used to specify the - meta data sources. For meta data that are packaged inside an SSP - that contains this STC, this is mandatory (in this way, the STC - URIs remain valid after unpacking the SSP into the filesystem). - - If the source attribute is missing, the meta data is provided - inline as contents of the Content element, which must not be - present otherwise. - - - - - - - Defines the base the source URI is resolved against: If the attribute - is missing or is specified as SSD, the source is resolved against the - URI of the SSD, if the attribute is specified as resource the URI is - resolved against the (resolved) URI of the resource source. - - - - - - - - - - - - - - - - This element can contain digital signature information on the data referenced - by the enclosing element. It is left unspecified what types of signatures - are used and/or available for now. Multiple or no signature elements may be present. - - - - - - - - - - - - - - This mandatory attribute specifies the role this signature has in the overall - process. It indicates whether the digital signature is intended to just convey - the authenticity of the information, or whether a claim for suitability of - the information for certain purposes is made. In the later case, the digital - signature format should include detailed information about what suitability - claims are being made. - - - - - - - - - - - - - This mandatory attribute specifies the MIME type of the resource signature, which - does not have a default value. If no specific MIME type can be indicated, then - the type application/octet-stream is to be used. - - - - - - - This attribute indicates the source of the digital signature as a - URI (cf. RFC 3986). For purposes of the resolution of relative URIs - the base URI is the URI of the SSD, if the sourceBase attribute is - not specified or is specified as SSD, the URI of the containing model - element (e.g. component) if the sourceBase attribute is specified as - component, or the URI of the meta data source if the sourceBase - attribute is specified as metaData. - - This allows the specification of signature sources that reside - inside the component (for example an FMU), or the meta data - through relative URIs. - - If the source attribute is missing, the signature is provided - inline as contents of the Content element, which must not be - present otherwise. - - - - - - - Defines the base the source URI is resolved against: If the attribute - is missing or is specified as SSD, the source is resolved against the - URI of the SSD, if the attribute is specified as component the URI is - resolved against the (resolved) URI of the model element (e.g. - component) source, or if the attribute is specified as metaData the - URI is resolved against the (resolved) URI of the meta data source. - The value metaData is only valid if the Signature element is contained - within a MetaData element. - - - - - - - - - - - - - - - - - This optional element can contain inlined content of an entity. If it is present, - then the attribute source of the enclosing element must not be present. - - - - - - - - - - - - - This element gives the type of a connector or signal dictionary entry - (called entity below). - - - - - - - - This attribute gives the unit of the entity and must - reference one of the unit definitions provided in the Units - element of the containing file. - - If a unit is not supplied, the unit is determined through - default mechanisms: For FMU components, the unit of the - underlying variable would be used, for systems the units - of connected underlying connectors could be used if unambiguous. - If a unit cannot be deduced unambinguously, the user should - be informed of this error. - - - - - - - - - - - This attribute gives the unit of the entity and must - reference one of the unit definitions provided in the Units - element of the containing file. - - If a unit is not supplied, the unit is determined through - default mechanisms: For FMU components, the unit of the - underlying variable would be used, for systems the units - of connected underlying connectors could be used if unambiguous. - If a unit cannot be deduced unambinguously, the user should - be informed of this error. - - - - - - - - - - - This attribute gives the unit of the entity and must - reference one of the unit definitions provided in the Units - element of the containing file. - - If a unit is not supplied, the unit is determined through - default mechanisms: For FMU components, the unit of the - underlying variable would be used, for systems the units - of connected underlying connectors could be used if unambiguous. - If a unit cannot be deduced unambinguously, the user should - be informed of this error. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This attribute specifies the name of the enumeration - which references into the set of defined enumerations - of the system structure description, as contained in - the Enumerations element of the root element. - - - - - - - - - - - This optional attribute specifies the MIME type of the - underlying binary data, which defaults to the non-specific - application/octet-stream type. This information can be - used by the implementation to detect mismatches between - connected binary connectors, or provide automatic means of - conversion between different formats. It should be noted - that the implementation is not required to provide this - service, i.e. it remains the responsibility of the operator - to ensure only compatible binary connectors are connected. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This element specifies the transformation to be applied to a value prior to its - use in a connection or parameter mapping. - - - - - - - This element provides for a linear transformation to be performed on the - parameter values and is valid for parameters of a continuous type. - - - - - - - This attribute specifies an optional factor value to use in a linear - transformation of the source parameter value to the target parameter - value, i.e. in the calculation target = factor * source + offset. - - Note that conversions based on different units are performed, unless - prevented by suppressUnitConversion, prior to the application of the - linear transformation, i.e. the value of source is already converted - to the target unit in the formula above. - - - - - - - This attribute specifies an optional offset value to use in a linear - transformation of the source parameter value to the target parameter - value, i.e. in the calculation target = factor * source + offset. - - Note that conversions based on different units are performed, unless - prevented by suppressUnitConversion, prior to the application of the - linear transformation, i.e. the value of source is already converted - to the target unit in the formula above. - - - - - - - - - This element provides for a transformation of boolean parameter values - based on a mapping table and is valid for parameters of boolean type. - Each mapping table entry is provided by a MapEntry element. - - - - - - - - - - This attribute gives the value of the parameter in the - parameter source that this entry applies to. - - - - - - - This attribute gives the value of the parameter to use - when applying it to the system or component that is to be - parametrized. - - - - - - - - - - - - This element provides for a transformation of integer parameter values - based on a mapping table and is valid for parameters of all integer and - enumeration types. Each mapping table entry is provided by a MapEntry - element. - - - - - - - - - - This attribute gives the value of the parameter in the - parameter source that this entry applies to. - - - - - - - This attribute gives the value of the parameter to use - when applying it to the system or component that is to be - parametrized. - - - - - - - - - - - - This element provides for a transformation of enumeration parameter values - based on a mapping table of their enumeration item names and is valid for - parameters of enumeration type. Each mapping table entry is provided by a - MapEntry element. - - - - - - - - - - This attribute gives the value of the parameter in the - parameter source that this entry applies to. - - - - - - - This attribute gives the value of the parameter to use - when applying it to the system or component that is to be - parametrized. - - - - - - - - - - - - - - - - - This optional element specifies one dimension of an array connector. - If no dimension elements are present in a connector, it is a scalar - connector. The number of dimension elements in a connector provides - the dimensionality of the array. - - Either the size or the sizeConnector attributes CAN be present - on the element, indicating a fixed size, or a size that depends on - the structural parameter or constant referenced by the sizeConnector - attribute. - - If none of the attributes are present, then the size of the dimension - is unspecified at the SSD level. If both attributes are present this - is considered an error. - - - - - - - This attribute gives the size of this dimension of the - connector as a fixed, unchangeable number. - - - - - - - This attribute references another connector by name, that - gives the size of this dimension of the connector, e.g. a - structural parameter or a constant of the underlying - component that gives the dimension size. - - - - - - - - + + + + This is the normative XML Schema 1.0 schema for the MAP SSP SystemStructure 2.0 common content across formats. Version: 2.0-alpha Copyright 2016 -- 2019 Modelica Association Project "SSP" Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + + + This attribute group specifies the attributes common to all model elements. + + + + + + This attribute gives a human readable longer description of the model element, which can be shown to the user where appropriate. + + + + + + + This attribute gives the model element a file-wide unique id which can be referenced from other elements or via URI fragment identifier. + + + + + + + + This attribute group specifies the optional meta-data attributes common to all top-level container elements of all defined file formats. + + + + + + This attribute gives the name of the author of this file's content. + + + + + + + This attribute gives copyright information for this file's content. + + + + + + + This attribute gives a version number for this file's content. + + + + + + + This attribute gives the date and time this file was generated. + + + + + + + This attribute gives the name of the tool that generated this file. + + + + + + + This attribute gives license information for this file's content. + + + + + + + + This optional element can contain inlined content of an entity. If it is present, then the attribute source of the enclosing element must not be present. + + + + + + + + + + + + Defines the base the source URI is resolved against: If the attribute is missing or is specified as SSD, the source is resolved against the URI of the SSD, if the attribute is specified as component the URI is resolved against the (resolved) URI of the model element (e.g. component) source, or if the attribute is specified as metaData the URI is resolved against the (resolved) URI of the meta data source. The value metaData is only valid if the Signature element is contained within a MetaData element. + + + + + + + + + + + + + + This mandatory attribute specifies the role this signature has in the overall process. It indicates whether the digital signature is intended to just convey the authenticity of the information, or whether a claim for suitability of the information for certain purposes is made. In the later case, the digital signature format should include detailed information about what suitability claims are being made. + + + + + + + + + + + + + This attribute indicates the source of the digital signature as a URI (cf. RFC 3986). For purposes of the resolution of relative URIs the base URI is the URI of the SSD, if the sourceBase attribute is not specified or is specified as SSD, the URI of the containing model element (e.g. component) if the sourceBase attribute is specified as component, or the URI of the meta data source if the sourceBase attribute is specified as metaData. This allows the specification of signature sources that reside inside the component (for example an FMU), or the meta data through relative URIs. If the source attribute is missing, the signature is provided inline as contents of the Content element, which must not be present otherwise. + + + + + + + This mandatory attribute specifies the MIME type of the resource signature, which does not have a default value. If no specific MIME type can be indicated, then the type application/octet-stream is to be used. + + + + + + + + + + + + + + + + The unique name of the type of the annotation. In order to ensure uniqueness all types should be identified with reverse domain name notation (cf. Java package names or Apple UTIs) of a domain that is controlled by the entity defining the semantics and content of the annotation. For vendor-specific annotations this would e.g. be a domain controlled by the tool vendor. For MAP-SSP defined annotations, this will be a domain under the org.modelica prefix. + + + + + + + + + + + + + + + + + + + + This attribute specifies the name of the enumeration in the system description, which must be unique within in the system description. + + + + + + + + + + + Name of the Enumeration Item + + + + + + + The Value of the Enumeration Item + + + + + + + + + + + + + + + + + + This attribute specifies the name of the unit in the system description, which must be unique within in the system description. + + + + + + + + + + + + Exponent of SI base unit "A" + + + + + + + Exponent of SI base unit "cd" + + + + + + + Exponent of SI base unit "kg" + + + + + + + Exponent of SI base unit "K" + + + + + + + Exponent of SI base unit "mol" + + + + + + + Exponent of SI base unit "m" + + + + + + + + Exponent of SI derived unit "rad" + + + + + + + Exponent of SI base unit "s" + + + + + + + + + + + + + + This optional element specifies one dimension of an array connector. If no dimension elements are present in a connector, it is a scalar connector. The number of dimension elements in a connector provides the dimensionality of the array. Either the size or the sizeConnector attributes CAN be present on the element, indicating a fixed size, or a size that depends on the structural parameter or constant referenced by the sizeConnector attribute. If none of the attributes are present, then the size of the dimension is unspecified at the SSD level. If both attributes are present this is considered an error. + + + + + + + This attribute references another connector by name, that gives the size of this dimension of the connector, e.g. a structural parameter or a constant of the underlying component that gives the dimension size. + + + + + + + This attribute gives the size of this dimension of the connector as a fixed, unchangeable number. + + + + + + + + + + + + + This element can specify additional meta data for the given resource. Multiple (or no) MetaData elements may be present. + + + + + + + Defines the base the source URI is resolved against: If the attribute is missing or is specified as SSD, the source is resolved against the URI of the SSD, if the attribute is specified as resource the URI is resolved against the (resolved) URI of the resource source. + + + + + + + + + + + + + This attribute indicates the kind of resource meta data that is referenced, i.e. what role it plays in relation to the resource being described. + + + + + + + + + + + + + This attribute indicates the source of the resource meta data as a URI (cf. RFC 3986). For purposes of the resolution of relative URIs the base URI is the URI of the SSD, if the sourceBase attribute is not specified or is specified as SSD, and the URI of the referenced resource if the sourceBase attribute is specified as resource. This allows the specification of meta data sources that reside inside the resource (e.g. an FMU) through relative URIs. For meta data that are located alongside the STC, relative URIs without scheme and authority can and should be used to specify the meta data sources. For meta data that are packaged inside an SSP that contains this STC, this is mandatory (in this way, the STC URIs remain valid after unpacking the SSP into the filesystem). If the source attribute is missing, the meta data is provided inline as contents of the Content element, which must not be present otherwise. + + + + + + + This mandatory attribute specifies the MIME type of the resource meta data, which does not have a default value. If no specific MIME type can be indicated, then the type application/octet-stream is to be used. + + + + + + + + + This optional element can contain inlined content of the resource meta data. If it is present, then the attribute source of the MetaData element must not be present. + + + + + + + This element can contain digital signature information on the meta data referenced by the enclosing MetaData element. It is left unspecified what types of signatures are used and/or available for now. Multiple or no signature elements may be present. + + + + + + + + + + This element can contain digital signature information on the data referenced by the enclosing element. It is left unspecified what types of signatures are used and/or available for now. Multiple or no signature elements may be present. + + + + + + + + + This element specifies the transformation to be applied to a value prior to its use in a connection or parameter mapping. + + + + + + + This element provides for a transformation of boolean parameter values based on a mapping table and is valid for parameters of boolean type. Each mapping table entry is provided by a MapEntry element. + + + + + + + + + + This attribute gives the value of the parameter in the parameter source that this entry applies to. + + + + + + + This attribute gives the value of the parameter to use when applying it to the system or component that is to be parametrized. + + + + + + + + + + + + This element provides for a transformation of enumeration parameter values based on a mapping table of their enumeration item names and is valid for parameters of enumeration type. Each mapping table entry is provided by a MapEntry element. + + + + + + + + + + This attribute gives the value of the parameter in the parameter source that this entry applies to. + + + + + + + This attribute gives the value of the parameter to use when applying it to the system or component that is to be parametrized. + + + + + + + + + + + + This element provides for a transformation of integer parameter values based on a mapping table and is valid for parameters of all integer and enumeration types. Each mapping table entry is provided by a MapEntry element. + + + + + + + + + + This attribute gives the value of the parameter in the parameter source that this entry applies to. + + + + + + + This attribute gives the value of the parameter to use when applying it to the system or component that is to be parametrized. + + + + + + + + + + + + This element provides for a linear transformation to be performed on the parameter values and is valid for parameters of a continuous type. + + + + + + + This attribute specifies an optional offset value to use in a linear transformation of the source parameter value to the target parameter value, i.e. in the calculation target = factor * source + offset. Note that conversions based on different units are performed, unless prevented by suppressUnitConversion, prior to the application of the linear transformation, i.e. the value of source is already converted to the target unit in the formula above. + + + + + + + This attribute specifies an optional factor value to use in a linear transformation of the source parameter value to the target parameter value, i.e. in the calculation target = factor * source + offset. Note that conversions based on different units are performed, unless prevented by suppressUnitConversion, prior to the application of the linear transformation, i.e. the value of source is already converted to the target unit in the formula above. + + + + + + + + + + + + This element gives the type of a connector or signal dictionary entry (called entity below). + + + + + + + + This optional attribute specifies the MIME type of the underlying binary data, which defaults to the non-specific application/octet-stream type. This information can be used by the implementation to detect mismatches between connected binary connectors, or provide automatic means of conversion between different formats. It should be noted that the implementation is not required to provide this service, i.e. it remains the responsibility of the operator to ensure only compatible binary connectors are connected. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This attribute specifies the name of the enumeration which references into the set of defined enumerations of the system structure description, as contained in the Enumerations element of the root element. + + + + + + + + + + + This attribute gives the unit of the entity and must reference one of the unit definitions provided in the Units element of the containing file. If a unit is not supplied, the unit is determined through default mechanisms: For FMU components, the unit of the underlying variable would be used, for systems the units of connected underlying connectors could be used if unambiguous. If a unit cannot be deduced unambinguously, the user should be informed of this error. + + + + + + + + + + + This attribute gives the unit of the entity and must reference one of the unit definitions provided in the Units element of the containing file. If a unit is not supplied, the unit is determined through default mechanisms: For FMU components, the unit of the underlying variable would be used, for systems the units of connected underlying connectors could be used if unambiguous. If a unit cannot be deduced unambinguously, the user should be informed of this error. + + + + + + + + + + + + + + + + + + + + + + + + + + This attribute gives the unit of the entity and must reference one of the unit definitions provided in the Units element of the containing file. If a unit is not supplied, the unit is determined through default mechanisms: For FMU components, the unit of the underlying variable would be used, for systems the units of connected underlying connectors could be used if unambiguous. If a unit cannot be deduced unambinguously, the user should be informed of this error. + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 071c8ed70dc417588977a9085ee733bb1d0078aa Mon Sep 17 00:00:00 2001 From: UlrichK Date: Fri, 25 Oct 2024 10:24:46 +0200 Subject: [PATCH 2/2] Exclude changes which were already solved with PR 44 and PR 45 --- docs/1___overview.adoc | 3 +- docs/4___common_content.adoc | 2 +- docs/5___ssd.adoc | 2 +- docs/A___literature.adoc | 7 +- schema/SystemStructureCommon.xsd | 1437 +++++++++++++++++------------- 5 files changed, 826 insertions(+), 625 deletions(-) diff --git a/docs/1___overview.adoc b/docs/1___overview.adoc index 649068a..ba8d60d 100644 --- a/docs/1___overview.adoc +++ b/docs/1___overview.adoc @@ -4,7 +4,7 @@ SSP is a tool-independent format for the description, packaging and exchange of The standard is comprised of a set of XML-based formats to describe a network of component models with their signal flow and parametrization, as well as a ZIP-based packaging format for efficient distribution of entire systems, including any referenced models and other resources. This description is tool neutral and is intended to be used primarly as an exchange format of simulation system descriptions between different tools. -SSP can be seen as an extension to the FMI (Functional Mockup Interface) standard [FMI20] [FMI30]. +SSP can be seen as an extension to the FMI (Functional Mockup Interface) standard [FMI20]. FMI describes a tool independent standard to exchange single simulation models. Using SSP, complete systems consisting of multiple interconnected simulation models can be defined with the desired signal flow and also with the wanted parameterization of each single model as well as the parameters for the complete system. This system topology can include hierarchies of sub-systems for proper structuring of the overall system. @@ -52,6 +52,7 @@ From a simulation perspective, each component has to be described with its input This can be done using SSP by defining the wrapper of this component with an empty Component element comprising the connectors for the inputs and outputs and the component's parameters. The interaction of the components is defined by the connections. +Connections in SSP are always causal. Connections can be made directly between components or via signal dictionaries. A signal dictionary is a collection of signals similar to a bus concept (e.g. like a CAN bus). During the design phase of a system, a signal dictionary can be a good way to predefine the available signal connections. diff --git a/docs/4___common_content.adoc b/docs/4___common_content.adoc index 3d6b792..bc0e6dc 100644 --- a/docs/4___common_content.adoc +++ b/docs/4___common_content.adoc @@ -136,7 +136,7 @@ The following XML child elements are specified for the Unit element: ===== BaseUnit This element defines the base unit of the given unit in SI units. -This is completely aligned with the specification of base units in section 2.4.3 of the FMI 3.0 standard [FMI30]. +This is completely aligned with the specification of base units in section 2.2.2 of the FMI 2.0 standard [FMI20]. image:images/image10.png[image,width=263,height=771] diff --git a/docs/5___ssd.adoc b/docs/5___ssd.adoc index bcfb271..5ebd540 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 2.0 or 1.0. +For the current release this *MUST* be 1.0. |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. |=== diff --git a/docs/A___literature.adoc b/docs/A___literature.adoc index 888af0f..41856c4 100644 --- a/docs/A___literature.adoc +++ b/docs/A___literature.adoc @@ -12,11 +12,8 @@ https://semver.org/spec/v2.0.0.html [XML10] World Wide Web Consortium: *Extensible Markup Language (XML) 1.0 (Fifth Edition).* W3C Recommendation. 2008. + http://www.w3.org/TR/2008/REC-xml-20081126/ -[FMI20] Modelica Association: *Functional Mock-up Interface for Model Exchange and Co-Simulation, Version 2.0.4.* 2022. + -https://github.com/modelica/fmi-standard/releases/download/v2.0.4/FMI-Specification-2.0.4.pdf - -[FMI30] Modelica Association: *Functional Mock-up Interface Specification, Version 3.0.1.* 2023. + -https://fmi-standard.org/docs/3.0.1/ +[FMI20] Modelica Association: *Functional Mock-up Interface for Model Exchange and Co-Simulation, Version 2.0.3.* 2021. + +https://github.com/modelica/fmi-standard/releases/download/v2.0.3/FMI-Specification-2.0.3.pdf [OSMP120] ASAM e.V.: *OSI Sensor Model Packaging Version 1.2.0.* 2021. + https://github.com/OpenSimulationInterface/osi-sensor-model-packaging/releases/tag/v1.2.0 diff --git a/schema/SystemStructureCommon.xsd b/schema/SystemStructureCommon.xsd index 9394147..fa07f10 100644 --- a/schema/SystemStructureCommon.xsd +++ b/schema/SystemStructureCommon.xsd @@ -1,619 +1,822 @@ - - - - This is the normative XML Schema 1.0 schema for the MAP SSP SystemStructure 2.0 common content across formats. Version: 2.0-alpha Copyright 2016 -- 2019 Modelica Association Project "SSP" Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - - - - This attribute group specifies the attributes common to all model elements. - - - - - - This attribute gives a human readable longer description of the model element, which can be shown to the user where appropriate. - - - - - - - This attribute gives the model element a file-wide unique id which can be referenced from other elements or via URI fragment identifier. - - - - - - - - This attribute group specifies the optional meta-data attributes common to all top-level container elements of all defined file formats. - - - - - - This attribute gives the name of the author of this file's content. - - - - - - - This attribute gives copyright information for this file's content. - - - - - - - This attribute gives a version number for this file's content. - - - - - - - This attribute gives the date and time this file was generated. - - - - - - - This attribute gives the name of the tool that generated this file. - - - - - - - This attribute gives license information for this file's content. - - - - - - - - This optional element can contain inlined content of an entity. If it is present, then the attribute source of the enclosing element must not be present. - - - - - - - - - - - - Defines the base the source URI is resolved against: If the attribute is missing or is specified as SSD, the source is resolved against the URI of the SSD, if the attribute is specified as component the URI is resolved against the (resolved) URI of the model element (e.g. component) source, or if the attribute is specified as metaData the URI is resolved against the (resolved) URI of the meta data source. The value metaData is only valid if the Signature element is contained within a MetaData element. - - - - - - - - - - - - - - This mandatory attribute specifies the role this signature has in the overall process. It indicates whether the digital signature is intended to just convey the authenticity of the information, or whether a claim for suitability of the information for certain purposes is made. In the later case, the digital signature format should include detailed information about what suitability claims are being made. - - - - - - - - - - - - - This attribute indicates the source of the digital signature as a URI (cf. RFC 3986). For purposes of the resolution of relative URIs the base URI is the URI of the SSD, if the sourceBase attribute is not specified or is specified as SSD, the URI of the containing model element (e.g. component) if the sourceBase attribute is specified as component, or the URI of the meta data source if the sourceBase attribute is specified as metaData. This allows the specification of signature sources that reside inside the component (for example an FMU), or the meta data through relative URIs. If the source attribute is missing, the signature is provided inline as contents of the Content element, which must not be present otherwise. - - - - - - - This mandatory attribute specifies the MIME type of the resource signature, which does not have a default value. If no specific MIME type can be indicated, then the type application/octet-stream is to be used. - - - - - - - - - - - - - - - - The unique name of the type of the annotation. In order to ensure uniqueness all types should be identified with reverse domain name notation (cf. Java package names or Apple UTIs) of a domain that is controlled by the entity defining the semantics and content of the annotation. For vendor-specific annotations this would e.g. be a domain controlled by the tool vendor. For MAP-SSP defined annotations, this will be a domain under the org.modelica prefix. - - - - - - - - - - - - - - - - - - - - This attribute specifies the name of the enumeration in the system description, which must be unique within in the system description. - - - - - - - - - - - Name of the Enumeration Item - - - - - - - The Value of the Enumeration Item - - - - - - - - - - - - - - - - - - This attribute specifies the name of the unit in the system description, which must be unique within in the system description. - - - - - - - - - - - - Exponent of SI base unit "A" - - - - - - - Exponent of SI base unit "cd" - - - - - - - Exponent of SI base unit "kg" - - - - - - - Exponent of SI base unit "K" - - - - - - - Exponent of SI base unit "mol" - - - - - - - Exponent of SI base unit "m" - - - - - - - - Exponent of SI derived unit "rad" - - - - - - - Exponent of SI base unit "s" - - - - - - - - - - - - - - This optional element specifies one dimension of an array connector. If no dimension elements are present in a connector, it is a scalar connector. The number of dimension elements in a connector provides the dimensionality of the array. Either the size or the sizeConnector attributes CAN be present on the element, indicating a fixed size, or a size that depends on the structural parameter or constant referenced by the sizeConnector attribute. If none of the attributes are present, then the size of the dimension is unspecified at the SSD level. If both attributes are present this is considered an error. - - - - - - - This attribute references another connector by name, that gives the size of this dimension of the connector, e.g. a structural parameter or a constant of the underlying component that gives the dimension size. - - - - - - - This attribute gives the size of this dimension of the connector as a fixed, unchangeable number. - - - - - - - - - - - - - This element can specify additional meta data for the given resource. Multiple (or no) MetaData elements may be present. - - - - - - - Defines the base the source URI is resolved against: If the attribute is missing or is specified as SSD, the source is resolved against the URI of the SSD, if the attribute is specified as resource the URI is resolved against the (resolved) URI of the resource source. - - - - - - - - - - - - - This attribute indicates the kind of resource meta data that is referenced, i.e. what role it plays in relation to the resource being described. - - - - - - - - - - - - - This attribute indicates the source of the resource meta data as a URI (cf. RFC 3986). For purposes of the resolution of relative URIs the base URI is the URI of the SSD, if the sourceBase attribute is not specified or is specified as SSD, and the URI of the referenced resource if the sourceBase attribute is specified as resource. This allows the specification of meta data sources that reside inside the resource (e.g. an FMU) through relative URIs. For meta data that are located alongside the STC, relative URIs without scheme and authority can and should be used to specify the meta data sources. For meta data that are packaged inside an SSP that contains this STC, this is mandatory (in this way, the STC URIs remain valid after unpacking the SSP into the filesystem). If the source attribute is missing, the meta data is provided inline as contents of the Content element, which must not be present otherwise. - - - - - - - This mandatory attribute specifies the MIME type of the resource meta data, which does not have a default value. If no specific MIME type can be indicated, then the type application/octet-stream is to be used. - - - - - - - - - This optional element can contain inlined content of the resource meta data. If it is present, then the attribute source of the MetaData element must not be present. - - - - - - - This element can contain digital signature information on the meta data referenced by the enclosing MetaData element. It is left unspecified what types of signatures are used and/or available for now. Multiple or no signature elements may be present. - - - - - - - - - - This element can contain digital signature information on the data referenced by the enclosing element. It is left unspecified what types of signatures are used and/or available for now. Multiple or no signature elements may be present. - - - - - - - - - This element specifies the transformation to be applied to a value prior to its use in a connection or parameter mapping. - - - - - - - This element provides for a transformation of boolean parameter values based on a mapping table and is valid for parameters of boolean type. Each mapping table entry is provided by a MapEntry element. - - - - - - - - - - This attribute gives the value of the parameter in the parameter source that this entry applies to. - - - - - - - This attribute gives the value of the parameter to use when applying it to the system or component that is to be parametrized. - - - - - - - - - - - - This element provides for a transformation of enumeration parameter values based on a mapping table of their enumeration item names and is valid for parameters of enumeration type. Each mapping table entry is provided by a MapEntry element. - - - - - - - - - - This attribute gives the value of the parameter in the parameter source that this entry applies to. - - - - - - - This attribute gives the value of the parameter to use when applying it to the system or component that is to be parametrized. - - - - - - - - - - - - This element provides for a transformation of integer parameter values based on a mapping table and is valid for parameters of all integer and enumeration types. Each mapping table entry is provided by a MapEntry element. - - - - - - - - - - This attribute gives the value of the parameter in the parameter source that this entry applies to. - - - - - - - This attribute gives the value of the parameter to use when applying it to the system or component that is to be parametrized. - - - - - - - - - - - - This element provides for a linear transformation to be performed on the parameter values and is valid for parameters of a continuous type. - - - - - - - This attribute specifies an optional offset value to use in a linear transformation of the source parameter value to the target parameter value, i.e. in the calculation target = factor * source + offset. Note that conversions based on different units are performed, unless prevented by suppressUnitConversion, prior to the application of the linear transformation, i.e. the value of source is already converted to the target unit in the formula above. - - - - - - - This attribute specifies an optional factor value to use in a linear transformation of the source parameter value to the target parameter value, i.e. in the calculation target = factor * source + offset. Note that conversions based on different units are performed, unless prevented by suppressUnitConversion, prior to the application of the linear transformation, i.e. the value of source is already converted to the target unit in the formula above. - - - - - - - - - - - - This element gives the type of a connector or signal dictionary entry (called entity below). - - - - - - - - This optional attribute specifies the MIME type of the underlying binary data, which defaults to the non-specific application/octet-stream type. This information can be used by the implementation to detect mismatches between connected binary connectors, or provide automatic means of conversion between different formats. It should be noted that the implementation is not required to provide this service, i.e. it remains the responsibility of the operator to ensure only compatible binary connectors are connected. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This attribute specifies the name of the enumeration which references into the set of defined enumerations of the system structure description, as contained in the Enumerations element of the root element. - - - - - - - - - - - This attribute gives the unit of the entity and must reference one of the unit definitions provided in the Units element of the containing file. If a unit is not supplied, the unit is determined through default mechanisms: For FMU components, the unit of the underlying variable would be used, for systems the units of connected underlying connectors could be used if unambiguous. If a unit cannot be deduced unambinguously, the user should be informed of this error. - - - - - - - - - - - This attribute gives the unit of the entity and must reference one of the unit definitions provided in the Units element of the containing file. If a unit is not supplied, the unit is determined through default mechanisms: For FMU components, the unit of the underlying variable would be used, for systems the units of connected underlying connectors could be used if unambiguous. If a unit cannot be deduced unambinguously, the user should be informed of this error. - - - - - - - - - - - - - - - - - - - - - - - - - - This attribute gives the unit of the entity and must reference one of the unit definitions provided in the Units element of the containing file. If a unit is not supplied, the unit is determined through default mechanisms: For FMU components, the unit of the underlying variable would be used, for systems the units of connected underlying connectors could be used if unambiguous. If a unit cannot be deduced unambinguously, the user should be informed of this error. - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + This is the normative XML Schema 1.0 schema for the MAP SSP + SystemStructure 2.0 common content across formats. + + Version: 2.0-alpha + + Copyright 2016 -- 2019 Modelica Association Project "SSP" + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the + following conditions are met: + + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + + + + + + This attribute group specifies the attributes common to all model elements. + + + + + + This attribute gives the model element a file-wide unique id which can + be referenced from other elements or via URI fragment identifier. + + + + + + + This attribute gives a human readable longer description of the + model element, which can be shown to the user where appropriate. + + + + + + + + + This attribute group specifies the optional meta-data attributes common to + all top-level container elements of all defined file formats. + + + + + + This attribute gives the name of the author of this file's content. + + + + + + + This attribute gives a version number for this file's content. + + + + + + + This attribute gives copyright information for this file's content. + + + + + + + This attribute gives license information for this file's content. + + + + + + + This attribute gives the name of the tool that generated this file. + + + + + + + This attribute gives the date and time this file was generated. + + + + + + + + + + + + + + + + + + + + + + + + + Name of the Enumeration Item + + + + + The Value of the Enumeration Item + + + + + + + + + + + This attribute specifies the name of the enumeration in the system description, + which must be unique within in the system description. + + + + + + + + + + + + + + + + + + Exponent of SI base unit "kg" + + + + + Exponent of SI base unit "m" + + + + + Exponent of SI base unit "s" + + + + + Exponent of SI base unit "A" + + + + + Exponent of SI base unit "K" + + + + + Exponent of SI base unit "mol" + + + + + Exponent of SI base unit "cd" + + + + + Exponent of SI derived unit "rad" + + + + + + + + + + + + + This attribute specifies the name of the unit in the system description, + which must be unique within in the system description. + + + + + + + + + + + + + + + + The unique name of the type of the annotation. + + In order to ensure uniqueness all types should be identified + with reverse domain name notation (cf. Java package names + or Apple UTIs) of a domain that is controlled by the entity + defining the semantics and content of the annotation. + + For vendor-specific annotations this would e.g. be a domain + controlled by the tool vendor. + + For MAP-SSP defined annotations, this will be a domain under + the org.modelica prefix. + + + + + + + + + + + + + + This element can specify additional meta data for the given resource. Multiple + (or no) MetaData elements may be present. + + + + + + + + This optional element can contain inlined content of the resource meta data. If it + is present, then the attribute source of the MetaData element must not be present. + + + + + + + This element can contain digital signature information on the meta data referenced + by the enclosing MetaData element. It is left unspecified what types of signatures + are used and/or available for now. Multiple or no signature elements may be present. + + + + + + + + This attribute indicates the kind of resource meta data that is referenced, i.e. + what role it plays in relation to the resource being described. + + + + + + + + + + + + + This mandatory attribute specifies the MIME type of the resource meta data, which + does not have a default value. If no specific MIME type can be indicated, then + the type application/octet-stream is to be used. + + + + + + + This attribute indicates the source of the resource meta data as a + URI (cf. RFC 3986). For purposes of the resolution of relative URIs + the base URI is the URI of the SSD, if the sourceBase attribute is + not specified or is specified as SSD, and the URI of the referenced + resource if the sourceBase attribute is specified as resource. + + This allows the specification of meta data sources that reside + inside the resource (e.g. an FMU) through relative URIs. + + For meta data that are located alongside the SSD, relative URIs + without scheme and authority can and should be used to specify the + meta data sources. For meta data that are packaged inside an SSP + that contains this SSD, this is mandatory (in this way, the SSD + URIs remain valid after unpacking the SSP into the filesystem). + + If the source attribute is missing, the meta data is provided + inline as contents of the Content element, which must not be + present otherwise. + + + + + + + Defines the base the source URI is resolved against: If the attribute + is missing or is specified as SSD, the source is resolved against the + URI of the SSD, if the attribute is specified as resource the URI is + resolved against the (resolved) URI of the resource source. + + + + + + + + + + + + + + + + This element can contain digital signature information on the data referenced + by the enclosing element. It is left unspecified what types of signatures + are used and/or available for now. Multiple or no signature elements may be present. + + + + + + + + + + + + + + This mandatory attribute specifies the role this signature has in the overall + process. It indicates whether the digital signature is intended to just convey + the authenticity of the information, or whether a claim for suitability of + the information for certain purposes is made. In the later case, the digital + signature format should include detailed information about what suitability + claims are being made. + + + + + + + + + + + + + This mandatory attribute specifies the MIME type of the resource signature, which + does not have a default value. If no specific MIME type can be indicated, then + the type application/octet-stream is to be used. + + + + + + + This attribute indicates the source of the digital signature as a + URI (cf. RFC 3986). For purposes of the resolution of relative URIs + the base URI is the URI of the SSD, if the sourceBase attribute is + not specified or is specified as SSD, the URI of the containing model + element (e.g. component) if the sourceBase attribute is specified as + component, or the URI of the meta data source if the sourceBase + attribute is specified as metaData. + + This allows the specification of signature sources that reside + inside the component (for example an FMU), or the meta data + through relative URIs. + + If the source attribute is missing, the signature is provided + inline as contents of the Content element, which must not be + present otherwise. + + + + + + + Defines the base the source URI is resolved against: If the attribute + is missing or is specified as SSD, the source is resolved against the + URI of the SSD, if the attribute is specified as component the URI is + resolved against the (resolved) URI of the model element (e.g. + component) source, or if the attribute is specified as metaData the + URI is resolved against the (resolved) URI of the meta data source. + The value metaData is only valid if the Signature element is contained + within a MetaData element. + + + + + + + + + + + + + + + + + This optional element can contain inlined content of an entity. If it is present, + then the attribute source of the enclosing element must not be present. + + + + + + + + + + + + + This element gives the type of a connector or signal dictionary entry + (called entity below). + + + + + + + + This attribute gives the unit of the entity and must + reference one of the unit definitions provided in the Units + element of the containing file. + + If a unit is not supplied, the unit is determined through + default mechanisms: For FMU components, the unit of the + underlying variable would be used, for systems the units + of connected underlying connectors could be used if unambiguous. + If a unit cannot be deduced unambinguously, the user should + be informed of this error. + + + + + + + + + + + This attribute gives the unit of the entity and must + reference one of the unit definitions provided in the Units + element of the containing file. + + If a unit is not supplied, the unit is determined through + default mechanisms: For FMU components, the unit of the + underlying variable would be used, for systems the units + of connected underlying connectors could be used if unambiguous. + If a unit cannot be deduced unambinguously, the user should + be informed of this error. + + + + + + + + + + + This attribute gives the unit of the entity and must + reference one of the unit definitions provided in the Units + element of the containing file. + + If a unit is not supplied, the unit is determined through + default mechanisms: For FMU components, the unit of the + underlying variable would be used, for systems the units + of connected underlying connectors could be used if unambiguous. + If a unit cannot be deduced unambinguously, the user should + be informed of this error. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This attribute specifies the name of the enumeration + which references into the set of defined enumerations + of the system structure description, as contained in + the Enumerations element of the root element. + + + + + + + + + + + This optional attribute specifies the MIME type of the + underlying binary data, which defaults to the non-specific + application/octet-stream type. This information can be + used by the implementation to detect mismatches between + connected binary connectors, or provide automatic means of + conversion between different formats. It should be noted + that the implementation is not required to provide this + service, i.e. it remains the responsibility of the operator + to ensure only compatible binary connectors are connected. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This element specifies the transformation to be applied to a value prior to its + use in a connection or parameter mapping. + + + + + + + This element provides for a linear transformation to be performed on the + parameter values and is valid for parameters of a continuous type. + + + + + + + This attribute specifies an optional factor value to use in a linear + transformation of the source parameter value to the target parameter + value, i.e. in the calculation target = factor * source + offset. + + Note that conversions based on different units are performed, unless + prevented by suppressUnitConversion, prior to the application of the + linear transformation, i.e. the value of source is already converted + to the target unit in the formula above. + + + + + + + This attribute specifies an optional offset value to use in a linear + transformation of the source parameter value to the target parameter + value, i.e. in the calculation target = factor * source + offset. + + Note that conversions based on different units are performed, unless + prevented by suppressUnitConversion, prior to the application of the + linear transformation, i.e. the value of source is already converted + to the target unit in the formula above. + + + + + + + + + This element provides for a transformation of boolean parameter values + based on a mapping table and is valid for parameters of boolean type. + Each mapping table entry is provided by a MapEntry element. + + + + + + + + + + This attribute gives the value of the parameter in the + parameter source that this entry applies to. + + + + + + + This attribute gives the value of the parameter to use + when applying it to the system or component that is to be + parametrized. + + + + + + + + + + + + This element provides for a transformation of integer parameter values + based on a mapping table and is valid for parameters of all integer and + enumeration types. Each mapping table entry is provided by a MapEntry + element. + + + + + + + + + + This attribute gives the value of the parameter in the + parameter source that this entry applies to. + + + + + + + This attribute gives the value of the parameter to use + when applying it to the system or component that is to be + parametrized. + + + + + + + + + + + + This element provides for a transformation of enumeration parameter values + based on a mapping table of their enumeration item names and is valid for + parameters of enumeration type. Each mapping table entry is provided by a + MapEntry element. + + + + + + + + + + This attribute gives the value of the parameter in the + parameter source that this entry applies to. + + + + + + + This attribute gives the value of the parameter to use + when applying it to the system or component that is to be + parametrized. + + + + + + + + + + + + + + + + + This optional element specifies one dimension of an array connector. + If no dimension elements are present in a connector, it is a scalar + connector. The number of dimension elements in a connector provides + the dimensionality of the array. + + Either the size or the sizeConnector attributes CAN be present + on the element, indicating a fixed size, or a size that depends on + the structural parameter or constant referenced by the sizeConnector + attribute. + + If none of the attributes are present, then the size of the dimension + is unspecified at the SSD level. If both attributes are present this + is considered an error. + + + + + + + This attribute gives the size of this dimension of the + connector as a fixed, unchangeable number. + + + + + + + This attribute references another connector by name, that + gives the size of this dimension of the connector, e.g. a + structural parameter or a constant of the underlying + component that gives the dimension size. + + + + + + + +