XTCE 1.3 RTF Avatar
  1. OMG Issue

XTCE13 — ArgumentInputSetType is inconsistent with InputSetType

  • Key: XTCE13-34
  • Status: closed  
  • Source: Peraton ( Victoria Vickers)
  • Summary:

    The InputSetType has a InputParameterInstanceRefType as well as a ConstantType.
    The ArguementInputSetType has a InputParameterInstanceRefType as well as a InputArgumentInstanceRefType.
    The inconsistency causes some confusion as to usage.

  • Reported: XTCE 1.2b1 — Wed, 17 Oct 2018 13:24 GMT
  • Disposition: Resolved — XTCE 1.3
  • Disposition Summary:

    Add Constant element back to ArgumentInputSetType complexType

    Propose to restore the access to provided Constant values from the ArgumentInputSetType. There is one other discrepancy in that the Constant cannot be accessed without providing a name. At present, the "constantName" attribute is optional, which means it really cannot be referenced from within the algorithm.

    First we want to make the "constantName" attribute a required field:

    Before:

    <complexType name="ConstantType">
    <annotation>
    <documentation xml:lang="en">Names and provides a value for a constant input to the algorithm. There are two attributes to Constant, constantName and value. constantName is a variable name in the algorithm to be executed. value is the value of the constant to be used.</documentation>
    </annotation>
    <attribute name="constantName" type="string"/>
    <attribute name="value" type="string" use="required"/>
    </complexType>

    After (attribute and annotation update):

    <complexType name="ConstantType">
    <annotation>
    <documentation xml:lang="en">Names and provides a value for a constant input to the algorithm. There are two attributes to Constant, constantName and value. constantName is a variable name in the algorithm to be executed. value is the value of the constant to be used.</documentation>
    </annotation>
    <attribute name="constantName" type="string" use="required">
    <annotation>
    <documentation xml:lang="en">Supply a name for the constant to be used to access this value from within the algorithm.</documentation>
    </annotation>
    </attribute>
    <attribute name="value" type="string" use="required">
    <annotation>
    <documentation xml:lang="en">Supply the constant value in the form of the data type needed in the algorithm.</documentation>
    </annotation>
    </attribute>
    </complexType>

    Now we consider adding back the missing Constant element to the ArgumentInputSetType:

    Before:

    <complexType name="ArgumentInputSetType">
    <annotation>
    <documentation xml:lang="en">Identical to InputSetType but supports argument instance references.</documentation>
    </annotation>
    <choice maxOccurs="unbounded">
    <element name="InputParameterInstanceRef" type="xtce:InputParameterInstanceRefType">
    <annotation>
    <documentation xml:lang="en">Reference a parameter to serve as an input to the algorithm.</documentation>
    </annotation>
    </element>
    <element name="InputArgumentInstanceRef" type="xtce:ArgumentInstanceRefType">
    <annotation>
    <documentation xml:lang="en">Reference an argument to serve as an input to the algorithm.</documentation>
    </annotation>
    </element>
    </choice>
    </complexType>

    After:

    <complexType name="ArgumentInputSetType">
    <annotation>
    <documentation xml:lang="en">Identical to InputSetType but supports argument instance references.</documentation>
    </annotation>
    <choice maxOccurs="unbounded">
    <element name="InputParameterInstanceRef" type="xtce:InputParameterInstanceRefType">
    <annotation>
    <documentation xml:lang="en">Reference a parameter to serve as an input to the algorithm.</documentation>
    </annotation>
    </element>
    <element name="InputArgumentInstanceRef" type="xtce:ArgumentInstanceRefType">
    <annotation>
    <documentation xml:lang="en">Reference an argument to serve as an input to the algorithm.</documentation>
    </annotation>
    </element>
    <element name="Constant" type="xtce:ConstantType">
    <annotation>
    <documentation xml:lang="en">Supply a local constant name and value to input to this algorithm.</documentation>
    </annotation>
    </element>
    </choice>
    </complexType>

    Lastly, correct the missing annotation/documentation in the original InputSetType complexType. This is not a functional change. We should also remove the minOccurs attribute since it is not needed within the choice.

    Before:

    <complexType name="InputSetType">
    <choice maxOccurs="unbounded">
    <element name="InputParameterInstanceRef" type="xtce:InputParameterInstanceRefType"/>
    <element name="Constant" type="xtce:ConstantType" minOccurs="0"/>
    </choice>
    </complexType>

    After:

    <complexType name="InputSetType">
    <choice maxOccurs="unbounded">
    <element name="InputParameterInstanceRef" type="xtce:InputParameterInstanceRefType">
    <annotation>
    <documentation xml:lang="en">Reference a parameter to serve as an input to the algorithm.</documentation>
    </annotation>
    </element>
    <element name="Constant" type="xtce:ConstantType">
    <annotation>
    <documentation xml:lang="en">Supply a local constant name and value to input to this algorithm.</documentation>
    </annotation>
    </element>
    </choice>
    </complexType>

  • Updated: Tue, 1 Jul 2025 15:05 GMT