Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Classification support #19

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 99 additions & 2 deletions schema/SystemStructureCommon.xsd
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
xmlns:ssc="http://ssp-standard.org/SSP1/SystemStructureCommon"
xmlns:xlink="http://www.w3.org/1999/xlink"
targetNamespace="http://ssp-standard.org/SSP1/SystemStructureCommon">
<xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="https://www.w3.org/XML/2008/06/xlink.xsd"/>
<xs:annotation>
<xs:documentation xml:lang="en">
This is the normative XML Schema 1.0 schema for the MAP SSP
Expand Down Expand Up @@ -64,6 +66,101 @@
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>

<xs:group name="GElementCommon">
<xs:annotation>
<xs:documentation xml:lang="en">
Common element content for all modeling elements of the STC file.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Classification" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en">
This element, which can occur multiple times, provides a set of classifications
of an STC modeling element, provided as Keyword Value Pairs (KWP), the meaning
of which is interpreted according to the name of the classification provided in
the name attribute.

This approach can be used, for example, to provide searchable keywords for
content, or to assign and track quality or validation level requirements
across the STC process, or to maintain variant or other classification
content across the process.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ClassificationEntry" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en">
This element provides a keyword value pair entry, with the
keyword provided through the keyword attribute and the value
being the contents of the element.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="keyword" type="xs:normalizedString" use="required">
<xs:annotation>
<xs:documentation xml:lang="en">
This attribute gives the keyword for the classification entry
(i.e. keyword value pair). It is left undefined whether this
must be unique across the entries of the Classification element,
or whether repeated entries are allowed. This will depend on
the definition of the classification.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute ref="xlink:type" fixed="simple"/>
<xs:attribute ref="xlink:href">
<xs:annotation>
<xs:documentation xml:lang="en">
This attribute gives an optional link for the classification
entry (i.e. keyword value pair). This link can be given in
addition to any content of the classification entry, or it
can be the sole information of the classification entry.
The rules will depend on the definition of the classification.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attributeGroup ref="ssc:ABaseElement"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="type" type="xs:normalizedString">
<xs:annotation>
<xs:documentation xml:lang="en">
This attribute provides the name of the type of classification
being provided. The name should be unique across the Classification
elements of the immediately enclosing element.

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 classification.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute ref="xlink:type" fixed="simple"/>
<xs:attribute ref="xlink:href">
<xs:annotation>
<xs:documentation xml:lang="en">
This attribute gives an optional link for the classification
itself. This link can be given to provide additional,
potentially human readable information on the classification
type that tools can use to provide this information to the
user, especially for unknown classification types.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attributeGroup ref="ssc:ABaseElement"/>
</xs:complexType>
</xs:element>
<xs:element name="Annotations" type="ssc:TAnnotations" minOccurs="0"/>
</xs:sequence>
</xs:group>

