<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.mostcooperation.com" xmlns:mostco="http://www.mostcooperation.com" targetNamespace="http://www.mostcooperation.com" elementFormDefault="qualified" version="3.1.0.11">
        
<xs:element name="FunctionCatalog" type="FunctionCatalog">
                
<xs:annotation>
                        
<xs:documentation>The function catalog is the only global element. (Example: FunctionCatalog_Empty.xml, FunctionCatalog_SharedParam.xml)</xs:documentation>
                
</xs:annotation>
                
<xs:key name="SharedParametersKey">
                        
<xs:annotation>
                                
<xs:documentation>Ensures that shared parameter names are unique. (Example that illustrates violation of this constraint and does not validate: TODO)</xs:documentation>
                        
</xs:annotation>
                        
<xs:selector xpath="mostco:SharedParameters/mostco:SharedParameter" />
                        
<xs:field xpath="@Name" />
                
</xs:key>
                
<xs:key name="SharedSignalsKey">
                        
<xs:annotation>
                                
<xs:documentation>Ensures that shared signal names are unique.</xs:documentation>
                        
</xs:annotation>
                        
<xs:selector xpath="mostco:SharedSignals/mostco:SharedSignal" />
                        
<xs:field xpath="@Name" />
                
</xs:key>
                
<xs:key name="SharedFunctionsKey">
                        
<xs:annotation>
                                
<xs:documentation>Ensures that shared function names are unique.</xs:documentation>
                        
</xs:annotation>
                        
<xs:selector xpath="mostco:SharedFunctions/mostco:SharedFunction" />
                        
<xs:field xpath="@Name" />
                
</xs:key>
                
<xs:keyref name="SharedFunctionsSharedParametersKeyRef" refer="mostco:SharedParametersKey">
                        
<xs:annotation>
                                
<xs:documentation>Ensures the existence of shared parameters that are referenced from shared functions.</xs:documentation>
                        
</xs:annotation>
                        
<xs:selector xpath="mostco:SharedFunctions/mostco:SharedFunction/mostco:Function/mostco:Parameters/mostco:SharedParameterReference" />
                        
<xs:field xpath="@Name" />
                
</xs:keyref>
                
<xs:keyref name="SharedFunctionsNamedSharedParametersKeyRef" refer="mostco:SharedParametersKey">
                        
<xs:annotation>
                                
<xs:documentation>Ensures the existence of shared parameters that are referenced from shared functions when parameter name substitution is used.</xs:documentation>
                        
</xs:annotation>
                        
<xs:selector xpath="mostco:SharedFunctions/mostco:SharedFunction/mostco:Function/mostco:Parameters/mostco:NamedSharedParameterReference" />
                        
<xs:field xpath="@NameRef" />
                
</xs:keyref>
                
<xs:keyref name="FunctionSharedParametersKeyRef" refer="mostco:SharedParametersKey">
                        
<xs:annotation>
                                
<xs:documentation>Ensures the existence of shared parameters that are referenced from functions defined within an FBlock.</xs:documentation>
                        
</xs:annotation>
                        
<xs:selector xpath="mostco:FBlock/mostco:Function/mostco:Parameters/mostco:SharedParameterReference" />
                        
<xs:field xpath="@Name" />
                
</xs:keyref>
                
<xs:keyref name="FunctionNamedSharedParametersKeyRef" refer="mostco:SharedParametersKey">
                        
<xs:annotation>
                                
<xs:documentation>Ensures the existence of shared parameters that are referenced from functions defined within an FBlock when parameter name substitution is used.</xs:documentation>
                        
</xs:annotation>
                        
<xs:selector xpath="mostco:FBlock/mostco:Function/mostco:Parameters/mostco:NamedSharedParameterReference" />
                        
<xs:field xpath="@NameRef" />
                
</xs:keyref>
                
<xs:keyref name="SharedFunctionsKeyRef" refer="mostco:SharedFunctionsKey">
                        
<xs:annotation>
                                
<xs:documentation>Ensures the existence of shared functions that are referenced from within an FBlock.</xs:documentation>
                        
</xs:annotation>
                        
<xs:selector xpath="mostco:FBlock/mostco:SharedFunctionReference" />
                        
<xs:field xpath="@Name" />
                
</xs:keyref>
                
<xs:keyref name="SharedParametersDataElementKeyRef" refer="SharedParametersKey">
                        
<xs:annotation>
                                
<xs:documentation>Ensures the existence of shared parameters that are referenced from anywhere within the function catalog.</xs:documentation>
                        
</xs:annotation>
                        
<xs:selector xpath=".//mostco:SharedDataElementReference|.//mostco:SharedRecordFieldReference|.//mostco:SharedParameterReference" />
                        
<xs:field xpath="@Name" />
                
</xs:keyref>
                
<xs:keyref name="NamedSharedParametersDataElementKeyRef" refer="SharedParametersKey">
                        
<xs:annotation>
                                
<xs:documentation>Ensures the existence of shared parameters that are referenced from anywhere within the function catalog when name substitution is used.</xs:documentation>
                        
</xs:annotation>
                        
<xs:selector xpath=".//mostco:NamedSharedRecordFieldReference|.//mostco:NamedSharedParameterReference" />
                        
<xs:field xpath="@NameRef" />
                
</xs:keyref>
                
<xs:keyref name="SharedSignalsKeyRef" refer="mostco:SharedSignalsKey">
                        
<xs:annotation>
                                
<xs:documentation>Ensures the existence of shared signals that are referenced from anywhere within the function catalog.</xs:documentation>
                        
</xs:annotation>
                        
<xs:selector xpath=".//mostco:SharedSignalReference" />
                        
<xs:field xpath="@Name" />
                
</xs:keyref>
        
</xs:element>
        
<xs:complexType name="Array" abstract="true">
                
<xs:annotation>
                        
<xs:documentation>Contains the parts that are common to legay arrays and the Array Type MOST data type.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="DataTypeBase">
                                
<xs:sequence>
                                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                                        
<xs:choice>
                                                
<xs:element name="DataType" type="DataType" />
                                                
<xs:element name="SharedDataElementReference" type="SharedDataElementReference" />
                                        
</xs:choice>
                                
</xs:sequence>
                                
<xs:attribute name="Name" type="xs:NCName" use="optional" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="BitBase" abstract="true">
                
<xs:annotation>
                        
<xs:documentation>Contains the parts that are common to bit representations (bit-oriented representation of unsigned integers and MOST data type BitField).</xs:documentation>
                
</xs:annotation>
                
<xs:attribute name="BitPos" type="mostco:UnsignedByte" use="required" />
                
<xs:attribute name="BitLength" type="mostco:UnsignedByte" use="optional" default="1" />
        
</xs:complexType>
        
<xs:complexType name="BitOriented">
                
<xs:annotation>
                        
<xs:documentation>Used for the bit-oriented representation of unsigned integer MOST data types.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="BitBase">
                                
<xs:sequence>
                                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                                
</xs:sequence>
                                
<xs:attribute name="Name" type="xs:NCName" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="BitValue">
                
<xs:annotation>
                        
<xs:documentation>Used for the specification of individual bit for groups of bit values. It is used in the BitField MOST data type.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="BitBase">
                                
<xs:attribute name="Name" type="xs:NMTOKEN" use="required" />
                                
<xs:attribute name="TrueDisplayName" type="xs:string" use="optional">
                                        
<xs:annotation>
                                                
<xs:documentation>This attribute provides a short description of what setting the corresponding bit to true means.</xs:documentation>
                                        
</xs:annotation>
                                
</xs:attribute>
                                
<xs:attribute name="FalseDisplayName" type="xs:string" use="optional">
                                        
<xs:annotation>
                                                
