Skip to content

What is the fmiVersion attribute? #2109

@Tc-Fast

Description

@Tc-Fast

We currently have a contradiction regarding the format of the fmiVersion in the modelDescription.xml.

From fmi3ModelDescription.xsd

<xs:pattern value="3[.](0|[1-9][0-9]*)([.](0|[1-9][0-9]*))?(-.+)?"/>

So it allows e.g.
3.0; 3.0.1; 3.1.424242 etc.

The documentation says in Table 12:

Version of FMI the XML file complies with. The value for this version is 3.0. Future minor revisions will be denoted as 3.1, 3.2 …​

[During development prototype FMU implementations can indicate compliance with a certain development version based on the tags available at https://github.com/modelica/fmi-standard/tags. For example the value for the FMI 3.0 Alpha 2 release is 3.0-alpha.2.]

Basically it wants to skip patch versions like 3.0.3 and instead should be 3.0.

This was at some point discussed here with no conclusion:
#1765

In FMI 2.0 it was:
Version 2.0.5 Page 19

Returns the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “2.0” (so this function usually returns “2.0”).

Version 2.0.5 Page 34

Version of “FMI for Model Exchange or Co-Simulation” that was used
to generate the XML file. The value for this version is “2.0”.
[Clarification for FMI 2.0.1: The version string for FMUs generated
according to FMI 2.0.1 shall be “2.0” to be compatible with FMI 2.0
importers.]

The fmi2ModelDescription.xsd:

<xs:attribute name="fmiVersion" type="xs:normalizedString" use="required" fixed="2.0">
	<xs:annotation>
		<xs:documentation>Version of FMI (Clarification for FMI 2.0.2: for FMI 2.0.x revisions fmiVersion is defined as "2.0").</xs:documentation>
	</xs:annotation>
</xs:attribute>

I think the regex in the schema file is wrong. I think the point of using 2.0 instead of 2.0.5 was that all 2.0.x versions are compatible and same holds true for fmi3. For backwards compatibility it should have been the same for fmi3.

Anyway the contradiction needs to be resolved.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions