VOID expressions return no value but are used to perform other work. The VOID IF expression provides a way to perform conditional evaluation.

The sub-expressions are grouped into clauses: the first clause consists of all the sub-expressions up to the first EXPRNODE element (if any) and any subsequent clauses consist of the sub-expressions between EXPRNODE elements. The first clause is an IF clause; the first sub-expression is a condition, and must be of type INTEGER. Subsequent sub-expressions form the action, and must be of type VOID. If the condition evaluates to anything other than zero, then all of the actions are evaluated, in order. If the condition evaluates to zero, then processing moves to the next clause.

A clause introduced by an ELSE_IF expression node (EXPRNODE) behaves just like the initial IF clause. ELSE_IF clauses are optional. If included, there may be any number. For a sample usage, see the second example below. In a clause introduced by an ELSE expression node, all sub-expressions form an action, and must be of type VOID. The actions are evaluated in order. The ELSE clause is optional. If included, it must come last. There can be at most one ELSE clause.

See the EXPRESSION element for DTD and attribute information.

This example implements the following logic using ELSE and ELSE_IF expression nodes:

   if (Endeca.Title == "Ad Rotator Test")
      Create Property AdRotate with Property Value "Yes"
   else if (Endeca.Title == "Sample Pages")
      Create Property "An Index" with Property Value "Yes"
   else
      Create Property "NoMatch" with Property Value "Nothing"
   end if

The example is as follows:

<EXPRESSION LABEL="" NAME="IF" TYPE="VOID" URL="">

  <EXPRESSION LABEL="" NAME="MATH" TYPE="INTEGER" URL="">
    <EXPRNODE NAME="TYPE" VALUE="STRING"/>
    <EXPRNODE NAME="OPERATOR" VALUE="EQUAL"/>
    <EXPRESSION LABEL="" NAME="IDENTITY" TYPE="PROPERTY" URL="">
      <EXPRNODE NAME="PROP_NAME" VALUE="Endeca.Title"/>
    </EXPRESSION>
    <EXPRESSION LABEL="" NAME="CONST" TYPE="STRING" URL="">
      <EXPRNODE NAME="VALUE" VALUE="Ad Rotator Test"/>
    </EXPRESSION>
  </EXPRESSION>

  <EXPRESSION LABEL="" NAME="CREATE" TYPE="VOID" URL="">
    <EXPRNODE NAME="PROP_NAME" VALUE="AdRotate"/>
    <EXPRESSION LABEL="" NAME="CONST" TYPE="STRING" URL="">
      <EXPRNODE NAME="VALUE" VALUE="Yes"/>
    </EXPRESSION>
  </EXPRESSION>

  <EXPRNODE NAME="ELSE_IF" VALUE=""/>

  <EXPRESSION LABEL="" NAME="MATH" TYPE="INTEGER" URL="">
    <EXPRNODE NAME="TYPE" VALUE="STRING"/>
    <EXPRNODE NAME="OPERATOR" VALUE="EQUAL"/>
    <EXPRESSION LABEL="" NAME="IDENTITY" TYPE="PROPERTY" URL="">
      <EXPRNODE NAME="PROP_NAME" VALUE="Endeca.Title"/>
    </EXPRESSION>
    <EXPRESSION LABEL="" NAME="CONST" TYPE="STRING" URL="">
      <EXPRNODE NAME="VALUE" VALUE="Sample Pages"/>
    </EXPRESSION>
  </EXPRESSION>

  <EXPRESSION LABEL="" NAME="CREATE" TYPE="VOID" URL="">
    <EXPRNODE NAME="PROP_NAME" VALUE="An Index"/>
    <EXPRESSION LABEL="" NAME="CONST" TYPE="STRING" URL="">
      <EXPRNODE NAME="VALUE" VALUE="Yes"/>
    </EXPRESSION>
  </EXPRESSION>

  <EXPRNODE NAME="ELSE" VALUE=""/>

  <EXPRESSION LABEL="" NAME="CREATE" TYPE="VOID" URL="">
    <EXPRNODE NAME="PROP_NAME" VALUE="NoMatch"/>
    <EXPRESSION LABEL="" NAME="CONST" TYPE="STRING" URL="">
      <EXPRNODE NAME="VALUE" VALUE="Nothing"/>
    </EXPRESSION>
  </EXPRESSION>

</EXPRESSION>


Copyright © Legal Notices