<xs:documentation>This attribute provides a short description of what setting the corresponding bit to false means.</xs:documentation>
                                        
</xs:annotation>
                                
</xs:attribute>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="CatalogVersion">
                
<xs:annotation>
                        
<xs:documentation>Used when providing version information for the function catalog. (Example: FunctionCatalog_Empty.xml)</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Version">
                                
<xs:attribute name="SchemaVersion" type="xs:string" use="required">
                                        
<xs:annotation>
                                                
<xs:documentation>The SchemaVersion attribute is filled with the version of the FCat Schema that the function catalog validates against.</xs:documentation>
                                        
</xs:annotation>
                                
</xs:attribute>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="DataElement">
                
<xs:annotation>
                        
<xs:documentation>Basis for MOST message parameters, Stream parameters, array elements and record members.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="DataElementBase">
                                
<xs:sequence>
                                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                                        
<xs:element name="DataType" type="DataType" />
                                
</xs:sequence>
                                
<xs:attribute name="Name" type="xs:NCName" use="required" />
                                
<xs:attribute name="DataElementGroup" type="xs:token" use="optional">
                                        
<xs:annotation>
                                                
<xs:documentation>This attribute provides the opportunity to label data elements, based on the requirements of the function catalog designer.</xs:documentation>
                                        
</xs:annotation>
                                
</xs:attribute>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="DataElementBase" abstract="true">
                
<xs:annotation>
                        
<xs:documentation>Basis for data elements. Data elements are MOST message parameters, Stream parameters, array elements and record members.</xs:documentation>
                
</xs:annotation>
        
</xs:complexType>
        
<xs:complexType name="DataElementReference">
                
<xs:annotation>
                        
<xs:documentation>Basis for data elements. Data elements are MOST message parameters, Stream parameters, array elements and record members.</xs:documentation>
                
</xs:annotation>
                
<xs:attribute name="Name" type="xs:NCName" use="required" />
        
</xs:complexType>
        
<xs:complexType name="DataType">
                
<xs:annotation>
                        
<xs:documentation>Represents all available MOST data types.</xs:documentation>
                
</xs:annotation>
                
<xs:choice>
                        
<xs:element name="TBoolean" type="TBoolean" />
                        
<xs:element name="TBitField" type="TBitField">
                                
<xs:key name="BitValueNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that bit value names are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:BitValue" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                        
</xs:element>
                        
<xs:element name="TEnum" type="TEnum">
                                
<xs:key name="EnumCodeKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that enum codes are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:TEnumValue" />
                                        
<xs:field xpath="@Code" />
                                
</xs:key>
                                
<xs:key name="EnumNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that enum names are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:TEnumValue" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                        
</xs:element>
                        
<xs:element name="TString" type="TString" />
                        
<xs:element name="TLengthCodedString" type="TLengthCodedString" />
                        
<xs:element name="TArrayLegacy" type="TArrayLegacy" />
                        
<xs:element name="TArrayType" type="TArrayType" />
                        
<xs:element name="TRecordLegacy" type="TRecordLegacy">
                                
<xs:key name="LegacyFieldNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that record field names and references are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:TRecordField|mostco:SharedRecordFieldReference|mostco:NamedSharedRecordFieldReference" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                        
</xs:element>
                        
<xs:element name="TRecordType" type="TRecordType">
                                
<xs:key name="FieldNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that record field names and references are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:TRecordField|mostco:SharedRecordFieldReference|mostco:NamedSharedRecordFieldReference" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                        
</xs:element>
                        
<xs:element name="TStream" type="TStream">
                                
<xs:key name="TStreamParamNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that stream parameter names and references are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:Parameters/mostco:Parameter|mostco:Parameters/mostco:SharedParameterReference|mostco:Parameters/mostco:NamedSharedParameterReference" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                                
<xs:key name="TStreamSignalNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that stream signal names and references are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:StreamSignals/mostco:StreamSignal|mostco:StreamSignals/mostco:SharedSignalReference" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                                
<xs:key name="TStreamParamSeqKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that stream parameter references are unique within a parameter sequence.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:ParameterSequence/mostco:StreamParamReference|mostco:ParameterSequence/mostco:StreamParamReferenceRepeated" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                                
<xs:keyref name="TStreamParamSeqRef" refer="mostco:TStreamParamNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures the existence of stream parameters that are referenced from stream parameter sequences.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:ParameterSequence/mostco:StreamParamReference|mostco:ParameterSequence/mostco:StreamParamReferenceRepeated" />
                                        
<xs:field xpath="@Name" />
                                
</xs:keyref>
                                
<xs:keyref name="TStreamSignalSeqRef" refer="mostco:TStreamSignalNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures the existence of stream signals that are referenced from stream signal sequences.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:SignalSequence/mostco:StreamSignalReference|mostco:SignalSequence/mostco:StreamSignalReferenceRepeated" />
                                        
<xs:field xpath="@Name" />
                                
</xs:keyref>
                                
<xs:keyref name="TStreamParamCaseRef" refer="mostco:TStreamParamNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures the existence of stream parameters that are referenced from stream cases.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:StreamSwitch/mostco:ParamStreamCase/mostco:StreamParamReference" />
                                        
<xs:field xpath="@Name" />
                                
</xs:keyref>
                        
</xs:element>
                        
<xs:element name="TCStream" type="TCStream" />
                        
<xs:element name="TShortStream" type="TShortStream">
                                
<xs:key name="TShortStreamParamNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that stream parameter names and references are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:Parameters/mostco:Parameter|mostco:Parameters/mostco:SharedParameterReference|mostco:Parameters/mostco:NamedSharedParameterReference" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                                
<xs:key name="TShortStreamSignalNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that stream signal names and references are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:StreamSignals/mostco:StreamSignal|mostco:StreamSignals/mostco:SharedSignalReference" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                                
<xs:key name="TShortStreamParamSeqKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that stream parameter references are unique within a parameter sequence.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:ParameterSequence/mostco:StreamParamReference|mostco:ParameterSequence/mostco:StreamParamReferenceRepeated" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                                
<xs:keyref name="TShortStreamParamSeqRef" refer="mostco:TShortStreamParamNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures the existence of stream parameters that are referenced from stream parameter sequences.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:ParameterSequence/mostco:StreamParamReference|mostco:ParameterSequence/mostco:StreamParamReferenceRepeated" />
                                        
<xs:field xpath="@Name" />
                                
</xs:keyref>
                                
<xs:keyref name="TShortStreamSignalSeqRef" refer="mostco:TShortStreamSignalNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures the existence of stream signals that are referenced from stream signal sequences.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:SignalSequence/mostco:StreamSignalReference|mostco:SignalSequence/mostco:StreamSignalReferenceRepeated" />
                                        
<xs:field xpath="@Name" />
                                
</xs:keyref>
                                
<xs:keyref name="TShortStreamParamCaseRef" refer="mostco:TShortStreamParamNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures the existence of stream parameters that are referenced from stream cases.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:StreamSwitch/mostco:ParamStreamCase/mostco:StreamParamReference" />
                                        
<xs:field xpath="@Name" />
                                
</xs:keyref>
                        
</xs:element>
                        
<xs:element name="TUByte" type="TUByte">
                                
<xs:key name="BitOrientedUByteNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that bit-oriented names are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:BitOriented" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                                
<xs:key name="BitOrientedUByteBitPosKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that bit-oriented bit positions are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:BitOriented" />
                                        
<xs:field xpath="@BitPos" />
                                
</xs:key>
                        
</xs:element>
                        
<xs:element name="TSByte" type="TSByte" />
                        
<xs:element name="TUWord" type="TUWord">
                                
<xs:key name="BitOrientedUWordNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that bit-oriented names are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:BitOriented" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                                
<xs:key name="BitOrientedUWordBitPosKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that bit-oriented bit positions are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:BitOriented" />
                                        
