Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
modelica committed Jan 20, 2024
1 parent f2d7a6c commit 7f1215a
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 9 deletions.
15 changes: 12 additions & 3 deletions static/docs/main/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -586,7 +586,7 @@
<div id="header">
<h1>System Structure and Parameterization</h1>
<div class="details">
<span id="revnumber">version 6675047,</span>
<span id="revnumber">version b884a8a,</span>
<span id="revdate">2024-01-20</span>
</div>
<div id="toc" class="toc2">
Expand Down Expand Up @@ -2913,7 +2913,10 @@ <h3 id="_systemstructuredescription">1.1. SystemStructureDescription</h3>
<p>|Attribute |Description
|type |Optional attribute giving the MIME type of the component, which defaults to application/x-fmu-sharedlibrary to indicate the type of the component. Valid further types are application/x-ssp-definition for system structure description files, and application/x-ssp-package for system structure package files. No further types are currently defined.
|source a|
This attribute indicates the source of the component as an URI (cf. RFC 3986). For purposes of the resolution of relative URIs the base URI is the URI of the SSD. Therefore for components that are located alongside the SSD, relative URIs without scheme and authority <strong>CAN</strong> and <strong>SHOULD</strong> be used to specify the component sources. For components that are packaged inside an SSP that contains this SSD, this is <strong>REQUIRED</strong> (in this way, the SSD URIs remain valid after unpacking the SSP into the filesystem).</p>
Optional attribute indicating the source of the component as a URI (cf. RFC 3986).
For purposes of the resolution of relative URIs the base URI is the URI of the SSD.
Therefore for components that are located alongside the SSD, relative URIs without scheme and authority <strong>CAN</strong> and <strong>SHOULD</strong> be used to specify the component sources.
For components that are packaged inside an SSP that contains this SSD, this is <strong>REQUIRED</strong> (in this way, the SSD URIs remain valid after unpacking the SSP into the filesystem).</p>
</div>
<div class="paragraph">
<p>[ <em>For example for an FMU called MyDemoFMU.fmu, that is located in the resources directory of an SSP, the correct URI would be resources/MyDemoFMU.fmu.</em> ]</p>
Expand All @@ -2928,7 +2931,13 @@ <h3 id="_systemstructuredescription">1.1. SystemStructureDescription</h3>
<p>Note that implementations are only <strong>REQUIRED</strong> to support relative URIs as specified above, and that especially relative URIs that move beyond the baseURI (i.e. go "up" a level via ..) are <strong>not required</strong> to be supported by implementations, and are in fact often not supported for security or other reasons. Implementations are also <strong>not required</strong> to support any absolute URIs and any specific URI schemes (but are of course allowed to support any and all kinds of URIs where this is considered useful).</p>
</div>
<div class="paragraph">
<p>[ Since the release of SSP 1.0, the need to support the exchange of system structure descriptions containing components with no specified implementation has been identified, to exchange system designs as templates, for example. Future releases of SSP will therefore likely make the source attribute optional, to support such use cases. Current practice for 1.x has been to either already treat this attribute as optional or to use the empty string value to indicate a missing implementation. Tools wanting to support these use cases should therefore be prepared to accept SSD files with missing or empty source attributes on components, and treat them like empty systems for the purposes of semantics. ]</p>
<p>If the source attribute is missing, this indicates that there is no provided source for the component, indicating a simulation architecture design without complete executable implementation.
Implementations <strong>CAN</strong> take any specified type attribute into account when handling such components.
In any other regard implementations <strong>CAN</strong> treat such components as equivalent to an empty system with the same connectors and other properties as specified for the component.</p>
</div>
<div class="paragraph">
<p>Note that not specifying a source attribute is not the same as specifying a source attribute with an emtpy string value, as that is considered a valid relative URI.
Implementations <strong>MUST NOT</strong> specify an empty relative URI to indicate a missing implementation.</p>
</div>
<div class="paragraph">
<p>|implementation |When the referenced component is an FMU that contains multiple implementations [ <em>for example Co-Simulation and Model Exchange</em>], this optional attribute can be used to determine which FMU implementation should be employed. If the attribute is missing or uses the default value any, the importing tool is free to choose what kind of FMU implementation to use. If the value is CoSimulation or ModelExchange the corresponding FMU implementation <strong>MUST</strong> be used. It is an error if the specified type of FMU implementation is not present in the FMU.</p>
Expand Down
19 changes: 16 additions & 3 deletions static/docs/main/schema/SystemStructureDescription.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -179,11 +179,11 @@
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="source" type="xs:anyURI" use="required">
<xs:attribute name="source" type="xs:anyURI" use="optional">
<xs:annotation>
<xs:documentation xml:lang="en">
This attribute indicates the source of the component as an URI
(cf. RFC 3986). For purposes of the resolution of relative URIs
Optional attribute indicating the source of the component as a URI
(cf. RFC 3986). For purposes of the resolution of relative URIs
the base URI is the URI of the SSD. Therefore for components
that are located alongside the SSD, relative URIs without scheme
and authority can and should be used to specify the component
Expand Down Expand Up @@ -216,6 +216,19 @@
security or other reasons. Implementations are also not required to
support any absolute URIs and any specific URI schemes (but are of
course allowed to support any and all kinds of URIs where useful).

If the source attribute is missing, this indicates that there is no
provided source for the component, indicating a simulation
architecture design without complete executable implementation.
Implementations *CAN* take any specified type attribute into account
when handling such components. In any other regard implementations
*CAN* treat such components as equivalent to an empty system with the
same connectors and other properties as specified for the component.

Note that not specifying a source attribute is not the same as
specifying a source attribute with an emtpy string value, as that
is considered a valid relative URI. Implementations *MUST NOT*
specify an empty relative URI to indicate a missing implementation.
</xs:documentation>
</xs:annotation>
</xs:attribute>
Expand Down
19 changes: 16 additions & 3 deletions static/docs/main/schema/SystemStructureDescription11.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -188,11 +188,11 @@
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="source" type="xs:anyURI" use="required">
<xs:attribute name="source" type="xs:anyURI" use="optional">
<xs:annotation>
<xs:documentation xml:lang="en">
This attribute indicates the source of the component as an URI
(cf. RFC 3986). For purposes of the resolution of relative URIs
Optional attribute indicating the source of the component as a URI
(cf. RFC 3986). For purposes of the resolution of relative URIs
the base URI is the URI of the SSD. Therefore for components
that are located alongside the SSD, relative URIs without scheme
and authority can and should be used to specify the component
Expand Down Expand Up @@ -225,6 +225,19 @@
security or other reasons. Implementations are also not required to
support any absolute URIs and any specific URI schemes (but are of
course allowed to support any and all kinds of URIs where useful).

If the source attribute is missing, this indicates that there is no
provided source for the component, indicating a simulation
architecture design without complete executable implementation.
Implementations *CAN* take any specified type attribute into account
when handling such components. In any other regard implementations
*CAN* treat such components as equivalent to an empty system with the
same connectors and other properties as specified for the component.

Note that not specifying a source attribute is not the same as
specifying a source attribute with an emtpy string value, as that
is considered a valid relative URI. Implementations *MUST NOT*
specify an empty relative URI to indicate a missing implementation.
</xs:documentation>
</xs:annotation>
</xs:attribute>
Expand Down

0 comments on commit 7f1215a

Please sign in to comment.