XTCE 1.2 RTF Avatar
  1. OMG Issue

XTCE12 — Generalize array type, add attribute for ROW or COL order

  • Key: XTCE12-107
  • Legacy Issue Number: 14481
  • Status: closed  
  • Source: NASA ( Mr. James Kevin Rice)
  • Summary:

    Description Kevin Rice 2007-10-22 22:00:56 BST
    ROW major order seems to be the poorly described default in XTCE, COL major is
    a less popular but unheard ordering of array cells in memory. These are well
    documented and understood constructs and conversion between them should be easy
    for any implementer. By providing an attribute to select the ordering we'll
    support everything but custom orderings. Wikipedia has an excellent entry on
    the topic.

  • Reported: XTCE 1.1 — Thu, 17 Sep 2009 04:00 GMT
  • Disposition: Resolved — XTCE 1.2
  • Disposition Summary:

    Propose to fix array definitions

    The first thing to do is to change the Array Parameter and Argument Type complexType elements in the schema. Here we are applying a maximum possible size to the array definitions. This allows implementations to reserve memory to store the parameter/argument data.

    Replace the ArrayParameterType definition with this new definition:

    <complexType name="ArrayParameterType">
    <annotation>
    <documentation>Describe an array parameter type. The size and number of dimensions are described here. See ArrayParameterRefEntryType, NameReferenceType and ArrayDataType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:ArrayDataTypeType"/>
    </complexContent>
    </complexType>

    Replace the ArrayArgumentType definition with the following definition:

    <complexType name="ArrayArgumentType">
    <annotation>
    <documentation>Describe an array argument type. The size and number of dimension are described here. See ArrayParameterRefEntryType, NameReferenceType and ArrayDataType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:ArrayDataTypeType"/>
    </complexContent>
    </complexType>

    Only minor adjustments in the Parameter and the Argument Array Entry inside of containers. This removes the @lastEntryForArrayInstance attribute and makes the DimensionList optional. When the DimensionList is not used, then the full size of the array is present.

    Change the ArrayParameterRefEntryType complexType to:

    <complexType name="ArrayParameterRefEntryType">
    <annotation>
    <documentation>Describe an entry that is an array parameter. Specify the dimension sizes if you are subsetting the array (the number of dimensions shall match the number defined in the parameter’s type definition), otherwise the ones in the ParameterType are assumed. See SequenceEntryType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:SequenceEntryType">
    <sequence minOccurs="0">
    <annotation>
    <documentation>Only used for subsetting an array. The array's maximum dimension sizes are set in the type. When a DimensionList is not used, the array is the full size provided in the type.</documentation>
    </annotation>
    <element name="DimensionList" type="xtce:DimensionListType">
    <annotation>
    <documentation>The dimension here if used for subsetting must be less than the ones in the type. It's not a subset if its the same size.</documentation>
    </annotation>
    </element>
    </sequence>
    <attribute name="parameterRef" type="xtce:NameReferenceType" use="required"/>
    </extension>
    </complexContent>
    </complexType>

    Add the ArrayArgumentRefEntryType complexType:

    <complexType name="ArrayArgumentRefEntryType">
    <annotation>
    <documentation>Describe an entry that is an array argument. Specify the dimension sizes (the number of dimensions shall match the number defined in the parameter’s type definition). Valid constructions should have all indexes contiguously defined. See SequenceEntryType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:ArrayParameterRefEntryType"/>
    </complexContent>
    </complexType>

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