<xs:field xpath="@BitPos" />
                                
</xs:key>
                        
</xs:element>
                        
<xs:element name="TSWord" type="TSWord" />
                        
<xs:element name="TULong" type="TULong">
                                
<xs:key name="BitOrientedULongNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that bit-oriented names are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:BitOriented" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                                
<xs:key name="BitOrientedULongBitPosKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that bit-oriented bit positions are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:BitOriented" />
                                        
<xs:field xpath="@BitPos" />
                                
</xs:key>
                        
</xs:element>
                        
<xs:element name="TSLong" type="TSLong" />
                        
<xs:element name="TULongLong" type="TULongLong">
                                
<xs:key name="BitOrientedULongLongNameKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that bit-oriented names are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:BitOriented" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                                
<xs:key name="BitOrientedULongLongBitPosKey">
                                        
<xs:annotation>
                                                
<xs:documentation>Ensures that bit-oriented bit positions are unique.</xs:documentation>
                                        
</xs:annotation>
                                        
<xs:selector xpath="mostco:BitOriented" />
                                        
<xs:field xpath="@BitPos" />
                                
</xs:key>
                        
</xs:element>
                        
<xs:element name="TSLongLong" type="TSLongLong" />
                        
<xs:element name="TFloat" type="TFloat" />
                        
<xs:element name="TDouble" type="TDouble" />
                
</xs:choice>
        
</xs:complexType>
        
<xs:complexType name="DataTypeBase" abstract="true">
                
<xs:annotation>
                        
<xs:documentation>Basis for the definition of MOST data types.</xs:documentation>
                
</xs:annotation>
        
</xs:complexType>
        
<xs:complexType name="DoubleValueRange">
                
<xs:annotation>
                        
<xs:documentation>Defines the specific value range limits for the Double floating point data type.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="ValueRangeBase">
                                
<xs:attribute name="Min" type="mostco:Double" use="required" />
                                
<xs:attribute name="Max" type="mostco:Double" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="FBlock">
                
<xs:annotation>
                        
<xs:documentation>Represents a MOST FBlock. (Example: FunctionCatalog_FBlock.xml)</xs:documentation>
                
</xs:annotation>
                
<xs:sequence>
                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                        
<xs:element name="FBlockVersion" type="VersionEx" />
                        
<xs:choice minOccurs="0" maxOccurs="unbounded">
                                
<xs:element name="Function" type="Function">
                                        
<xs:key name="ParameterNameKey">
                                                
<xs:annotation>
                                                        
<xs:documentation>Ensures that parameter names and references are unique.</xs:documentation>
                                                
</xs:annotation>
                                                
<xs:selector xpath="mostco:Parameters/mostco:Parameter|mostco:Parameters/mostco:SharedParameterReference|mostco:Parameters/mostco:NamedSharedParameterReference" />
                                                
<xs:field xpath="@Name" />
                                        
</xs:key>
                                        
<xs:keyref name="ParameterNameKeyRef" refer="ParameterNameKey">
                                                
<xs:annotation>
                                                        
<xs:documentation>Ensures the existence of parameters that are referenced from OPTypes.</xs:documentation>
                                                
</xs:annotation>
                                                
<xs:selector xpath="mostco:Property/*/mostco:ParameterReference|mostco:Method/*/mostco:ParameterReference" />
                                                
<xs:field xpath="@Name" />
                                        
</xs:keyref>
                                
</xs:element>
                                
<xs:element name="SharedFunctionReference" type="SharedFunctionReference" />
                        
</xs:choice>
                
</xs:sequence>
                
<xs:attribute name="Name" type="xs:NCName" use="required" />
                
<xs:attribute name="Id" type="mostco:UnsignedByte" use="required" />
        
</xs:complexType>
        
<xs:complexType name="FloatValueRange">
                
<xs:annotation>
                        
<xs:documentation>Defines the specific value range limits for the Float floating point data type.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="ValueRangeBase">
                                
<xs:attribute name="Min" type="mostco:Float" use="required" />
                                
<xs:attribute name="Max" type="mostco:Float" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="Function">
                
<xs:annotation>
                        
<xs:documentation>Defines the content of a MOST function.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="FunctionBase">
                                
<xs:sequence>
                                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                                        
<xs:element name="FunctionVersion" type="VersionEx" />
                                        
<xs:element name="Parameters">
                                                
<xs:complexType>
                                                        
<xs:annotation>
                                                                
<xs:documentation>A parameter can either be locally defined or referenced from the set of shared data elements. The name of a shared parameter can be overwritten when using a named shared data element reference.</xs:documentation>
                                                        
</xs:annotation>
                                                        
<xs:choice minOccurs="0" maxOccurs="unbounded">
                                                                
<xs:element name="Parameter" type="DataElement" />
                                                                
<xs:element name="SharedParameterReference" type="SharedDataElementReference" />
                                                                
<xs:element name="NamedSharedParameterReference" type="NamedSharedDataElementReference" />
                                                        
</xs:choice>
                                                
</xs:complexType>
                                        
</xs:element>
                                        
<xs:choice>
                                                
<xs:annotation>
                                                        
<xs:documentation>A MOST function is either a property or a method.</xs:documentation>
                                                
</xs:annotation>
                                                
<xs:element name="Property" type="Property" />
                                                
<xs:element name="Method" type="Method" />
                                        
</xs:choice>
                                
</xs:sequence>
                                
<xs:attribute name="Virtual" type="xs:boolean" use="optional" />
                                
<xs:attribute name="FunctionGroup" type="xs:token" use="optional" />
                                
<xs:attribute name="Id" type="FunctionId" use="required" />
                                
<xs:attribute name="Wellknown" type="xs:boolean" />
                                
<xs:attribute name="Occurrence" use="required">
                                        
<xs:simpleType>
                                                
<xs:annotation>
                                                        
<xs:documentation>A MOST function is either a property or a method.</xs:documentation>
                                                
</xs:annotation>
                                                
<xs:restriction base="xs:string">
                                                        
<xs:enumeration value="Conditional" />
                                                        
<xs:enumeration value="Mandatory" />
                                                        
<xs:enumeration value="Optional" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="FunctionBase" abstract="true">
                
<xs:annotation>
                        
<xs:documentation>Basis for the MOST function definition.</xs:documentation>
                
</xs:annotation>
                
<xs:attribute name="Name" type="xs:NCName" use="required" />
        
</xs:complexType>
        
<xs:complexType name="FunctionCatalog">
                
<xs:annotation>
                        
<xs:documentation>Basis for the definition of a MOST function catalog. Besides FBlocks, it contains shared definitions of functions, data elements, and Stream signals.</xs:documentation>
                
</xs:annotation>
                
<xs:sequence>
                        
<xs:element name="CatalogVersion" type="CatalogVersion" />
                        
<xs:element name="SharedParameters" minOccurs="0">
                                
<xs:complexType>
                                        
<xs:sequence>
                                                
<xs:element name="SharedParameter" minOccurs="0" maxOccurs="unbounded">
                                                        
<xs:complexType>
                                                                
<xs:sequence>
                                                                        
<xs:element name="Parameter" type="DataElement" />
                                                                
</xs:sequence>
                                                                
<xs:attribute name="Name" type="xs:NCName" use="required" />
                                                        
</xs:complexType>
                                                
</xs:element>
                                        
</xs:sequence>
                                
</xs:complexType>
                                
<xs:key name="SharedParameterNameKey">
                                        
<xs:selector xpath="mostco:SharedParameter" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                        
</xs:element>
                        
<xs:element name="SharedSignals" minOccurs="0">
                                
<xs:complexType>
                                        
