xml.area001-v002-MAL.xml Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of api-mal Show documentation
Show all versions of api-mal Show documentation
An implementation of the Java API for the CCSDS MAL
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <mal:specification xmlns:com="http://www.ccsds.org/schema/COMSchema" xmlns:mal="http://www.ccsds.org/schema/ServiceSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <mal:area name="MAL" number="1" version="1"> <mal:dataTypes> <mal:fundamental name="Attribute" comment="Attribute is the base type of all attributes of the MAL data model. Attributes are contained within Composites and are used to build complex structures that make the data model."> <mal:extends> <mal:type area="MAL" name="Element"/> </mal:extends> </mal:fundamental> <mal:fundamental name="Composite" comment="Composite is the base structure for composite structures that contain a set of elements."> <mal:extends> <mal:type area="MAL" name="Element"/> </mal:extends> </mal:fundamental> <mal:fundamental name="Object" comment="Object is the base structure for composite structures that contain a set of elements for MO Objects."> <mal:extends> <mal:type area="MAL" name="Composite"/> </mal:extends> </mal:fundamental> <mal:fundamental name="Element" comment="Element is the base type of all data constructs. All types that make up the MAL data model are derived from it."/> <mal:attribute name="Blob" shortFormPart="1" comment="The Blob structure is used to hold binary object attributes. It is a variable-length, unbounded, octet array. The distinction between this type and a list of Octet attributes is that this type may allow language mappings and encodings to use more efficient or appropriate representations."/> <mal:attribute name="Boolean" shortFormPart="2" comment="The Boolean structure is used to hold Boolean attributes. Possible values are 'True' or 'False'."/> <mal:attribute name="Duration" shortFormPart="3" comment="The Duration structure is used to hold Duration attributes. It represents a length of time in seconds. It may contain a fractional component."/> <mal:attribute name="Float" shortFormPart="4" comment="The Float structure is used to hold floating point attributes using the IEEE 754 32-bit range. Three special values exist for this type: POSITIVE_INFINITY, NEGATIVE_INFINITY, and NaN (Not A Number)."/> <mal:attribute name="Double" shortFormPart="5" comment="The Double structure is used to hold floating point attributes using the IEEE 754 64-bit range. Three special values exist for this type: POSITIVE_INFINITY, NEGATIVE_INFINITY, and NaN (Not A Number)."/> <mal:attribute name="Identifier" shortFormPart="6" comment="The Identifier structure is used to hold an identifier and can be used for indexing. It is a variable-length, unbounded, Unicode string. For some encoding/decoding bindings, the use of a numeric value might be appropriate for this Attribute, for example, via a dictionary."/> <mal:attribute name="Octet" shortFormPart="7" comment="The Octet structure is used to hold 8-bit signed attributes. The permitted range is -128 to 127."/> <mal:attribute name="UOctet" shortFormPart="8" comment="The UOctet structure is used to hold 8-bit unsigned attributes. The permitted range is 0 to 255."/> <mal:attribute name="Short" shortFormPart="9" comment="The Short structure is used to hold 16-bit signed attributes. The permitted range is -32768 to 32767."/> <mal:attribute name="UShort" shortFormPart="10" comment="The UShort structure is used to hold 16-bit unsigned attributes. The permitted range is 0 to 65535."/> <mal:attribute name="Integer" shortFormPart="11" comment="The Integer structure is used to hold 32-bit signed attributes. The permitted range is -2147483648 to 2147483647."/> <mal:attribute name="UInteger" shortFormPart="12" comment="The UInteger structure is used to hold 32-bit unsigned attributes. The permitted range is 0 to 4294967295."/> <mal:attribute name="Long" shortFormPart="13" comment="The Long structure is used to hold 64-bit signed attributes. The permitted range is -9223372036854775808 to 9223372036854775807."/> <mal:attribute name="ULong" shortFormPart="14" comment="The ULong structure is used to hold 64-bit unsigned attributes. The permitted range is 0 to 18446744073709551615."/> <mal:attribute name="String" shortFormPart="15" comment="The String structure is used to hold String attributes. It is a variable-length, unbounded, Unicode string."/> <mal:attribute name="Time" shortFormPart="16" comment="The Time structure is used to hold absolute time attributes. It represents an absolute date and time to millisecond resolution."/> <mal:attribute name="FineTime" shortFormPart="17" comment="The FineTime structure is used to hold high-resolution absolute time attributes. It represents an absolute date and time to nanosecond resolution."/> <mal:attribute name="URI" shortFormPart="18" comment="The URI structure is used to hold URI addresses. It is a variable-length, unbounded, Unicode string."/> <mal:attribute name="ObjectRef" shortFormPart="19" comment="The ObjectRef structure is used to hold references to MO Objects."/> <mal:enumeration name="InteractionType" shortFormPart="101" comment="InteractionType is an enumeration holding the possible interaction pattern types."> <mal:item value="SEND" nvalue="1" comment="Used for Send interactions."/> <mal:item value="SUBMIT" nvalue="2" comment="Used for Submit interactions."/> <mal:item value="REQUEST" nvalue="3" comment="Used for Request interactions."/> <mal:item value="INVOKE" nvalue="4" comment="Used for Invoke interactions."/> <mal:item value="PROGRESS" nvalue="5" comment="Used for Progress interactions."/> <mal:item value="PUBSUB" nvalue="6" comment="Used for Publish/Subscribe interactions."/> </mal:enumeration> <mal:enumeration name="SessionType" shortFormPart="102" comment="SessionType is an enumeration holding the session types."> <mal:item value="LIVE" nvalue="1" comment="Used for Live sessions."/> <mal:item value="SIMULATION" nvalue="2" comment="Used for Simulation sessions."/> <mal:item value="REPLAY" nvalue="3" comment="Used for Replay sessions."/> </mal:enumeration> <mal:enumeration name="QoSLevel" shortFormPart="103" comment="QoSLevel is an enumeration holding the possible QoS levels."> <mal:item value="BESTEFFORT" nvalue="1" comment="Used for Best Effort QoS Level."/> <mal:item value="ASSURED" nvalue="2" comment="Used for Assured QoS Level."/> <mal:item value="QUEUED" nvalue="3" comment="Used for Queued QoS Level."/> <mal:item value="TIMELY" nvalue="4" comment="Used for Timely QoS Level."/> </mal:enumeration> <mal:enumeration name="AttributeType" shortFormPart="104" comment="AttributeType is an enumeration holding the defined MAL Attribute types."> <mal:item value="BLOB" nvalue="1" comment="Blob type."/> <mal:item value="BOOLEAN" nvalue="2" comment="Boolean type."/> <mal:item value="DURATION" nvalue="3" comment="Duration type."/> <mal:item value="FLOAT" nvalue="4" comment="Float type."/> <mal:item value="DOUBLE" nvalue="5" comment="Double type."/> <mal:item value="IDENTIFIER" nvalue="6" comment="Identifier type."/> <mal:item value="OCTET" nvalue="7" comment="Octet type."/> <mal:item value="UOCTET" nvalue="8" comment="UOctet type."/> <mal:item value="SHORT" nvalue="9" comment="Short type."/> <mal:item value="USHORT" nvalue="10" comment="UShort type."/> <mal:item value="INTEGER" nvalue="11" comment="Integer type."/> <mal:item value="UINTEGER" nvalue="12" comment="UInteger type."/> <mal:item value="LONG" nvalue="13" comment="Long type."/> <mal:item value="ULONG" nvalue="14" comment="ULong type."/> <mal:item value="STRING" nvalue="15" comment="String type."/> <mal:item value="TIME" nvalue="16" comment="Time type."/> <mal:item value="FINETIME" nvalue="17" comment="FineTime type."/> <mal:item value="URI" nvalue="18" comment="URI type."/> <mal:item value="OBJECTREF" nvalue="19" comment="ObjectRef type."/> </mal:enumeration> <mal:enumeration name="AreaNumber" shortFormPart="105" comment="AreaNumber is an enumeration holding the known existing area numbers in use. Note that the table follows the corresponding MAL Area numbers available on the SANA registry."> <mal:item value="MAL" nvalue="1" comment="The MAL area number."/> <mal:item value="COM" nvalue="2" comment="The COM area number. The COM is deprecated, therefore this area number is reserved for backward compatibility."/> <mal:item value="COMMON" nvalue="3" comment="The Common area number."/> <mal:item value="MC" nvalue="4" comment="The Monitor and Control area number."/> <mal:item value="MPS" nvalue="5" comment="The Mission Planning and Scheduling area number."/> <mal:item value="SM" nvalue="7" comment="The Software Management area number."/> <mal:item value="MDPD" nvalue="9" comment="The Mission Data Product Distribution area number."/> </mal:enumeration> <mal:composite name="Subscription" shortFormPart="1001" comment="The Subscription structure is used when subscribing for updates using the PUBSUB interaction pattern. It contains a single identifier that identifies the subscription being defined and a set of entities being requested."> <mal:extends> <mal:type area="MAL" name="Composite"/> </mal:extends> <mal:field name="subscriptionId" canBeNull="false" comment="The identifier of this subscription."> <mal:type area="MAL" name="Identifier"/> </mal:field> <mal:field name="domain" canBeNull="true" comment="The domain to subscribe to. Wildcards are allowed. If NULL, the subscription shall match with any domain."> <mal:type list="true" area="MAL" name="Identifier"/> </mal:field> <mal:field name="filters" canBeNull="true" comment="The list of filters that are being selected for this subscription."> <mal:type list="true" area="MAL" name="SubscriptionFilter"/> </mal:field> </mal:composite> <mal:composite name="SubscriptionFilter" shortFormPart="1002" comment="The SubscriptionFilter structure is used when subscribing for updates using the PUBSUB interaction pattern. It contains a single identifier that identifies the subscription key name and the set of values to be registered for the defined key name."> <mal:extends> <mal:type area="MAL" name="Composite"/> </mal:extends> <mal:field name="name" comment="The identifier name of the key."> <mal:type area="MAL" name="Identifier"/> </mal:field> <mal:field name="values" comment="The list of values that are being subscribed for this key. These shall be ORed together."> <mal:type list="true" area="MAL" name="Attribute"/> </mal:field> </mal:composite> <mal:composite name="UpdateHeader" shortFormPart="1003" comment="The UpdateHeader structure is used by updates using the PUBSUB interaction pattern. It holds information that identifies a single update."> <mal:extends> <mal:type area="MAL" name="Composite"/> </mal:extends> <mal:field name="source" canBeNull="true" comment="The source of the update, usually a PUBSUB provider."> <mal:type area="MAL" name="Identifier"/> </mal:field> <mal:field name="domain" canBeNull="true" comment="The domain of this update."> <mal:type list="true" area="MAL" name="Identifier"/> </mal:field> <mal:field name="keyValues" canBeNull="true" comment="The values for the PUBSUB keys. The values shall be ordered according to the defined keys."> <mal:type list="true" area="MAL" name="Attribute"/> </mal:field> </mal:composite> <mal:composite name="IdBooleanPair" shortFormPart="1004" comment="IdBooleanPair is a simple pair type of an identifier and Boolean value."> <mal:extends> <mal:type area="MAL" name="Composite"/> </mal:extends> <mal:field name="id" comment="The Identifier value."> <mal:type area="MAL" name="Identifier"/> </mal:field> <mal:field name="value" comment="The Boolean value."> <mal:type area="MAL" name="Boolean"/> </mal:field> </mal:composite> <mal:composite name="Pair" shortFormPart="1005" comment="Pair is a simple composite structure for holding pairs. The pairs can be user-defined attributes."> <mal:extends> <mal:type area="MAL" name="Composite"/> </mal:extends> <mal:field name="first" comment="The attribute value for the first element of this pair."> <mal:type area="MAL" name="Attribute"/> </mal:field> <mal:field name="second" comment="The attribute value for the second element of this pair."> <mal:type area="MAL" name="Attribute"/> </mal:field> </mal:composite> <mal:composite name="NamedValue" shortFormPart="1006" comment="The NamedValue structure represents a simple pair type of an identifier and abstract attribute value."> <mal:extends> <mal:type area="MAL" name="Composite"/> </mal:extends> <mal:field name="name" comment="The Identifier value."> <mal:type area="MAL" name="Identifier"/> </mal:field> <mal:field name="value" comment="The Attribute value."> <mal:type area="MAL" name="Attribute"/> </mal:field> </mal:composite> <mal:composite name="File" shortFormPart="1007" comment="The File structure represents a File and holds details about a File. It can also, optionally, hold a BLOB of the file data. The file type is denoted using the internet MIME media types, the list of official MIME types is held at http://www.iana.org/assignments/media-types/index.html."> <mal:extends> <mal:type area="MAL" name="Composite"/> </mal:extends> <mal:field name="name" canBeNull="false" comment="The file name."> <mal:type area="MAL" name="String"/> </mal:field> <mal:field name="mimeType" comment="The MIME type of the file, NULL if not known."> <mal:type area="MAL" name="String"/> </mal:field> <mal:field name="creationDate" comment="The creation timestamp of the file, NULL if not known."> <mal:type area="MAL" name="Time"/> </mal:field> <mal:field name="modificationDate" comment="The last modification timestamp of the file, NULL if not known."> <mal:type area="MAL" name="Time"/> </mal:field> <mal:field name="size" comment="The size of the file in Octets, NULL if not known."> <mal:type area="MAL" name="ULong"/> </mal:field> <mal:field name="content" comment="The contents of the file, NULL if not supplied."> <mal:type area="MAL" name="Blob"/> </mal:field> <mal:field name="metaData" comment="A list of extra metadata for the file."> <mal:type list="true" area="MAL" name="NamedValue"/> </mal:field> </mal:composite> <mal:composite name="ObjectIdentity" shortFormPart="1008" comment="The ObjectIdentity structure represents the object identity of an MO Object."> <mal:extends> <mal:type area="MAL" name="Composite"/> </mal:extends> <mal:field name="domainId" canBeNull="false" comment="The domain of the MO Object being referenced."> <mal:type list="true" area="MAL" name="Identifier"/> </mal:field> <mal:field name="areaId" canBeNull="false" comment="The area of the MO Object being referenced."> <mal:type area="MAL" name="Identifier"/> </mal:field> <mal:field name="typeId" canBeNull="false" comment="The type of the MO Object being referenced."> <mal:type area="MAL" name="Identifier"/> </mal:field> <mal:field name="keyId" canBeNull="false" comment="The key of the MO Object being referenced."> <mal:type area="MAL" name="Identifier"/> </mal:field> <mal:field name="versionId" canBeNull="false" comment="The version of the MO Object being referenced."> <mal:type area="MAL" name="UInteger"/> </mal:field> </mal:composite> <mal:composite name="ServiceId" shortFormPart="1009" comment="The ServiceId holds a certain Service and its version within an Area."> <mal:extends> <mal:type name="Composite" area="MAL"/> </mal:extends> <mal:field name="keyArea" canBeNull="false" comment="The area of this service taken from the numeric Area identifier of the service specification."> <mal:type name="UShort" area="MAL"/> </mal:field> <mal:field name="keyService" canBeNull="false" comment="The service taken from the numeric Service identifier of the service specification."> <mal:type name="UShort" area="MAL"/> </mal:field> <mal:field name="keyServiceVersion" canBeNull="false" comment="The version of this service taken from the Service Version of the area specification."> <mal:type name="UOctet" area="MAL"/> </mal:field> </mal:composite> </mal:dataTypes> <mal:errors> <mal:error name="DELIVERY_FAILED" number="65536" comment="Confirmed communication error."/> <mal:error name="DELIVERY_TIMEDOUT" number="65537" comment="Unconfirmed communication error."/> <mal:error name="DELIVERY_DELAYED" number="65538" comment="Message queued somewhere awaiting contact."/> <mal:error name="DESTINATION_UNKNOWN" number="65539" comment="Destination cannot be contacted."/> <mal:error name="DESTINATION_TRANSIENT" number="65540" comment="Destination middleware reports destination application does not exist."/> <mal:error name="DESTINATION_LOST" number="65541" comment="Destination lost halfway through conversation."/> <mal:error name="AUTHENTICATION_FAIL" number="65542" comment="A failure to authenticate the message correctly."/> <mal:error name="AUTHORISATION_FAIL" number="65543" comment="A failure in the MAL to authorise the message."/> <mal:error name="ENCRYPTION_FAIL" number="65544" comment="A failure in the MAL to encrypt/decrypt the message."/> <mal:error name="UNSUPPORTED_AREA" number="65545" comment="The destination does not support the service area."/> <mal:error name="UNSUPPORTED_OPERATION" number="65546" comment="The destination does not support the operation."/> <mal:error name="UNSUPPORTED_VERSION" number="65547" comment="The destination does not support the service version."/> <mal:error name="BAD_ENCODING" number="65548" comment="The destination was unable to decode the message."/> <mal:error name="INTERNAL" number="65549" comment="An internal error has occurred."/> <mal:error name="UNKNOWN" number="65550" comment="Operation specific."/> <mal:error name="INCORRECT_STATE" number="65551" comment="The destination was not in the correct state for the received message."/> <mal:error name="TOO_MANY" number="65552" comment="Maximum number of subscriptions or providers of a broker has been exceeded."/> <mal:error name="SHUTDOWN" number="65553" comment="The component is being shutdown."/> <mal:error name="TRANSACTION_TIMEOUT" number="65554" comment="The interaction exceeded the defined timeout duration."/> </mal:errors> </mal:area> </mal:specification>