<xs:attributeGroup name="ATopLevelMetaData">
<xs:annotation>
Expand Down Expand Up @@ -145,7 +242,7 @@
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attributeGroup ref="ssc:ABaseElement"/>
<xs:attribute name="name" type="xs:string" use="required">
Expand Down Expand Up @@ -212,7 +309,7 @@
<xs:attribute name="offset" type="xs:double" default="0"/>
</xs:complexType>
</xs:element>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attributeGroup ref="ssc:ABaseElement"/>
<xs:attribute name="name" type="xs:string" use="required">
Expand Down
16 changes: 8 additions & 8 deletions schema/SystemStructureDescription.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
<xs:element name="Enumerations" minOccurs="0" type="ssc:TEnumerations"/>
<xs:element name="Units" minOccurs="0" type="ssc:TUnits"/>
<xs:element name="DefaultExperiment" minOccurs="0" type="ssd:TDefaultExperiment"/>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attribute name="version" use="required">
<xs:annotation>
Expand Down Expand Up @@ -166,7 +166,7 @@
<xs:complexContent>
<xs:extension base="ssd:TElement">
<xs:sequence>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attribute name="type" type="xs:string" use="optional" default="application/x-fmu-sharedlibrary">
<xs:annotation>
Expand Down Expand Up @@ -322,7 +322,7 @@
<xs:complexContent>
<xs:extension base="ssd:TElement">
<xs:sequence>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attribute name="dictionary" type="xs:string" use="required">
<xs:annotation>
Expand Down Expand Up @@ -433,7 +433,7 @@
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attributeGroup ref="ssc:ABaseElement"/>
<xs:attribute name="startElement" type="xs:string" use="optional">
Expand Down Expand Up @@ -575,7 +575,7 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
Expand Down Expand Up @@ -622,7 +622,7 @@
<xs:attribute name="y" type="xs:double" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attributeGroup ref="ssc:ABaseElement"/>
<xs:attribute name="name" type="xs:string" use="required">
Expand Down Expand Up @@ -862,7 +862,7 @@
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attributeGroup ref="ssc:ABaseElement"/>
<xs:attribute name="type" type="xs:string" use="optional" default="application/x-ssp-parameter-set">
Expand Down Expand Up @@ -941,7 +941,7 @@
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attribute name="startTime" type="xs:double" use="optional">
<xs:annotation>
Expand Down
16 changes: 8 additions & 8 deletions schema/SystemStructureDescription11.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
<xs:element name="Enumerations" minOccurs="0" type="ssc:TEnumerations"/>
<xs:element name="Units" minOccurs="0" type="ssc:TUnits"/>
<xs:element name="DefaultExperiment" minOccurs="0" type="ssd:TDefaultExperiment"/>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attribute name="version" use="required">
<xs:annotation>
Expand Down Expand Up @@ -175,7 +175,7 @@
<xs:complexContent>
<xs:extension base="ssd:TElement">
<xs:sequence>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attribute name="type" type="xs:string" use="optional" default="application/x-fmu-sharedlibrary">
<xs:annotation>
Expand Down Expand Up @@ -319,7 +319,7 @@
<xs:complexContent>
<xs:extension base="ssd:TElement">
<xs:sequence>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attribute name="dictionary" type="xs:string" use="required">
<xs:annotation>
Expand Down Expand Up @@ -430,7 +430,7 @@
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attributeGroup ref="ssc:ABaseElement"/>
<xs:attribute name="startElement" type="xs:string" use="optional">
Expand Down Expand Up @@ -572,7 +572,7 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
Expand Down Expand Up @@ -619,7 +619,7 @@
<xs:attribute name="y" type="xs:double" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attributeGroup ref="ssc:ABaseElement"/>
<xs:attribute name="name" type="xs:string" use="required">
Expand Down Expand Up @@ -835,7 +835,7 @@
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attributeGroup ref="ssc:ABaseElement"/>
<xs:attribute name="type" type="xs:string" use="optional" default="application/x-ssp-parameter-set">
Expand Down Expand Up @@ -914,7 +914,7 @@
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attribute name="startTime" type="xs:double" use="optional">
<xs:annotation>
Expand Down
4 changes: 2 additions & 2 deletions schema/SystemStructureParameterMapping.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
<xs:complexType>
<xs:sequence>
<xs:element name="MappingEntry" minOccurs="0" maxOccurs="unbounded" type="ssm:TMappingEntry"/>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attribute name="version" use="required">
<xs:annotation>
Expand Down Expand Up @@ -77,7 +77,7 @@
</xs:documentation>
</xs:annotation>
</xs:group>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attributeGroup ref="ssc:ABaseElement"/>
<xs:attribute name="source" type="xs:string" use="required">
Expand Down
4 changes: 2 additions & 2 deletions schema/SystemStructureParameterValues.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
<xs:element name="Parameters" type="ssv:TParameters"/>
<xs:element name="Enumerations" minOccurs="0" type="ssc:TEnumerations"/>
<xs:element name="Units" minOccurs="0" type="ssc:TUnits"/>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attribute name="version" use="required">
<xs:annotation>
Expand Down Expand Up @@ -330,7 +330,7 @@
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attributeGroup ref="ssc:ABaseElement"/>
<xs:attribute name="name" type="xs:string" use="required">
Expand Down
4 changes: 2 additions & 2 deletions schema/SystemStructureSignalDictionary.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
<xs:element name="DictionaryEntry" minOccurs="0" maxOccurs="unbounded" type="ssb:TDictionaryEntry"/>
<xs:element name="Enumerations" minOccurs="0" type="ssc:TEnumerations"/>
<xs:element name="Units" minOccurs="0" type="ssc:TUnits"/>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attribute name="version" use="required">
<xs:annotation>
Expand All @@ -72,7 +72,7 @@
<xs:complexType name="TDictionaryEntry">
<xs:sequence>
<xs:group ref="ssc:GTypeChoice"/>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
<xs:group ref="ssc:GElementCommon"/>
</xs:sequence>
<xs:attributeGroup ref="ssc:ABaseElement"/>
<xs:attribute name="name" use="required">
Expand Down