<xs:sequence>
                                                
<xs:element name="SharedSignal" minOccurs="0" maxOccurs="unbounded">
                                                        
<xs:complexType>
                                                                
<xs:sequence>
                                                                        
<xs:element name="StreamSignal" type="StreamSignal" />
                                                                
</xs:sequence>
                                                                
<xs:attribute name="Name" type="xs:NCName" use="required" />
                                                        
</xs:complexType>
                                                
</xs:element>
                                        
</xs:sequence>
                                
</xs:complexType>
                        
</xs:element>
                        
<xs:element name="SharedFunctions" minOccurs="0">
                                
<xs:complexType>
                                        
<xs:sequence>
                                                
<xs:element name="SharedFunction" minOccurs="0" maxOccurs="unbounded">
                                                        
<xs:complexType>
                                                                
<xs:sequence>
                                                                        
<xs:element name="Function" type="Function">
                                                                                
<xs:key name="SharedFunctionParameterNameKey">
                                                                                        
<xs:selector xpath="mostco:Parameters/mostco:Parameter|mostco:Parameters/mostco:SharedParameterReference|mostco:Parameters/mostco:NamedSharedParameterReference" />
                                                                                        
<xs:field xpath="@Name" />
                                                                                
</xs:key>
                                                                                
<xs:keyref name="SharedFunctionParameterNameKeyRef" refer="SharedFunctionParameterNameKey">
                                                                                        
<xs:selector xpath="mostco:Property/*/mostco:ParameterReference|mostco:Method/*/mostco:ParameterReference" />
                                                                                        
<xs:field xpath="@Name" />
                                                                                
</xs:keyref>
                                                                        
</xs:element>
                                                                
</xs:sequence>
                                                                
<xs:attribute name="Name" type="xs:NCName" use="required" />
                                                        
</xs:complexType>
                                                
</xs:element>
                                        
</xs:sequence>
                                
</xs:complexType>
                        
</xs:element>
                        
<xs:element name="FBlock" type="FBlock" minOccurs="0" maxOccurs="unbounded" />
                
</xs:sequence>
        
</xs:complexType>
        
<xs:complexType name="FunctionCategory" abstract="true">
                
<xs:annotation>
                        
<xs:documentation>Basis for properties and methods.</xs:documentation>
                
</xs:annotation>
        
</xs:complexType>
        
<xs:complexType name="Integer" abstract="true">
                
<xs:annotation>
                        
<xs:documentation>Basis for MOST integer data types.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Number">
                                
<xs:attribute name="Exponent" type="mostco:SignedByte" default="0" />
                                
<xs:attribute name="Step" type="mostco:UnsignedWord" use="optional" default="1" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="Method">
                
<xs:annotation>
                        
<xs:documentation>Describes a method by means of the function class and the used OPTypes.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="FunctionCategory">
                                
<xs:all>
                                        
<xs:element name="Start" type="OPType" minOccurs="0" />
                                        
<xs:element name="Abort" type="OPType" minOccurs="0" />
                                        
<xs:element name="StartResult" type="OPType" minOccurs="0" />
                                        
<xs:element name="StartResultAck" type="OPType" minOccurs="0" />
                                        
<xs:element name="AbortAck" type="OPType" minOccurs="0" />
                                        
<xs:element name="StartAck" type="OPType" minOccurs="0" />
                                        
<xs:element name="ErrorAck" type="OPType" minOccurs="0" />
                                        
<xs:element name="ProcessingAck" type="OPType" minOccurs="0" />
                                        
<xs:element name="Processing" type="OPType" minOccurs="0" />
                                        
<xs:element name="Result" type="OPType" minOccurs="0" />
                                        
<xs:element name="ResultAck" type="OPType" minOccurs="0" />
                                        
<xs:element name="Error" type="OPType" minOccurs="0" />
                                
</xs:all>
                                
<xs:attribute name="Class" type="MethodClass" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="Modification">
                
<xs:annotation>
                        
<xs:documentation>One entry in the change history of the elements that support it.</xs:documentation>
                
</xs:annotation>
                
<xs:sequence>
                        
<xs:element name="Change" type="xs:string" />
                        
<xs:element name="Reason" type="xs:string" />
                
</xs:sequence>
                
<xs:attribute name="Author" type="xs:string" use="optional" />
                
<xs:attribute name="Date" type="xs:date" use="optional" />
                
<xs:attribute name="Time" type="xs:time" use="optional" />
        
</xs:complexType>
        
<xs:complexType name="NamedSharedDataElementReference">
                
<xs:annotation>
                        
<xs:documentation>Used to reference shared data elements and replace the shared name with a local name. The local name is contained in the Name attribute while the NameRef attribute points to the name of the shared data element.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="SharedDataElementReferenceBase">
                                
<xs:sequence>
                                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                                
</xs:sequence>
                                
<xs:attribute name="NameRef" type="xs:NCName" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="Number" abstract="true">
                
<xs:annotation>
                        
<xs:documentation>Used as the basis for floating point and integer MOST data types. Here, all available units for MOST numeric data types are defined.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="DataTypeBase">
                                
<xs:attribute name="Unit" default="none">
                                        
<xs:simpleType>
                                                
<xs:restriction base="xs:string">
                                                        
<xs:enumeration value="1/min" />
                                                        
<xs:enumeration value="360_deg/2pow32" />
                                                        
<xs:enumeration value="360_deg/2pow8" />
                                                        
<xs:enumeration value="A" />
                                                        
<xs:enumeration value="a" />
                                                        
<xs:enumeration value="bar" />
                                                        
<xs:enumeration value="bit" />
                                                        
<xs:enumeration value="Bps" />
                                                        
<xs:enumeration value="bps" />
                                                        
<xs:enumeration value="Byte" />
                                                        
<xs:enumeration value="C" />
                                                        
<xs:enumeration value="ccm" />
                                                        
<xs:enumeration value="cm" />
                                                        
<xs:enumeration value="cm/s" />
                                                        
<xs:enumeration value="d" />
                                                        
<xs:enumeration value="dB" />
                                                        
<xs:enumeration value="deg/s" />
                                                        
<xs:enumeration value="degrees" />
                                                        
<xs:enumeration value="F" />
                                                        
<xs:enumeration value="gal_UK" />
                                                        
<xs:enumeration value="gal_US" />
                                                        
<xs:enumeration value="GByte" />
                                                        
<xs:enumeration value="h" />
                                                        
<xs:enumeration value="Hz" />
                                                        
<xs:enumeration value="K" />
                                                        
<xs:enumeration value="kbps" />
                                                        
<xs:enumeration value="kBps" />
                                                        
<xs:enumeration value="kByte" />
                                                        
<xs:enumeration value="kHz" />
                                                        
<xs:enumeration value="km" />
                                                        
<xs:enumeration value="km/h" />
                                                        
<xs:enumeration value="km/l" />
                                                        
<xs:enumeration value="l" />
                                                        
<xs:enumeration value="l/100km" />
                                                        
<xs:enumeration value="m" />
                                                        
<xs:enumeration value="m/s" />
                                                        
<xs:enumeration value="m/s_2" />
                                                        
<xs:enumeration value="mA" />
                                                        
<xs:enumeration value="MBps" />
                                                        
<xs:enumeration value="Mbps" />
                                                        
<xs:enumeration value="MByte" />
                                                        
<xs:enumeration value="MHz" />
                                                        
<xs:enumeration value="min" />
                                                        
<xs:enumeration value="minutes" />
                                                        
<xs:enumeration value="mls" />
                                                        
<xs:enumeration value="mls/gal" />
                                                        
<xs:enumeration value="mls/h" />
                                                        
<xs:enumeration value="mon" />
                                                        
<xs:enumeration value="ms" />
                                                        
