XTCE 1.2 RTF Avatar
  1. OMG Issue

XTCE12 — More documentation updates from BitBucket subcommittee effort

  • Key: XTCE12-512
  • Status: closed  
  • Source: Boeing ( Mr. David Overeem)
  • Summary:

    Several issues have noted that the XTCE 1.0 and 1.1 annotations have been lacking. Many of the updates were performed in conjunction with other issues that were more topic oriented to a particular area. In this, many elements/attributes/types did not require attention and as a result, did not get an opportunity to get annotation updates. In addition, some areas that were touched were done prior to reconciling the annotation updates.

  • Reported: XTCE 1.1 — Tue, 30 Jan 2018 22:34 GMT
  • Disposition: Resolved — XTCE 1.2
  • Disposition Summary:

    Propose another set of annotation updates (part 2.1)

    This resolution includes the second set of annotation updates that covers most of the elements/attributes in the next few levels of depth in the XML. It is not proposed as a comprehensive and complete set, but appears to be ready for use/evaluation/voting.

    The list below is the typical method of showing the before and after of the XSD by type definition in the XSD. Each type is separated by a textual divider to make it easier to review.

    ================================================================================
    ParameterSetType contents
    ================================================================================

    <complexType name="ParameterSetType">
    <annotation>
    <documentation xml:lang="en">Used by both the TelemetryMetaData and the CommandMetaData components each may be built independently.</documentation>
    </annotation>
    <choice maxOccurs="unbounded">
    <element name="Parameter" type="xtce:ParameterType">
    <annotation>
    <appinfo>Need to ensure that the named types actually exist</appinfo>
    </annotation>
    </element>
    <element name="ParameterRef" type="xtce:ParameterRefType">
    <annotation>
    <documentation xml:lang="en">Used to include a Parameter defined in another sub-system in this sub-system.</documentation>
    </annotation>
    </element>
    </choice>
    </complexType>

    <complexType name="ParameterSetType">
    <annotation>
    <documentation xml:lang="en">Describe an unordered collection of parameters where duplicates defined by the Parameter name attribute are invalid. The ParameterSet exists in both the TelemetryMetaData and the CommandMetaData element so that each may be built independently but from a single namespace. See TelemetryMetaDataType and CommandMetaDataType.</documentation>
    </annotation>
    <choice maxOccurs="unbounded">
    <element name="Parameter" type="xtce:ParameterType">
    <annotation>
    <documentation xml:lang="en">Defines a named and typed Parameter.</documentation>
    <appinfo>Need to ensure that the named types actually exist</appinfo>
    </annotation>
    </element>
    <element name="ParameterRef" type="xtce:ParameterRefType">
    <annotation>
    <documentation xml:lang="en">Used to include a Parameter defined in another sub-system in this sub-system.</documentation>
    </annotation>
    </element>
    </choice>
    </complexType>

    ================================================================================
    MetaCommandSetType contents
    ================================================================================

    <complexType name="MetaCommandSetType">
    <annotation>
    <documentation xml:lang="en">A set of Command Definitions</documentation>
    </annotation>
    <choice maxOccurs="unbounded">
    <element name="MetaCommand" type="xtce:MetaCommandType">
    <annotation>
    <documentation xml:lang="en">All commands to be sent on this mission are listed here. In addition this area has verification and validation information</documentation>
    </annotation>
    <key name="ArgumentNameKey">
    <selector xpath="xtce:ArgumentList/*"/>
    <field xpath="@name"/>
    </key>
    </element>
    <element name="MetaCommandRef" type="xtce:NameReferenceType">
    <annotation>
    <documentation xml:lang="en">Used to include a MetaCommand defined in another sub-system in this sub-system.</documentation>
    </annotation>
    </element>
    <element name="BlockMetaCommand" type="xtce:BlockMetaCommandType"/>
    </choice>
    </complexType>

    <complexType name="MetaCommandSetType">
    <annotation>
    <documentation xml:lang="en">Describes an unordered collection of command definitions. Duplicates are invalid based on the name attribute of MetaCommand and BlockMetaCommand. See MetaCommandType and BlockMetaCommandType.</documentation>
    </annotation>
    <choice maxOccurs="unbounded">
    <element name="MetaCommand" type="xtce:MetaCommandType">
    <annotation>
    <documentation xml:lang="en">All atomic commands to be sent on this mission are listed here. In addition this area has verification and validation information.</documentation>
    </annotation>
    <key name="ArgumentNameKey">
    <selector xpath="xtce:ArgumentList/*"/>
    <field xpath="@name"/>
    </key>
    </element>
    <element name="MetaCommandRef" type="xtce:NameReferenceType">
    <annotation>
    <documentation xml:lang="en">Used to include a MetaCommand defined in another sub-system in this sub-system.</documentation>
    </annotation>
    </element>
    <element name="BlockMetaCommand" type="xtce:BlockMetaCommandType">
    <annotation>
    <documentation xml:lang="en">Used to define a command that includes more than one atomic MetaCommand definition.</documentation>
    </annotation>
    </element>
    </choice>
    </complexType>

    ================================================================================
    SequenceContainerType contents - did not do anything with idlePattern - was not sure about that
    ================================================================================

    <complexType name="SequenceContainerType">
    <annotation>
    <documentation xml:lang="en">A list of raw parameters, parameter segments, stream segments, containers, or container segments. Sequence containers may inherit from other sequence containers; when they do, the sequence in the parent SequenceContainer is 'inherited' and if the location of entries in the child sequence is not specified, it is assumed to start where the parent sequence ended. Parent sequence containers may be marked as "abstract". The idle pattern is part of any unallocated space in the Container.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:ContainerType">
    <sequence>
    <element name="EntryList" type="xtce:EntryListType"/>
    <element name="BaseContainer" type="xtce:BaseContainerType" minOccurs="0"/>
    </sequence>
    <attribute name="abstract" type="boolean" default="false"/>
    <attribute name="idlePattern" type="xtce:FixedIntegerValueType" default="0x0"/>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="SequenceContainerType">
    <annotation>
    <documentation xml:lang="en">Describes the binary layout/packing of data and also related properties, including an entry list of parameters, parameter segments, array parameters, stream segments, containers, and container segments. Sequence containers may extend other sequence containers (see BaseContainerType). The parent container’s entries are placed before the entries in the child container forming one entry list. An inheritance chain may be formed using this mechanism, but only one entry list is being created. Sequence containers may be marked as "abstract", when this occurs an instance of it cannot itself be created. The idle pattern is part of any unallocated space in the container. See EntryListType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:ContainerType">
    <sequence>
    <element name="EntryList" type="xtce:EntryListType">
    <annotation>
    <documentation xml:lang="en">List of item entries to pack/encode into this container definition.</documentation>
    </annotation>
    </element>
    <element name="BaseContainer" type="xtce:BaseContainerType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Optional inheritance for this container from another named container.</documentation>
    </annotation>
    </element>
    </sequence>
    <attribute name="abstract" type="boolean" default="false">
    <annotation>
    <documentation xml:lang="en">Abstract container definitions that are not instantiated, rather only used as bases to inherit from to create specialized container definitions.</documentation>
    </annotation>
    </attribute>
    <attribute name="idlePattern" type="xtce:FixedIntegerValueType" default="0x0">
    <annotation>
    <documentation xml:lang="en">The idle pattern is part of any unallocated space in the container. This is uncommon.</documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    CommandContainerType contents
    ================================================================================

    <complexType name="CommandContainerType" mixed="false">
    <annotation>
    <documentation xml:lang="en">The Key = Command Op Code. Each MetaCommand may have one CommandContainer. The sequence may now contain command fields</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:ContainerType">
    <sequence>
    <element name="EntryList" type="xtce:CommandContainerEntryListType"/>
    <element name="BaseContainer" type="xtce:BaseContainerType" minOccurs="0"/>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="CommandContainerType" mixed="false">
    <annotation>
    <documentation xml:lang="en">Describe a MetaCommand command container. The command container may contain arguments, parameters, other basic containers, and fixed values. Arguments are supplied by the user of a commanding application; parameters are supplied by the controlling system. Parameters and arguments map source data types to encodings. See MetaCommandType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:ContainerType">
    <sequence>
    <element name="EntryList" type="xtce:CommandContainerEntryListType">
    <annotation>
    <documentation xml:lang="en">List of item entries to pack/encode into this container definition.</documentation>
    </annotation>
    </element>
    <element name="BaseContainer" type="xtce:BaseContainerType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">When a MetaCommand inherits/extends another MetaCommand, this references the CommandContainer from the BaseMetaCommand.</documentation>
    </annotation>
    </element>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    BaseContainerType contents
    ================================================================================

    <complexType name="BaseContainerType">
    <sequence>
    <element name="RestrictionCriteria" type="xtce:RestrictionCriteriaType" minOccurs="0"/>
    </sequence>
    <attribute name="containerRef" type="xtce:NameReferenceType" use="required"/>
    </complexType>

    <complexType name="BaseContainerType">
    <annotation>
    <documentation xml:lang="en">Describe a child/parent container inheritance relationship. Describe constraints with RestrictionCriteria, conditions that must be true for this container to be an extension of the parent container. A constraint can be used to convey the identifying features of the telemetry format such as the CCSDS application id or minor-frame id. See RestrictionCriteriaType and SequenceContainerType.</documentation>
    </annotation>
    <sequence>
    <element name="RestrictionCriteria" type="xtce:RestrictionCriteriaType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Contains the conditions that must evaluate to true in order for this container to be an extension of the parent container.</documentation>
    </annotation>
    </element>
    </sequence>
    <attribute name="containerRef" type="xtce:NameReferenceType" use="required">
    <annotation>
    <documentation xml:lang="en">Reference to the container that this container extends.</documentation>
    </annotation>
    </attribute>
    </complexType>

    ================================================================================
    LocationInContainerInBitsType contents
    ================================================================================

    <complexType name="LocationInContainerInBitsType">
    <annotation>
    <documentation xml:lang="en">Addresses are relative to the container the entry is in. Zero is always the start of the container. If the container is an entry in another, the referring container's entry address is added to the one being referred to the compute addresses. For container inheritance, the root container starts at address zero.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:IntegerValueType">
    <attribute name="referenceLocation" type="xtce:ReferenceLocationType" default="previousEntry"/>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="LocationInContainerInBitsType">
    <annotation>
    <documentation xml:lang="en">Describe the absolute or relative bit location of an entry in a container. The "referenceLocation" attribute specifies the starting bit anchor. If no referenceLocation value is given, the entry is assumed to begin at the first bit position after the previous entry. Each container starts at bit 0, thus "containerStart" is an offset from 0. Negative container start bits are before the container and are implementation dependent – these should be flagged as likely errors. "containerEnd" is given as a positive offset from the end of the container, thus a container end of 0 is exactly at the end of the container. Negative container end addresses are after the container and are implementation dependent – these should be flagged as likely errors. Positive "previouEntry" values are offsets from the previous entry – zero (0) is the default which means it follows contiguously from the last occupied bit of the previous entry. A value of one means it is offset 1-bit from the previous entry, and a value of negative 1 (-1) means it overlaps the previous entry by one bit, and so forth. The "nextEntry" attribute value is proposed for deprecation and should be avoided. See SequenceEntryType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:IntegerValueType">
    <attribute name="referenceLocation" type="xtce:ReferenceLocationType" default="previousEntry">
    <annotation>
    <documentation xml:lang="en">Defines the relative reference used to interpret the start bit position. The default is 0 bits from the end of the previousEntry, which makes the entry contiguous.</documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    UnitType contents
    ================================================================================

    <complexType name="UnitType" mixed="true">
    <annotation>
    <documentation>Describe the exponent, factor, form, and description for a unit. The unit itself is in element Unit in UnitSet. See UnitSetType. The attributes are optional because different programs use this element in different ways, depending on vendor support.</documentation>
    </annotation>
    <attribute name="power" type="double" use="optional" default="1"/>
    <attribute name="factor" type="string" use="optional" default="1"/>
    <attribute name="description" type="string" use="optional">
    <annotation>
    <documentation>A description of the unit, which may be for expanded human readability or for specification of the nature/property of the unit. For example, meters per second squared is of a nature/property of acceleration.</documentation>
    </annotation>
    </attribute>
    <attribute name="form" type="xtce:UnitFormType" use="optional" default="calibrated"/>
    </complexType>

    <complexType name="UnitType" mixed="true">
    <annotation>
    <documentation xml:lang="en">Describe the exponent, factor, form, and description for a unit. The unit itself is in element Unit in UnitSet. See UnitSetType. The attributes are optional because different programs use this element in different ways, depending on vendor support.</documentation>
    </annotation>
    <attribute name="power" type="double" use="optional" default="1">
    <annotation>
    <documentation xml:lang="en">Optional attribute used in conjunction with the "factor" attribute where some programs choose to specify the unit definition with these machine processable algebraic features. For example, a unit text of "meters" may have a "power" attribute of 2, resulting "meters squared" as the actual unit. This is not commonly used. The most common method for "meters squared" is to use the text content of the Unit element in a form like "m^2".</documentation>
    </annotation>
    </attribute>
    <attribute name="factor" type="string" use="optional" default="1">
    <annotation>
    <documentation xml:lang="en">Optional attribute used in conjunction with the "power" attribute where some programs choose to specify the unit definition with these machine processable algebraic features. For example, a unit text of "meters" may have a "factor" attribute of 2, resulting "2 times meters" as the actual unit. This is not commonly used. The most common method for "2 times meters" is to use the text content of the Unit element in a form like "2*m".</documentation>
    </annotation>
    </attribute>
    <attribute name="description" type="xtce:ShortDescriptionType" use="optional">
    <annotation>
    <documentation xml:lang="en">A description of the unit, which may be for expanded human readability or for specification of the nature/property of the unit. For example, meters per second squared is of a nature/property of acceleration.</documentation>
    </annotation>
    </attribute>
    <attribute name="form" type="xtce:UnitFormType" use="optional" default="calibrated">
    <annotation>
    <documentation xml:lang="en">The default value "calibrated" is most common practice to specify units at the engineering/calibrated value, it is possible to specify an additional Unit element for the raw/uncalibrated value.</documentation>
    </annotation>
    </attribute>
    </complexType>

    ================================================================================
    UnitSetType contents
    ================================================================================

    <complexType name="UnitSetType">
    <sequence>
    <element name="Unit" type="xtce:UnitType" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    </complexType>

    <complexType name="UnitSetType">
    <annotation>
    <documentation xml:lang="en">Describe an ordered collection of units that form a unit-expression. Units may be described for both calibrated/engineering values and also potentially uncalibrated/raw values. See UnitType.</documentation>
    </annotation>
    <sequence>
    <element name="Unit" type="xtce:UnitType" minOccurs="0" maxOccurs="unbounded">
    <annotation>
    <documentation xml:lang="en">Describe the exponent, factor, form, and description for a unit. The attributes are optional because different programs use this element in different ways, depending on vendor support.</documentation>
    </annotation>
    </element>
    </sequence>
    </complexType>

    ================================================================================
    BaseMetaCommandType contents
    ================================================================================

    <complexType name="BaseMetaCommandType">
    <annotation>
    <documentation xml:lang="en">The MetaCommand is derived from this Base. Arguments of the base MetaCommand are further specified.</documentation>
    </annotation>
    <sequence>
    <element name="ArgumentAssignmentList" type="xtce:ArgumentAssignmentListType" minOccurs="0"/>
    </sequence>
    <attribute name="metaCommandRef" type="xtce:NameReferenceType" use="required"/>
    </complexType>

    <complexType name="BaseMetaCommandType">
    <annotation>
    <documentation xml:lang="en">When specified, a BaseMetaCommand element identifies that this MetaCommand inherits (extends) another MetaCommand. It’s required ArgumentAssignmentList narrows or this command from the parent. This is typically used when specializing a generic MetaCommand to a specific MetaCommand. See MetaCommandType.</documentation>
    </annotation>
    <sequence>
    <element name="ArgumentAssignmentList" type="xtce:ArgumentAssignmentListType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Argument Assignments specialize a MetaCommand or BlockMetaCommand when inheriting from another MetaCommand. General argument values can be restricted to specific values to further specialize the MetaCommand.</documentation>
    </annotation>
    </element>
    </sequence>
    <attribute name="metaCommandRef" type="xtce:NameReferenceType" use="required">
    <annotation>
    <documentation xml:lang="en">Reference to the MetaCommand definition that this MetaCommand extends.</documentation>
    </annotation>
    </attribute>
    </complexType>

    ================================================================================
    MetaCommandType contents
    ================================================================================

    <complexType name="MetaCommandType" mixed="false">
    <annotation>
    <documentation xml:lang="en">A type definition used as the base type for a CommandDefinition</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:NameDescriptionType">
    <sequence>
    <element name="BaseMetaCommand" type="xtce:BaseMetaCommandType" minOccurs="0"/>
    <element name="SystemName" type="string" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Optional. Normally used when the database is built in a flat, non-hierarchical format</documentation>
    </annotation>
    </element>
    <element name="ArgumentList" type="xtce:ArgumentListType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Many commands have one or more options. These are called command arguments. Command arguments may be of any of the standard data types. MetaCommand arguments are local to the MetaCommand.</documentation>
    </annotation>
    </element>
    <element name="CommandContainer" type="xtce:CommandContainerType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Tells how to package this command</documentation>
    </annotation>
    </element>
    <element name="TransmissionConstraintList" type="xtce:TransmissionConstraintListType" minOccurs="0"/>
    <element name="DefaultSignificance" type="xtce:SignificanceType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Some Command and Control Systems may require special user access or confirmations before transmitting commands with certain levels. The level is inherited from the Base MetaCommand.</documentation>
    </annotation>
    </element>
    <element name="ContextSignificanceList" type="xtce:ContextSignificanceListType" minOccurs="0"/>
    <element name="Interlock" type="xtce:InterlockType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">An Interlock is a type of Constraint, but not on Command instances of this MetaCommand; Interlocks apply instead to the next command. An Interlock will block successive commands until this command has reached a certain stage (through verifications). Interlocks are scoped to a SpaceSystem basis.</documentation>
    </annotation>
    </element>
    <element name="VerifierSet" type="xtce:VerifierSetType" minOccurs="0"/>
    <element name="ParameterToSetList" type="xtce:ParameterToSetListType" minOccurs="0"/>
    <element name="ParametersToSuspendAlarmsOnSet" type="xtce:ParametersToSuspendAlarmsOnSetType" minOccurs="0"/>
    </sequence>
    <attribute name="abstract" type="boolean" default="false"/>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="MetaCommandType" mixed="false">
    <annotation>
    <documentation xml:lang="en">Describe a command which consists of an abstract portion (MetaCommand) and an optional packaging portion (MetaCommand CommandContainer). An argument list is provided. MetaCommand may extend other MetaCommands and their CommandContainer may extend other CommandContainer or SequenceContainers. A MetaCommand’s CommandContainer is private except as referred to in BaseMetaCommand (they are not visible to other containers and cannot be used in an entry list). MetaCommands may also define various other behavioral aspects of a command such as command verifiers. See CommandContainerType, ArgumentListType, BaseMetaCommandType and BaseContainerType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:NameDescriptionType">
    <sequence>
    <element name="BaseMetaCommand" type="xtce:BaseMetaCommandType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Optional inheritance for this MetaCommand from another named MetaCommand.</documentation>
    </annotation>
    </element>
    <element name="SystemName" type="string" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Optional. Normally used when the database is built in a flat, non-hierarchical format. May be used by implementations to group MetaCommands together.</documentation>
    </annotation>
    </element>
    <element name="ArgumentList" type="xtce:ArgumentListType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Many commands have one or more options. These are called command arguments. Command arguments may be of any of the standard data types. MetaCommand arguments are local to the MetaCommand, but may be referenced in inherited MetaCommand definitions, generally to apply Argument Assignments to the values.</documentation>
    </annotation>
    </element>
    <element name="CommandContainer" type="xtce:CommandContainerType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Tells how to package/encode this command definition in binary form.</documentation>
    </annotation>
    </element>
    <element name="TransmissionConstraintList" type="xtce:TransmissionConstraintListType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">List of constraints to check when sending this command.</documentation>
    </annotation>
    </element>
    <element name="DefaultSignificance" type="xtce:SignificanceType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Some Command and Control Systems may require special user access or confirmations before transmitting commands with certain levels. The level is inherited from the Base MetaCommand.</documentation>
    </annotation>
    </element>
    <element name="ContextSignificanceList" type="xtce:ContextSignificanceListType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Some Command and Control Systems may require special user access or confirmations before transmitting commands with certain levels. In addition to the default, Significance can be defined in contexts where it changes based on the values of parameters.</documentation>
    </annotation>
    </element>
    <element name="Interlock" type="xtce:InterlockType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">An Interlock is a type of Constraint, but not on Command instances of this MetaCommand; Interlocks apply instead to the next command. An Interlock will block successive commands until this command has reached a certain stage (through verifications). Interlocks are scoped to a SpaceSystem basis.</documentation>
    </annotation>
    </element>
    <element name="VerifierSet" type="xtce:VerifierSetType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Functional list of conditions/changes to check after sending this command to determine success or failure.</documentation>
    </annotation>
    </element>
    <element name="ParameterToSetList" type="xtce:ParameterToSetListType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">List of parameters to set new values upon completion of sending this command.</documentation>
    </annotation>
    </element>
    <element name="ParametersToSuspendAlarmsOnSet" type="xtce:ParametersToSuspendAlarmsOnSetType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">List of parameters to suspend alarm processing/detection upon completion of sending this command.</documentation>
    </annotation>
    </element>
    </sequence>
    <attribute name="abstract" type="boolean" default="false">
    <annotation>
    <documentation xml:lang="en">Abstract MetaCommand definitions that are not instantiated, rather only used as bases to inherit from to create specialized command definitions.</documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    BlockMetaCommandType contents
    ================================================================================

    <complexType name="BlockMetaCommandType">
    <annotation>
    <documentation xml:lang="en">BlockMetaCommands are simply a list of individual MetaCommands that can be packaged up in a single BlockMetaCommand.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:NameDescriptionType">
    <sequence>
    <element name="MetaCommandStepList" type="xtce:MetaCommandStepListType"/>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="BlockMetaCommandType">
    <annotation>
    <documentation xml:lang="en">Describe an ordered grouping of MetaCommands into a list, duplicates are valid. The block contains argument values fully specified. See MetaCommandStepListType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:NameDescriptionType">
    <sequence>
    <element name="MetaCommandStepList" type="xtce:MetaCommandStepListType">
    <annotation>
    <documentation xml:lang="en">List of the MetaCommands to include in this BlockMetaCommand.</documentation>
    </annotation>
    </element>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    MetaCommandStepListType contents
    ================================================================================

    <complexType name="MetaCommandStepListType">
    <sequence>
    <element name="MetaCommandStep" type="xtce:MetaCommandStepType" maxOccurs="unbounded"/>
    </sequence>
    </complexType>

    <complexType name="MetaCommandStepListType">
    <annotation>
    <documentation xml:lang="en">Describe the list of MetaCommand definitions that form the block command. Contains an ordered list of MetaCommandSteps where each step is a MetaCommand with associated arguments, duplicates are valid. See BlockMetaCommandType.</documentation>
    </annotation>
    <sequence>
    <element name="MetaCommandStep" type="xtce:MetaCommandStepType" maxOccurs="unbounded">
    <annotation>
    <documentation xml:lang="en">A MetaCommand with specific specified argument values to include in the BlockMetaCommand.</documentation>
    </annotation>
    </element>
    </sequence>
    </complexType>

    ================================================================================
    CommandVerifierType contents
    ================================================================================

    <complexType name="CommandVerifierType" abstract="true">
    <annotation>
    <documentation xml:lang="en">A command verifier is used to check that the command has been successfully executed. Command Verifiers may be either a Custom Algorithm or a Boolean Check or the presence of a Container for a relative change in the value of a Parameter. The CheckWindow is a time period where the verification must test true to pass.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:OptionalNameDescriptionType">
    <sequence>
    <choice>
    <element name="ComparisonList" type="xtce:ComparisonListType"/>
    <element name="ContainerRef" type="xtce:ContainerRefType">
    <annotation>
    <documentation xml:lang="en">When verification is a new instance the referenced container. For example, sending a command to download memory then receiving a packet with the memory download would be verified upon receipt of the packet</documentation>
    </annotation>
    </element>
    <element name="ParameterValueChange" type="xtce:ParameterValueChangeType"/>
    <element name="CustomAlgorithm" type="xtce:InputAlgorithmType"/>
    <element name="BooleanExpression" type="xtce:BooleanExpressionType"/>
    <element name="Comparison" type="xtce:ComparisonType"/>
    </choice>
    <choice>
    <element name="CheckWindow" type="xtce:CheckWindowType"/>
    <element name="CheckWindowAlgorithms" type="xtce:CheckWindowAlgorithmsType"/>
    </choice>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="CommandVerifierType" abstract="true">
    <annotation>
    <documentation xml:lang="en">A command verifier is used to check that the command has been successfully executed. Command Verifiers may be either a Custom Algorithm or a Boolean Check or the presence of a Container for a relative change in the value of a Parameter. The CheckWindow is a time period where the verification must test true to pass.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:OptionalNameDescriptionType">
    <sequence>
    <choice>
    <element name="ComparisonList" type="xtce:ComparisonListType">
    <annotation>
    <documentation xml:lang="en">Verification is a list of comparisons.</documentation>
    </annotation>
    </element>
    <element name="ContainerRef" type="xtce:ContainerRefType">
    <annotation>
    <documentation xml:lang="en">Verification is a new instance of the referenced container. For example, sending a command to download memory then receiving a packet with the memory download would be verified upon receipt of the packet.</documentation>
    </annotation>
    </element>
    <element name="ParameterValueChange" type="xtce:ParameterValueChangeType">
    <annotation>
    <documentation xml:lang="en">Verification is a telemetry parameter value change on the ground. For example, a command counter.</documentation>
    </annotation>
    </element>
    <element name="CustomAlgorithm" type="xtce:InputAlgorithmType">
    <annotation>
    <documentation xml:lang="en">Verification is outside the scope of regular command and telemetry processing.</documentation>
    </annotation>
    </element>
    <element name="BooleanExpression" type="xtce:BooleanExpressionType">
    <annotation>
    <documentation xml:lang="en">Verification is a boolean expression of conditions.</documentation>
    </annotation>
    </element>
    <element name="Comparison" type="xtce:ComparisonType">
    <annotation>
    <documentation xml:lang="en">Verification is a single comparison.</documentation>
    </annotation>
    </element>
    </choice>
    <choice>
    <element name="CheckWindow" type="xtce:CheckWindowType">
    <annotation>
    <documentation xml:lang="en">Define a time window for checking for verification.</documentation>
    </annotation>
    </element>
    <element name="CheckWindowAlgorithms" type="xtce:CheckWindowAlgorithmsType">
    <annotation>
    <documentation xml:lang="en">Define a time window algorithmically for verification.</documentation>
    </annotation>
    </element>
    </choice>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    IntegerDataEncodingType contents
    ================================================================================

    <complexType name="IntegerDataEncodingType">
    <annotation>
    <documentation xml:lang="en">For all major encodings of integer data</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:DataEncodingType">
    <sequence>
    <element name="DefaultCalibrator" type="xtce:CalibratorType" minOccurs="0"/>
    <element name="ContextCalibratorList" type="xtce:ContextCalibratorListType" minOccurs="0"/>
    </sequence>
    <attribute name="encoding" type="xtce:IntegerEncodingType" default="unsigned"/>
    <attribute name="sizeInBits" type="xtce:PositiveLongType" default="8"/>
    <attribute name="changeThreshold" type="xtce:NonNegativeLongType" use="optional">
    <annotation>
    <documentation>A changeThreshold may optionally be specified to inform systems of
    the minimum change in value that is significant. This is used by some systems to
    limit the telemetry processing and/or recording requirements, such as for an
    analog-to-digital converter that dithers in the least significant bit. If the value
    is unspecified or zero, any change is significant.
    </documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="IntegerDataEncodingType">
    <annotation>
    <documentation xml:lang="en">For all major encodings of integer data</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:DataEncodingType">
    <sequence>
    <element name="DefaultCalibrator" type="xtce:CalibratorType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Calibrator to be applied to the raw uncalibrated value to arrive at the engineering/calibrated value when no Context Calibrators are provided or evaluate to true, based on their MatchCriteria.</documentation>
    </annotation>
    </element>
    <element name="ContextCalibratorList" type="xtce:ContextCalibratorListType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Calibrator to be applied to the raw uncalibrated value to arrive at the engineering/calibrated value when a MatchCriteria evaluates to true.</documentation>
    </annotation>
    </element>
    </sequence>
    <attribute name="encoding" type="xtce:IntegerEncodingType" default="unsigned">
    <annotation>
    <documentation xml:lang="en">Specifies integer numeric value to raw encoding method, with the default being "unsigned".</documentation>
    </annotation>
    </attribute>
    <attribute name="sizeInBits" type="xtce:PositiveLongType" default="8">
    <annotation>
    <documentation xml:lang="en">Number of bits to use for the raw encoding, with 8 being the default.</documentation>
    </annotation>
    </attribute>
    <attribute name="changeThreshold" type="xtce:NonNegativeLongType" use="optional">
    <annotation>
    <documentation xml:lang="en">A changeThreshold may optionally be specified to inform systems of the minimum change in value that is significant. This is used by some systems to limit the telemetry processing and/or recording requirements, such as for an analog-to-digital converter that dithers in the least significant bit. If the value is unspecified or zero, any change is significant.</documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    FloatDataEncodingType contents
    ================================================================================

    <complexType name="FloatDataEncodingType">
    <annotation>
    <documentation xml:lang="en">For common encodings of floating point data</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:DataEncodingType">
    <sequence>
    <element name="DefaultCalibrator" type="xtce:CalibratorType" minOccurs="0"/>
    <element name="ContextCalibratorList" type="xtce:ContextCalibratorListType" minOccurs="0"/>
    </sequence>
    <attribute name="encoding" type="xtce:FloatEncodingType" default="IEEE754_1985"/>
    <attribute name="sizeInBits" type="xtce:FloatEncodingSizeInBitsType" default="32"/>
    <attribute name="changeThreshold" type="double" use="optional">
    <annotation>
    <documentation>A changeThreshold may optionally be specified to inform systems of the minimum change in value that is significant. This is used by some systems to limit the telemetry processing and/or recording requirements. If the value is unspecified or zero, any change is significant.
    </documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="FloatDataEncodingType">
    <annotation>
    <documentation xml:lang="en">For common encodings of floating point data</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:DataEncodingType">
    <sequence>
    <element name="DefaultCalibrator" type="xtce:CalibratorType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Calibrator to be applied to the raw uncalibrated value to arrive at the engineering/calibrated value when no Context Calibrators are provided or evaluate to true, based on their MatchCriteria.</documentation>
    </annotation>
    </element>
    <element name="ContextCalibratorList" type="xtce:ContextCalibratorListType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Calibrator to be applied to the raw uncalibrated value to arrive at the engineering/calibrated value when a MatchCriteria evaluates to true.</documentation>
    </annotation>
    </element>
    </sequence>
    <attribute name="encoding" type="xtce:FloatEncodingType" default="IEEE754_1985">
    <annotation>
    <documentation xml:lang="en">Specifies real/decimal numeric value to raw encoding method, with the default being "IEEE754_1985".</documentation>
    </annotation>
    </attribute>
    <attribute name="sizeInBits" type="xtce:FloatEncodingSizeInBitsType" default="32">
    <annotation>
    <documentation xml:lang="en">Number of bits to use for the float raw encoding method, with 32 being the default. Not every number of bits is valid for each encoding method.</documentation>
    <appinfo>Verify the number of bits for encoding is valid for the encoding method.</appinfo>
    </annotation>
    </attribute>
    <attribute name="changeThreshold" type="double" use="optional">
    <annotation>
    <documentation>A changeThreshold may optionally be specified to inform systems of the minimum change in value that is significant. This is used by some systems to limit the telemetry processing and/or recording requirements. If the value is unspecified or zero, any change is significant.</documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    ValueEnumerationType contents
    ================================================================================

    <complexType name="ValueEnumerationType">
    <annotation>
    <documentation>Describe a value and an associated string label, see EnumerationListType.</documentation>
    </annotation>
    <attribute name="value" type="long" use="required"/>
    <attribute name="maxValue" type="long">
    <annotation>
    <documentation>If max value is given, the label maps to a range where value is less than or equal to maxValue. The range is inclusive.</documentation>
    </annotation>
    </attribute>
    <attribute name="label" type="string" use="required"/>
    <attribute name="shortDescription" type="xtce:ShortDescriptionType"/>
    </complexType>

    <complexType name="ValueEnumerationType">
    <annotation>
    <documentation xml:lang="en">Describe a value and an associated string label, see EnumerationListType.</documentation>
    </annotation>
    <attribute name="value" type="long" use="required">
    <annotation>
    <documentation xml:lang="en">Numeric raw/uncalibrated value to associate with a string enumeration label.</documentation>
    </annotation>
    </attribute>
    <attribute name="maxValue" type="long">
    <annotation>
    <documentation xml:lang="en">If max value is given, the label maps to a range where value is less than or equal to maxValue. The range is inclusive.</documentation>
    </annotation>
    </attribute>
    <attribute name="label" type="string" use="required">
    <annotation>
    <documentation xml:lang="en">String enumeration label to apply to this value definition in the enumeration.</documentation>
    </annotation>
    </attribute>
    <attribute name="shortDescription" type="xtce:ShortDescriptionType">
    <annotation>
    <documentation xml:lang="en">An optional additional string description can be specified for this enumeration label to provide extended information if desired.</documentation>
    </annotation>
    </attribute>
    </complexType>

    ================================================================================
    TermType contents - for polynomials
    ================================================================================

    <complexType name="TermType">
    <annotation>
    <documentation xml:lang="en">A term in a polynomial expression. </documentation>
    </annotation>
    <attribute name="coefficient" type="double" use="required"/>
    <attribute name="exponent" type="xtce:NonNegativeLongType" use="required"/>
    </complexType>

    <complexType name="TermType">
    <annotation>
    <documentation xml:lang="en">A term in a polynomial expression.</documentation>
    </annotation>
    <attribute name="coefficient" type="double" use="required">
    <annotation>
    <documentation xml:lang="en">The coefficient in a single term of a polynomial expression.</documentation>
    </annotation>
    </attribute>
    <attribute name="exponent" type="xtce:NonNegativeLongType" use="required">
    <annotation>
    <documentation xml:lang="en">The exponent in a single term of a polynomial expression. Should negative exponents be required, use a Math Calibrator style of definition for this type.</documentation>
    </annotation>
    </attribute>
    </complexType>

    ================================================================================
    SplinePointType contents
    ================================================================================

    <complexType name="SplinePointType">
    <annotation>
    <documentation xml:lang="en">a spline is a set on points from which a curve may be drawn to interpolate raw to calibrated values</documentation>
    </annotation>
    <attribute name="order" type="xtce:NonNegativeLongType" default="1"/>
    <attribute name="raw" type="double" use="required"/>
    <attribute name="calibrated" type="double" use="required"/>
    </complexType>

    <complexType name="SplinePointType">
    <annotation>
    <documentation xml:lang="en">A spline, or piecewise defined function, is a set on points from which a curve may be drawn to interpolate raw to calibrated values</documentation>
    </annotation>
    <attribute name="order" type="xtce:NonNegativeLongType" default="1">
    <annotation>
    <documentation xml:lang="en">The order of a SplineCalibrator refers to the interpolation function. Order 0 is a flat line from the defined point (inclusive) to the next point (exclusive). Order 1 is linear interpolation between two points. Order 2 is quadratic fit and requires at least 3 points (unusual case). This order is generally not needed, but may be used to override the interpolation order for this point.</documentation>
    </annotation>
    </attribute>
    <attribute name="raw" type="double" use="required">
    <annotation>
    <documentation xml:lang="en">The raw encoded value.</documentation>
    </annotation>
    </attribute>
    <attribute name="calibrated" type="double" use="required">
    <annotation>
    <documentation xml:lang="en">The engineering/calibrated value associated with the raw value for this point.</documentation>
    </annotation>
    </attribute>
    </complexType>

    ================================================================================
    ParameterType contents
    ================================================================================

    <complexType name="ParameterType">
    <complexContent>
    <extension base="xtce:NameDescriptionType">
    <sequence>
    <element name="ParameterProperties" type="xtce:ParameterPropertiesType" minOccurs="0"/>
    </sequence>
    <attribute name="parameterTypeRef" type="xtce:NameReferenceType" use="required"/>
    <attribute name="initialValue" type="string" use="optional">
    <annotation>
    <documentation xml:lang="en">Specify value as a string compliant with the XML
    schema (xs) type specified for each XTCE type:
    integer=xs:integer; float=xs:double; string=xs:string; boolean=xs:boolean;
    binary=xs:hexBinary; enum=xs:string from EnumerationList;
    relative time= xs:duration; absolute time=xs:dateTime;
    array/aggregate=comma separated list of values inside curly braces {}.
    Supplied value must be within the ValidRange specified for the type and
    is a calibrated value.
    </documentation>
    <appinfo>The value type must match the Parameter type</appinfo>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="ParameterType">
    <annotation>
    <documentation xml:lang="en">Describe the properties of a telemetry parameter, including its data type (parameter type). The bulk of properties associated with a telemetry parameter are in its parameter type. The initial value specified here, overrides the initial value in the parameter type. A parameter may be local, in which case its parameter type would have no data encodings. Ideally such a definition would also set data source in parameter properties to ‘local’ but the syntax does not enforce this. See BaseDataType, BaseTimeDataType, and NameReferenceType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:NameDescriptionType">
    <sequence>
    <element name="ParameterProperties" type="xtce:ParameterPropertiesType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Specify additional properties for this Parameter used by the implementation of tailor the behavior and attributes of the Parameter. When not specified, the defaults on the ParameterProperties element attributes are assumed.</documentation>
    </annotation>
    </element>
    </sequence>
    <attribute name="parameterTypeRef" type="xtce:NameReferenceType" use="required">
    <annotation>
    <documentation xml:lang="en">Specify the reference to the parameter type from the ParameterTypeSet area using the path reference rules, either local to this SpaceSystem, relative, or absolute.</documentation>
    </annotation>
    </attribute>
    <attribute name="initialValue" type="string" use="optional">
    <annotation>
    <documentation xml:lang="en">Specify as: integer data type using xs:integer, float data type using xs:double, string data type using xs:string, boolean data type using xs:boolean, binary data type using xs:hexBinary, enum data type using label name, relative time data type using xs:duration, absolute time data type using xs:dateTime. Values must not exceed the characteristics for the data type or this is a validation error. Takes precedence over an initial value given in the data type. Values are calibrated unless there is an option to override it.</documentation>
    <appinfo>The value type must match the Parameter type</appinfo>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    ArgumentType contents
    ================================================================================

    <complexType name="ArgumentType">
    <complexContent>
    <extension base="xtce:NameDescriptionType">
    <attribute name="argumentTypeRef" type="xtce:NameReferenceType" use="required"/>
    <attribute name="initialValue" type="string">
    <annotation>
    <documentation xml:lang="en">Specify value as a string compliant with the XML
    schema (xs) type specified for each XTCE type:
    integer=xs:integer; float=xs:double; string=xs:string; boolean=xs:boolean;
    binary=xs:hexBinary; enum=xs:string from EnumerationList;
    relative time= xs:duration; absolute time=xs:dateTime;
    array/aggregate=comma separated list of values inside curly braces {}.
    Supplied value must be within the ValidRange specified for the type and
    is a calibrated value.
    </documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="ArgumentType">
    <annotation>
    <documentation xml:lang="en">An Argument has a name and can take on values with the underlying value type described by the ArgumentTypeRef. Describe the properties of a command argument referring to a data type (argument type). The bulk of properties associated with a command argument are in its argument type. The initial value specified here, overrides the initial value in the argument type. See BaseDataType, BaseTimeDataType and NameReferenceType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:NameDescriptionType">
    <attribute name="argumentTypeRef" type="xtce:NameReferenceType" use="required">
    <annotation>
    <documentation xml:lang="en">Specify the reference to the argument type from the ArgumentTypeSet area using the path reference rules, either local to this SpaceSystem, relative, or absolute.</documentation>
    </annotation>
    </attribute>
    <attribute name="initialValue" type="string">
    <annotation>
    <documentation xml:lang="en">Specify as: integer data type using xs:integer, float data type using xs:double, string data type using xs:string, boolean data type using xs:boolean, binary data type using xs:hexBinary, enum data type using label name, relative time data type using xs:duration, absolute time data type using xs:dateTime. Values must not exceed the characteristics for the data type or this is a validation error. Takes precedence over an initial value given in the data type. Values are calibrated unless there is an option to override it.</documentation>
    <appinfo>The value type must match the Argument type</appinfo>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

  • Updated: Tue, 10 Jul 2018 14:23 GMT