2.6.1 ExecutableType Instance for Pipeline Task

Pipeline Task maps a data flow from an origin to a destination by passing the data flow through a series of components. An Executable element is a Pipeline Task if the ExecutableType attribute value is one of the following:

  • SSIS.Pipeline

  • SSIS.Pipeline.2

The Pipeline Task is formally specified to be of type AnyNonPackageExecutableType. However, the following XSD fragment, which is expressed as an anonymous complex type declaration, places further restrictions on the type than the restrictions that are declared in the AnyNonPackageExecutableType type declaration. An Executable element with the ExecutableType attribute value equal to "SSIS.Pipeline" or "SSIS.Pipeline.2" MUST follow the anonymous type declaration that is contained in this section.

Note the following differences between this anonymous complex type declaration and the full definition of the complex type for the AnyNonPackageExecutableType type:

  • This Executable element MUST NOT contain a ForEachEnumerator element.

  • This Executable element MUST NOT contain a ForEachVariableMapping element.

  • This Executable element MUST NOT contain a child Executable element.

  • In the AnyNonPackageExecutableType type, the type of the ObjectData element is given as ExecutableObjectDataType. The ExecutableObjectDataType type definition contains an xs:choice XSD Schema element. However, for the Pipeline Task, not all of the choices that are allowed in the xs:choice XSD Schema element are available. For this Executable element, the ObjectData element MUST contain the pipeline element of type pipelineObjectDataType.

  • The allowed values for the Name attribute of the Property element are a restricted subset of those that are allowed on the type, as specified in the AnyNonPackageExecutablePropertyNameEnum type. Therefore, the formal type declaration of the Property element and the PropertyExpression elements are replaced in this anonymous XSD fragment with a reference to the TaskExePropertyNameEnum simple type. The Name attribute of the Property element MUST be restricted to the values that are shown as valid in the XSD fragment that is contained in this section.

       <xs:complexType>
         <xs:sequence>
           <xs:element name="ForEachEnumerator"
                       type="DTS:ForEachEnumeratorType"
                       minOccurs="0" maxOccurs="0"/>
           <xs:element name="Property"
                       maxOccurs="unbounded">
             <xs:complexType>
               <xs:complexContent>
                 <xs:extension base="DTS:PropertyElementBaseType">
                   <xs:attribute name="Name"
                       type="DTS:TaskExePropertyNameEnum"
                       use="required"/>
                 </xs:extension>
               </xs:complexContent>
             </xs:complexType>
           </xs:element>
           <xs:element name="Variable" type="DTS:VariableType"
                       minOccurs="0" maxOccurs="unbounded"/>
           <xs:element name="LoggingOptions" type="DTS:LoggingOptionsType" />
           <xs:element name="PropertyExpression"
                       type="DTS:PropertyExpressionElementType"
                       minOccurs="0" maxOccurs="unbounded"/>
           <xs:element name="PrecedenceConstraint"
                       type="DTS:PrecedenceConstraintType"
                       minOccurs="0" maxOccurs="unbounded"/>
           <xs:element name="ForEachVariableMapping"
                       type="DTS:ForEachVariableMappingType"
                       minOccurs="0" maxOccurs="0"/>
           <xs:element name="EventHandler" type="DTS:EventHandlerType"
                       minOccurs="0" maxOccurs="unbounded"/>
           <xs:element name="ObjectData">
             <xs:complexType>
               <xs:choice>
                 <xs:element name="pipeline"
                             type="DTS:pipelineObjectDataType"
                             form="unqualified"/>
               </xs:choice>
             </xs:complexType>
           </xs:element>
         </xs:sequence>
         <xs:attribute name="ExecutableType" use="required">
           <xs:simpleType>
             <xs:restriction base="xs:string">
               <xs:enumeration value="SSIS.Pipeline.2"/>
               <xs:enumeration value="SSIS.Pipeline"/>
             </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
         <xs:attribute name="ThreadHint" use="optional" type="xs:int"/>
       </xs:complexType>