<xs:enumeration value="mV" />
                                                        
<xs:enumeration value="none" />
                                                        
<xs:enumeration value="percent" />
                                                        
<xs:enumeration value="pixel" />
                                                        
<xs:enumeration value="psi" />
                                                        
<xs:enumeration value="s" />
                                                        
<xs:enumeration value="seconds" />
                                                        
<xs:enumeration value="TByte" />
                                                        
<xs:enumeration value="us" />
                                                        
<xs:enumeration value="V" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="OPType">
                
<xs:annotation>
                        
<xs:documentation>Basis for the definition of one particular OPType and the corresponding parameter list.</xs:documentation>
                
</xs:annotation>
                
<xs:sequence>
                        
<xs:element name="ParameterReference" type="DataElementReference" minOccurs="0" maxOccurs="unbounded" />
                
</xs:sequence>
                
<xs:attribute name="Channel" use="optional">
                        
<xs:simpleType>
                                
<xs:restriction base="xs:string">
                                        
<xs:enumeration value="Control" />
                                        
<xs:enumeration value="MOST-High" />
                                        
<xs:enumeration value="Ethernet" />
                                        
<xs:enumeration value="Other" />
                                
</xs:restriction>
                        
</xs:simpleType>
                
</xs:attribute>
        
</xs:complexType>
        
<xs:complexType name="ParameterSequence">
                
<xs:annotation>
                        
<xs:documentation>Represents a Stream parameter sequence, built on a list of non-repeating Stream parameters followed by repeating Stream parameters.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="ParameterSequenceBase">
                                
<xs:sequence>
                                        
<xs:element name="StreamParamReferenceRepeated" type="DataElementReference" minOccurs="0" maxOccurs="unbounded" />
                                
</xs:sequence>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="ParameterSequenceBase">
                
<xs:annotation>
                        
<xs:documentation>Basis for building a sequence of Stream parameters or a Stream case.</xs:documentation>
                
</xs:annotation>
                
<xs:sequence>
                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                        
<xs:element name="StreamParamReference" type="DataElementReference" minOccurs="0" maxOccurs="unbounded" />
                
</xs:sequence>
        
</xs:complexType>
        
<xs:complexType name="ParamStreamCase">
                
<xs:annotation>
                        
<xs:documentation>Represents a Stream case. </xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="ParameterSequenceBase">
                                
<xs:attribute name="MinSelectorValue" type="xs:anySimpleType" use="required" />
                                
<xs:attribute name="MaxSelectorValue" type="xs:anySimpleType" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="Property">
                
<xs:annotation>
                        
<xs:documentation>Describes a property by means of the function class and the used OPTypes.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="FunctionCategory">
                                
<xs:all>
                                        
<xs:element name="Set" type="OPType" minOccurs="0" />
                                        
<xs:element name="Get" type="OPType" minOccurs="0" />
                                        
<xs:element name="SetGet" type="OPType" minOccurs="0" />
                                        
<xs:element name="Increment" type="OPType" minOccurs="0" />
                                        
<xs:element name="Decrement" type="OPType" minOccurs="0" />
                                        
<xs:element name="ErrorAck" type="OPType" minOccurs="0" />
                                        
<xs:element name="Status" type="OPType" minOccurs="0" />
                                        
<xs:element name="Error" type="OPType" minOccurs="0" />
                                
</xs:all>
                                
<xs:attribute name="Notification" type="xs:boolean" />
                                
<xs:attribute name="Class" type="PropertyClass" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="Record" abstract="true">
                
<xs:annotation>
                        
<xs:documentation>Serves as the basis for legacy records and the Record Type.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="DataTypeBase" />
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="SByteValueRange">
                
<xs:annotation>
                        
<xs:documentation>Defines the specific value range limits for the Signed Byte integer data type.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="ValueRangeBase">
                                
<xs:attribute name="Min" type="mostco:SignedByte" use="required" />
                                
<xs:attribute name="Max" type="mostco:SignedByte" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="SharedDataElementReference">
                
<xs:annotation>
                        
<xs:documentation>Used to reference shared data element definitions from function parameter lists, arrays, Streams, and records.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="SharedDataElementReferenceBase" />
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="SharedDataElementReferenceBase" abstract="true">
                
<xs:annotation>
                        
<xs:documentation>Basis for shared data element references and named shared data element references.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="DataElementBase">
                                
<xs:attribute name="Name" type="xs:NCName" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="SharedFunctionReference">
                
<xs:annotation>
                        
<xs:documentation>Used to reference shared function definitions. (Examples: FunctionCatalog_SharedFunctionReference.xml and FunctionCatalog_OverrideSharedFunctionReference.xml)</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="FunctionBase">
                                
<xs:attribute name="Id" type="FunctionId" use="optional" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="SharedSignalReference">
                
<xs:annotation>
                        
<xs:documentation>Used to reference shared Stream signal definitions. (Example: FunctionCatalog_SharedSignal.xml)</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="StreamSignalBase" />
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="SignalSequence">
                
<xs:annotation>
                        
<xs:documentation>Defines a list of Stream signals. (Example: FunctionCatalog_SharedSignal.xml)</xs:documentation>
                
</xs:annotation>
                
<xs:sequence>
                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                        
<xs:element name="StreamSignalReference" type="StreamSignalReference" minOccurs="0" maxOccurs="unbounded" />
                        
<xs:element name="StreamSignalReferenceRepeated" type="StreamSignalReference" minOccurs="0" maxOccurs="unbounded" />
                
</xs:sequence>
                
<xs:attribute name="ByteOrder" use="optional" default="BigEndian">
                        
<xs:simpleType>
                                
<xs:restriction base="xs:string">
                                        
<xs:enumeration value="BigEndian" />
                                        
<xs:enumeration value="LittleEndian" />
                                
</xs:restriction>
                        
</xs:simpleType>
                
</xs:attribute>
        
</xs:complexType>
        
<xs:complexType name="SLongLongValueRange">
                
<xs:annotation>
                        
<xs:documentation>Defines the specific value range limits for the Signed Long Long integer data type.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="ValueRangeBase">
                                
<xs:attribute name="Min" type="mostco:SignedLongLong" use="required" />
                                
<xs:attribute name="Max" type="mostco:SignedLongLong" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="SLongValueRange">
                
<xs:annotation>
                        
<xs:documentation>Defines the specific value range limits for the Signed Long integer data type.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="ValueRangeBase">
                                
<xs:attribute name="Min" type="mostco:SignedLong" use="required" />
                                
<xs:attribute name="Max" type="mostco:SignedLong" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="StreamContents" abstract="true">
                
<xs:annotation>
                        
<xs:documentation>Basis for defining the content of Streams and Short Streams.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="DataTypeBase">
                                
<xs:sequence>
                                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                                        
<xs:element name="Parameters" minOccurs="0">
                                                
<xs:complexType>
                                                        
<xs:sequence>
                                                                
<xs:choice minOccurs="0" maxOccurs="unbounded">
                                                                        
<xs:element name="Parameter" type="DataElement" />
                                                                        
<xs:element name="SharedParameterReference" type="SharedDataElementReference" />
                                                                        
<xs:element name="NamedSharedParameterReference" type="NamedSharedDataElementReference" />
                                                                
</xs:choice>
                                                        
</xs:sequence>
                                                
</xs:complexType>
                                        
</xs:element>
                                        
<xs:element name="StreamSignals" type="StreamSignals" minOccurs="0" />
                                        
<xs:choice minOccurs="0">
                                                
<xs:element name="ParameterSequence" type="ParameterSequence" />
                                                
<xs:element name="SignalSequence" type="SignalSequence" />
                                                
<xs:element name="StreamSwitch" type="StreamSwitch" />
                                        
</xs:choice>
                                
