When

The complex type CT_When defines an if conditional expression. The complex type is usually used in conjunction with the else counterpart which is defined next. The CT_When complex type is defined in the following manner:

<xsd:complexType name="CT_When">
  <xsd:choice minOccurs="0" maxOccurs="unbounded">
    <xsd:element name="alg" type="CT_Algorithm" minOccurs="0" 
      maxOccurs="1" />
    <xsd:element name="shape" type="CT_Shape" minOccurs="0" 
      maxOccurs="1" />
    <xsd:element name="presOf" type="CT_PresentationOf" 
      minOccurs="0" maxOccurs="1" />
    <xsd:element name="constrLst" type="CT_Constraints" 
      minOccurs="0" maxOccurs="1” />
    <xsd:element name="ruleLst" type="CT_Rules" minOccurs="0" 
      maxOccurs="1" o:cname="Rules" />
    <xsd:element name="forEach" type="CT_ForEach" />
    <xsd:element name="layoutNode" type="CT_LayoutNode" />
    <xsd:element name="choose" type="CT_Choose" />
  </xsd:choice>
  <xsd:attribute name="name" type="xsd:ID" use="optional" />
  <xsd:attributeGroup ref="AG_IteratorAttributes" />
  <xsd:attribute name="func" type="ST_FunctionType" 
    use="required" />
  <xsd:attribute name="arg" type="ST_FunctionArgument" 
    use="optional" />
  <xsd:attribute name="op" type="ST_FunctionOperator" 
    use="required” />
  <xsd:attribute name="val" type="ST_FunctionValue" 
      use="required" />
</xsd:complexType>