Issue 8045: Add array types as one of the fundamental types in XTCE (xtce-ftf) Source: NASA (Mr. Kevin Rice, james.k.rice-1(at)nasa.gov) Nature: Enhancement Severity: Significant Summary: Add array types as one of the fundamental types in XTCE. This addition, once thought to be a ‘nice’ enhancement is now considered essential Resolution: Revised Text: Resolution: We had recognized that array handling and structures were almost certainly a needed future capability of the schema, but it was dearly hoped that this could be differed until a future revision. After many repeated requests for Array types, they have been added at the expense, however, of some additional complexity in the schema because before we could create a facility to create arrays, we had to add a facility to create types (so that arrays could be defined as a type). This required a new Collection (ParameterTypeSet and ArgumentTypeSet) in TelemetryMetaData and CommandMetadata. In order to minimize the added complexity, we changed the Parameter and Argument Definitions to be very simple references (the complexity is in the types). The change also required the addition of a new entry type (for array entries) in both the SequenceContainer and the CommandSequenceContainer. Revised Text: <complexType name="ParameterTypeSetType"> <annotation> <documentation xml:lang="en">Holds the list of parameter definitions. A Parameter is a description of something that can have a value; it is not the value itself. </documentation> </annotation> <choice maxOccurs="unbounded"> <element name="StringParameterType" type="xtce:StringDataType"/> <element name="EnumeratedParameterType" type="xtce:EnumeratedDataType"/> <element name="IntegerParameterType"> <complexType> <complexContent> <extension base="xtce:IntegerDataType"> <sequence> <element name="DefaultAlarm" type="xtce:NumericAlarmConditionType" minOccurs="0"/> <element name="ContextAlarmList" minOccurs="0"> <complexType> <sequence> <element name="ContextAlarm" type="xtce:ContextAlarmType" maxOccurs="unbounded"/> </sequence> </complexType> </element> </sequence> </extension> </complexContent> </complexType> </element> <element name="BinaryParameterType" type="xtce:BinaryDataType"/> <element name="FloatParameterType"> <complexType> <complexContent> <extension base="xtce:FloatDataType"> <sequence> <element name="DefaultAlarm" type="xtce:NumericAlarmConditionType" minOccurs="0"/> <element name="ContextAlarmList" minOccurs="0"> <complexType> <sequence> <element name="ContextAlarm" type="xtce:ContextAlarmType" maxOccurs="unbounded"/> </sequence> </complexType> </element> </sequence> </extension> </complexContent> </complexType> </element> <element name="BooleanParameterType" type="xtce:BooleanDataType"/> <element name="RelativeTimeParameterType" type="xtce:RelativeTimeDataType"/> <element name="AbsoluteTimeParameterType" type="xtce:AbsoluteTimeDataType"/> <element name="ArrayParameterType"> <annotation> <documentation>An array type. Will be an array of parameters of the type referenced in 'arrayTypeRef' and have the number of array dimensions as specified in 'numberOfDimensions' </documentation> </annotation> <complexType> <complexContent> <extension base="xtce:NameDescriptionType"> <attribute name="arrayTypeRef" type="xtce:NameReferenceType" use="required"/> <attribute name="numberOfDimensions" type="positiveInteger" use="required"/> </extension> </complexContent> </complexType> </element> </choice> </complexType> and <complexType name="ArrayParameterRefEntryType"> <annotation> <documentation>An entry that is an array parameter. This entry is somewhat special because the entry may represent only a part of the Array and it's important to decribe which diminsions of the array come first in the sequence as well as the size of the array.</documentation> </annotation> <complexContent> <extension base="xtce:SequenceEntryType"> <sequence> <element name="DimensionList"> <annotation> <documentation>Where the Dimension list is in this form: Array[1stDim][2ndDim][lastDim]. The last dimension is assumed to be the least significant - that is this dimension will cycle through it's combination before the next to last dimension changes. The order MUST ascend or the array will need to be broken out entry by entry. </documentation> </annotation> <complexType> <sequence> <element name="Dimension" maxOccurs="unbounded"> <annotation> <documentation>For partial entries of an array, the starting and ending index for each dimension, OR the Size must be specified. Indexes are zero based.</documentation> <appinfo>For an ArrayParameterType of size N, their should be N Dimensions</appinfo> <appinfo>An array made up by multiple Entries should not have index's that overlap, but should be continuous.</appinfo> </annotation> <complexType mixed="false"> <sequence> <element name="StartingIndex" type="xtce:IntegerValueType"> <annotation> <documentation>zero based index</documentation> </annotation> </element> <element name="EndingIndex" type="xtce:IntegerValueType"/> </sequence> </complexType> </element> </sequence> </complexType> </element> </sequence> <attribute name="parameterRef" type="xtce:NameReferenceType" use="required"/> <attribute name="lastEntryForThisArrayInstance" type="boolean" default="false"/> </extension> </complexContent> </complexType> Actions taken: December 31, 2004: received issue August 2, 2005: closed issue Discussion: End of Annotations:===== m: webmaster@omg.org Date: 31 Dec 2004 17:59:34 -0500 To: Subject: Issue/Bug Report -------------------------------------------------------------------------------- Name: Kevin Rice Company: GST mailFrom: rice@gst.com Notification: Yes Specification: XTCE Section: schema FormalNumber: dtc/03-05-07 Version: 1 RevisionDate: 03/29/2003 Page: all Nature: Enhancement Severity: Critical HTTP User Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Description Summary: Add array types as one of the fundamental types in XTCE. This addition, once thought to be a .nice. enhancement is now considered essential