</xs:sequence>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="StreamSignal">
                
<xs:annotation>
                        
<xs:documentation>Defines one Stream signal.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="StreamSignalBase">
                                
<xs:sequence>
                                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                                
</xs:sequence>
                                
<xs:attribute name="Signedness" use="optional" default="Unsigned">
                                        
<xs:simpleType>
                                                
<xs:restriction base="xs:string">
                                                        
<xs:enumeration value="Signed" />
                                                        
<xs:enumeration value="Unsigned" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                                
<xs:attribute name="BitLength" type="mostco:UnsignedByte" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="StreamSignalBase">
                
<xs:annotation>
                        
<xs:documentation>Basis for the definition of Stream signals and references to Stream signals.</xs:documentation>
                
</xs:annotation>
                
<xs:attribute name="Name" type="xs:NCName" use="required" />
        
</xs:complexType>
        
<xs:complexType name="StreamSignalReference">
                
<xs:annotation>
                        
<xs:documentation>Used to reference a Stream signal definition.</xs:documentation>
                
</xs:annotation>
                
<xs:attribute name="Name" type="xs:NCName" use="required" />
        
</xs:complexType>
        
<xs:complexType name="StreamSignals">
                
<xs:annotation>
                        
<xs:documentation>Represents a list of Stream signals or references to shared Stream signals.</xs:documentation>
                
</xs:annotation>
                
<xs:sequence>
                        
<xs:choice minOccurs="0" maxOccurs="unbounded">
                                
<xs:element name="StreamSignal" type="StreamSignal" />
                                
<xs:element name="SharedSignalReference" type="SharedSignalReference" />
                        
</xs:choice>
                
</xs:sequence>
        
</xs:complexType>
        
<xs:complexType name="StreamSwitch">
                
<xs:annotation>
                        
<xs:documentation>Represents a set of Stream cases.</xs:documentation>
                
</xs:annotation>
                
<xs:sequence maxOccurs="unbounded">
                        
<xs:element name="ParamStreamCase" type="ParamStreamCase">
                                
<xs:key name="ParamStreamCaseKey">
                                        
<xs:selector xpath="mostco:StreamParamReference" />
                                        
<xs:field xpath="@Name" />
                                
</xs:key>
                        
</xs:element>
                
</xs:sequence>
                
<xs:attribute name="SelectorName" type="xs:NCName" use="required" />
        
</xs:complexType>
        
<xs:complexType name="StringBase" abstract="true">
                
<xs:annotation>
                        
<xs:documentation>Used as the basis for the definition of the MOST data types String and Length-coded String.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="DataTypeBase" />
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="SWordValueRange">
                
<xs:annotation>
                        
<xs:documentation>Defines the specific value range limits for the Signed Word integer data type.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="ValueRangeBase">
                                
<xs:attribute name="Min" type="mostco:SignedWord" use="required" />
                                
<xs:attribute name="Max" type="mostco:SignedWord" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TArrayLegacy">
                
<xs:annotation>
                        
<xs:documentation>Representation of the legacy array construct, which is not a MOST data type but modeled as such for reasons of backward compatibility..</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Array">
                                
<xs:attribute name="MaxElementCount" type="mostco:UnsignedByte" use="optional" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TArrayType">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Array Type. (Example: FunctionCatalog_ArrayType.xml)</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Array">
                                
<xs:attribute name="ElementCountByteLength" use="required">
                                        
<xs:simpleType>
                                                
<xs:restriction base="mostco:UnsignedByte">
                                                        
<xs:enumeration value="1" />
                                                        
<xs:enumeration value="2" />
                                                        
<xs:enumeration value="4" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                                
<xs:attribute name="MaxElementCount" type="mostco:UnsignedLong" use="optional" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TBitField">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type BitField.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="DataTypeBase">
                                
<xs:sequence maxOccurs="unbounded">
                                        
<xs:element name="BitValue" type="BitValue" />
                                
</xs:sequence>
                                
<xs:attribute name="TotalByteLength" use="required">
                                        
<xs:simpleType>
                                                
<xs:restriction base="mostco:UnsignedByte">
                                                        
<xs:enumeration value="1" />
                                                        
<xs:enumeration value="2" />
                                                        
<xs:enumeration value="4" />
                                                        
<xs:enumeration value="8" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TBoolean" abstract="false">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Boolean. (Example: FunctionCatalog_SharedParam.xml)</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="DataTypeBase" />
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TCStream">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Classified Stream.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="DataTypeBase">
                                
<xs:attribute name="MaxLength" type="mostco:UnsignedWord" use="optional" />
                                
<xs:attribute name="MediaType" type="xs:string" use="optional" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TDouble">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Double.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Number">
                                
<xs:sequence>
                                        
<xs:element name="ValueRange" type="DoubleValueRange" minOccurs="0" maxOccurs="unbounded" />
                                
</xs:sequence>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TEnum">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Enum.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="DataTypeBase">
                                
<xs:sequence>
                                        
<xs:element name="TEnumValue" type="TEnumValue" maxOccurs="unbounded" />
                                        
<xs:element name="TEnumReserved" type="TEnumReserved" minOccurs="0" maxOccurs="unbounded" />
                                
</xs:sequence>
                                
<xs:attribute name="TotalByteLength" use="optional" default="1">
                                        
<xs:simpleType>
                                                
<xs:restriction base="mostco:UnsignedByte">
                                                        
<xs:enumeration value="1" />
                                                        
<xs:enumeration value="2" />
                                                        
<xs:enumeration value="4" />
                                                        
<xs:enumeration value="8" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TEnumReserved">
                
<xs:annotation>
                        
<xs:documentation>Represents a reserved range for an Enum MOST data type.</xs:documentation>
                
</xs:annotation>
                
<xs:attribute name="StartCode" type="mostco:UnsignedLongLong" use="required" />
                
<xs:attribute name="EndCode" type="mostco:UnsignedLongLong" use="required" />
                
<xs:attribute name="DisplayName" type="xs:string" use="optional" />
        
</xs:complexType>
        
<xs:complexType name="TEnumValue">
                
<xs:annotation>
                        
<xs:documentation>Represents one value for an Enum MOST data type.</xs:documentation>
                
</xs:annotation>
                
<xs:sequence>
                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                
</xs:sequence>
                
<xs:attribute name="Code" type="mostco:UnsignedLongLong" use="required" />
                
<xs:attribute name="Name" type="xs:NCName" use="required" />
        
</xs:complexType>
        
<xs:complexType name="TFloat">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Float.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Number">
                                
<xs:sequence>
                                        
<xs:element name="ValueRange" type="FloatValueRange" minOccurs="0" maxOccurs="unbounded" />
                                
</xs:sequence>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TLengthCodedString">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Length-coded String.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="StringBase">
                                
<xs:attribute name="MaxSize" type="mostco:UnsignedLong" use="optional" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TRecordLegacy">
                
<xs:annotation>
                        
<xs:documentation>Representation of the legacy record construct, which is not a MOST data type but modeled as such for reasons of backward compatibility..</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Record">
                                
<xs:sequence>
                                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                                        
<xs:choice minOccurs="0" maxOccurs="255">
                                                
<xs:element name="TRecordField" type="DataElement" />
                                                
<xs:element name="SharedRecordFieldReference" type="SharedDataElementReference" />
                                                
<xs:element name="NamedSharedRecordFieldReference" type="NamedSharedDataElementReference" />
                                        
</xs:choice>
                                
</xs:sequence>
                                
<xs:attribute name="Name" type="xs:NCName" use="optional" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TRecordType">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Record Type. (Example: FunctionCatalog_RecordType.xml)</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Record">
                                
<xs:sequence minOccurs="0" maxOccurs="unbounded">
                                        
<xs:choice>
                                                
<xs:element name="TRecordField" type="DataElement" />
                                                
<xs:element name="SharedRecordFieldReference" type="SharedDataElementReference" />
                                                
<xs:element name="NamedSharedRecordFieldReference" type="NamedSharedDataElementReference" />
                                        
</xs:choice>
                                
</xs:sequence>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TSByte">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Signed Byte.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Integer">
                                
<xs:sequence>
                                        
<xs:element name="ValueRange" type="SByteValueRange" minOccurs="0" maxOccurs="unbounded" />
                                
</xs:sequence>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TShortStream">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Short Stream.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="StreamContents">
                                
<xs:attribute name="MaxLength" type="mostco:UnsignedByte" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TSLong">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Signed Long.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Integer">
                                
<xs:sequence>
                                        
<xs:element name="ValueRange" type="SLongValueRange" minOccurs="0" maxOccurs="unbounded" />
                                
</xs:sequence>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TSLongLong">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Signed Long Long.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Integer">
                                
<xs:sequence>
                                        
<xs:element name="ValueRange" type="SLongLongValueRange" minOccurs="0" maxOccurs="unbounded" />
                                
</xs:sequence>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TStream">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Stream.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="StreamContents">
                                
<xs:attribute name="Length" type="mostco:UnsignedWord" />
                                
<xs:attribute name="MinLength" type="mostco:UnsignedWord" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TString">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type String.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="StringBase">
                                
<xs:attribute name="MaxSize" type="mostco:UnsignedLong" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TSWord">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Signed Word.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Integer">
                                
<xs:sequence>
                                        
<xs:element name="ValueRange" type="SWordValueRange" minOccurs="0" maxOccurs="unbounded" />
                                
</xs:sequence>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TUByte">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Unsigned Byte.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Integer">
                                
<xs:sequence>
                                        
<xs:element name="ValueRange" type="UByteValueRange" minOccurs="0" maxOccurs="unbounded" />
                                        
<xs:element name="BitOriented" type="UByteBitOriented" minOccurs="0" maxOccurs="unbounded" />
                                
</xs:sequence>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TULong">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Unsigned Long.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Integer">
                                
<xs:sequence>
                                        
<xs:element name="ValueRange" type="ULongValueRange" minOccurs="0" maxOccurs="unbounded" />
                                        
<xs:element name="BitOriented" type="ULongBitOriented" minOccurs="0" maxOccurs="unbounded" />
                                
</xs:sequence>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TULongLong">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Unsigned Long Long.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Integer">
                                
<xs:sequence>
                                        
<xs:element name="ValueRange" type="ULongLongValueRange" minOccurs="0" maxOccurs="unbounded" />
                                        
<xs:element name="BitOriented" type="ULongLongBitOriented" minOccurs="0" maxOccurs="unbounded" />
                                
</xs:sequence>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="TUWord">
                
<xs:annotation>
                        
<xs:documentation>Representation of the MOST data type Unsigned Word.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Integer">
                                
<xs:sequence>
                                        
<xs:element name="ValueRange" type="UWordValueRange" minOccurs="0" maxOccurs="unbounded" />
                                        
<xs:element name="BitOriented" type="UWordBitOriented" minOccurs="0" maxOccurs="unbounded" />
                                
</xs:sequence>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="UByteBitOriented">
                
<xs:annotation>
                        
<xs:documentation>Bit-oriented representation of the MOST data type Unsigned Byte, providing the corresponding limits.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:restriction base="BitOriented">
                                
<xs:sequence>
                                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                                
</xs:sequence>
                                
<xs:attribute name="Name" type="xs:NCName" use="required" />
                                
<xs:attribute name="BitPos" use="required">
                                        
<xs:simpleType>
                                                
<xs:restriction base="mostco:UnsignedByte">
                                                        
<xs:minInclusive value="0" />
                                                        
<xs:maxInclusive value="7" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                                
<xs:attribute name="BitLength" use="optional" default="1">
                                        
<xs:simpleType>
                                                
<xs:restriction base="mostco:UnsignedByte">
                                                        
<xs:minInclusive value="1" />
                                                        
<xs:maxInclusive value="8" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                        
</xs:restriction>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="UByteValueRange">
                
<xs:annotation>
                        
<xs:documentation>Defines the specific value range limits for the Unsigned Byte integer data type.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="ValueRangeBase">
                                
<xs:attribute name="Min" type="mostco:UnsignedByte" use="required" />
                                
<xs:attribute name="Max" type="mostco:UnsignedByte" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="ULongBitOriented">
                
<xs:annotation>
                        
<xs:documentation>Bit-oriented representation of the MOST data type Unsigned Long, providing the corresponding limits.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:restriction base="BitOriented">
                                
<xs:sequence>
                                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                                
</xs:sequence>
                                
<xs:attribute name="Name" type="xs:NCName" use="required" />
                                
<xs:attribute name="BitPos" use="required">
                                        
<xs:simpleType>
                                                
<xs:restriction base="mostco:UnsignedByte">
                                                        
<xs:minInclusive value="0" />
                                                        
<xs:maxInclusive value="31" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                                
<xs:attribute name="BitLength" use="optional" default="1">
                                        
<xs:simpleType>
                                                
<xs:restriction base="mostco:UnsignedByte">
                                                        
<xs:minInclusive value="1" />
                                                        
<xs:maxInclusive value="32" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                        
</xs:restriction>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="ULongLongBitOriented">
                
<xs:annotation>
                        
<xs:documentation>Bit-oriented representation of the MOST data type Unsigned Long Long, providing the corresponding limits.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:restriction base="BitOriented">
                                
<xs:sequence>
                                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                                
</xs:sequence>
                                
<xs:attribute name="Name" type="xs:NCName" use="required" />
                                
<xs:attribute name="BitPos" use="required">
                                        
<xs:simpleType>
                                                
<xs:restriction base="mostco:UnsignedByte">
                                                        
<xs:minInclusive value="0" />
                                                        
<xs:maxInclusive value="63" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                                
<xs:attribute name="BitLength" use="optional" default="1">
                                        
<xs:simpleType>
                                                
<xs:restriction base="mostco:UnsignedByte">
                                                        
<xs:minInclusive value="1" />
                                                        
<xs:maxInclusive value="64" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                        
</xs:restriction>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="ULongLongValueRange">
                
<xs:annotation>
                        
<xs:documentation>Defines the specific value range limits for the Unsigned Long Long integer data type.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="ValueRangeBase">
                                
<xs:attribute name="Min" type="mostco:UnsignedLongLong" use="required" />
                                
<xs:attribute name="Max" type="mostco:UnsignedLongLong" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="ULongValueRange">
                
<xs:annotation>
                        
<xs:documentation>Defines the specific value range limits for the Unsigned Long integer data type.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="ValueRangeBase">
                                
<xs:attribute name="Min" type="mostco:UnsignedLong" use="required" />
                                
<xs:attribute name="Max" type="mostco:UnsignedLong" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="UWordBitOriented">
                
<xs:annotation>
                        
<xs:documentation>Bit-oriented representation of the MOST data type Unsigned Word, providing the corresponding limits.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:restriction base="BitOriented">
                                
<xs:sequence>
                                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                                
</xs:sequence>
                                
<xs:attribute name="Name" type="xs:NCName" use="required" />
                                
<xs:attribute name="BitPos" use="required">
                                        
<xs:simpleType>
                                                
<xs:restriction base="mostco:UnsignedByte">
                                                        
<xs:minInclusive value="0" />
                                                        
<xs:maxInclusive value="15" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                                
<xs:attribute name="BitLength" use="optional" default="1">
                                        
<xs:simpleType>
                                                
<xs:restriction base="mostco:UnsignedByte">
                                                        
<xs:minInclusive value="1" />
                                                        
<xs:maxInclusive value="16" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                        
</xs:restriction>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="UWordValueRange">
                
<xs:annotation>
                        
<xs:documentation>Defines the specific value range limits for the Unsigned Word integer data type.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="ValueRangeBase">
                                
<xs:attribute name="Min" type="mostco:UnsignedWord" use="required" />
                                
<xs:attribute name="Max" type="mostco:UnsignedWord" use="required" />
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:complexType name="ValueRangeBase" abstract="true">
                
<xs:annotation>
                        
<xs:documentation>Serves as basis for all value range definitions for numeric MOST data types.</xs:documentation>
                
</xs:annotation>
                
<xs:sequence>
                        
<xs:element name="Description" type="xs:string" minOccurs="0" />
                
</xs:sequence>
                
<xs:attribute name="Name" type="xs:NCName" use="optional" />
        
</xs:complexType>
        
<xs:complexType name="Version">
                
<xs:annotation>
                        
<xs:documentation>Basis for version and modification information.</xs:documentation>
                
</xs:annotation>
                
<xs:sequence>
                        
<xs:element name="Author" type="xs:string" minOccurs="0" />
                        
<xs:element name="Company" type="xs:string" minOccurs="0" />
                        
<xs:element name="Modification" type="Modification" minOccurs="0" maxOccurs="unbounded" />
                
</xs:sequence>
                
<xs:attribute name="Release" type="xs:string" use="required" />
                
<xs:attribute name="Date" type="xs:date" use="required" />
                
<xs:attribute name="Time" type="xs:time" use="optional" />
        
</xs:complexType>
        
<xs:complexType name="VersionEx">
                
<xs:annotation>
                        
<xs:documentation>Used for version information for FBlocks and functions.</xs:documentation>
                
</xs:annotation>
                
<xs:complexContent>
                        
<xs:extension base="Version">
                                
<xs:attribute name="Access" use="optional" default="public">
                                        
<xs:simpleType>
                                                
<xs:restriction base="xs:string">
                                                        
<xs:enumeration value="public" />
                                                        
<xs:enumeration value="private" />
                                                        
<xs:enumeration value="preliminary" />
                                                
</xs:restriction>
                                        
</xs:simpleType>
                                
</xs:attribute>
                        
</xs:extension>
                
</xs:complexContent>
        
</xs:complexType>
        
<xs:simpleType name="Double">
                
<xs:annotation>
                        
<xs:documentation>Used for checking range limits when the MOST data type Double is used.</xs:documentation>
                
</xs:annotation>
                
<xs:restriction base="xs:double" />
        
</xs:simpleType>
        
<xs:simpleType name="Float">
                
<xs:annotation>
                        
<xs:documentation>Used for checking range limits when the MOST data type Float is used.</xs:documentation>
                
</xs:annotation>
                
<xs:restriction base="xs:float" />
        
</xs:simpleType>
        
<xs:simpleType name="FunctionId">
                
<xs:annotation>
                        
<xs:documentation>Used to provided the range limits for MOST function IDs (FktIDs).</xs:documentation>
                
</xs:annotation>
                
<xs:restriction base="mostco:UnsignedWord">
                        
<xs:minInclusive value="0" />
                        
<xs:maxInclusive value="4095" />
                
</xs:restriction>
        
</xs:simpleType>
        
<xs:simpleType name="MethodClass">
                
<xs:annotation>
                        
<xs:documentation>Defines the function classes for methods.</xs:documentation>
                
</xs:annotation>
                
<xs:restriction base="xs:string">
                        
<xs:enumeration value="Trigger Method" />
                        
<xs:enumeration value="Sequence Method" />
                        
<xs:enumeration value="Unclassified Method" />
                
</xs:restriction>
        
</xs:simpleType>
        
<xs:simpleType name="PropertyClass">
                
<xs:annotation>
                        
<xs:documentation>Defines the function classes for properties.</xs:documentation>
                
</xs:annotation>
                
<xs:restriction base="xs:string">
                        
<xs:enumeration value="Switch" />
                        
<xs:enumeration value="Number" />
                        
<xs:enumeration value="Text" />
                        
<xs:enumeration value="Enumeration" />
                        
<xs:enumeration value="BoolField" />
                        
<xs:enumeration value="BitSet" />
                        
<xs:enumeration value="Container" />
                        
<xs:enumeration value="Record" />
                        
<xs:enumeration value="Array" />
                        
<xs:enumeration value="DynamicArray" />
                        
<xs:enumeration value="LongArray" />
                        
<xs:enumeration value="Map" />
                        
<xs:enumeration value="Collection" />
                        
<xs:enumeration value="Sequence Property" />
                        
<xs:enumeration value="Unclassified Property" />
                
</xs:restriction>
        
</xs:simpleType>
        
<xs:simpleType name="SignedByte">
                
<xs:annotation>
                        
<xs:documentation>Used for checking range limits when the MOST data type Signed Byte is used.</xs:documentation>
                
</xs:annotation>
                
<xs:restriction base="xs:byte" />
        
</xs:simpleType>
        
<xs:simpleType name="SignedLong">
                
<xs:annotation>
                        
<xs:documentation>Used for checking range limits when the MOST data type Signed Long is used.</xs:documentation>
                
</xs:annotation>
                
<xs:restriction base="xs:long">
                        
<xs:minInclusive value="-2147483648" />
                        
<xs:maxInclusive value="2147483647" />
                
</xs:restriction>
        
</xs:simpleType>
        
<xs:simpleType name="SignedLongLong">
                
<xs:annotation>
                        
<xs:documentation>Used for checking range limits when the MOST data type Signed Long Long is used.</xs:documentation>
                
</xs:annotation>
                
<xs:restriction base="xs:long">
                        
<xs:minInclusive value="-9223372036854775808" />
                        
<xs:maxInclusive value="9223372036854775807" />
                
</xs:restriction>
        
</xs:simpleType>
        
<xs:simpleType name="SignedWord">
                
<xs:annotation>
                        
<xs:documentation>Used for checking range limits when the MOST data type Signed Word is used.</xs:documentation>
                
</xs:annotation>
                
<xs:restriction base="xs:short" />
        
</xs:simpleType>
        
<xs:simpleType name="UnsignedByte">
                
<xs:annotation>
                        
<xs:documentation>Used for checking range limits when the MOST data type Unsigned Byte is used.</xs:documentation>
                
</xs:annotation>
                
<xs:restriction base="xs:unsignedByte" />
        
</xs:simpleType>
        
<xs:simpleType name="UnsignedLong">
                
<xs:annotation>
                        
<xs:documentation>Used for checking range limits when the MOST data type Unsigned Long is used.</xs:documentation>
                
</xs:annotation>
                
<xs:restriction base="xs:unsignedLong">
                        
<xs:minInclusive value="0" />
                        
<xs:maxInclusive value="4294967295" />
                
</xs:restriction>
        
</xs:simpleType>
        
<xs:simpleType name="UnsignedLongLong">
                
<xs:annotation>
                        
<xs:documentation>Used for checking range limits when the MOST data type Unsigned Long Long is used.</xs:documentation>
                
</xs:annotation>
                
<xs:restriction base="xs:unsignedLong">
                        
<xs:minInclusive value="0" />
                        
<xs:maxInclusive value="18446744073709551615" />
                
</xs:restriction>
        
</xs:simpleType>
        
<xs:simpleType name="UnsignedWord">
                
<xs:annotation>
                        
<xs:documentation>Used for checking range limits when the MOST data type Unsigned Word is used.</xs:documentation>
                
</xs:annotation>
                
<xs:restriction base="xs:unsignedShort" />
        
</xs:simpleType>
</xs:schema>