Free-Form Boolean Expression Language

The Free-Form Boolean expression language enables you to define restrictions and relationships between Variables. It is based on the Aras Markup Language (AML). The following nodes are used in the language:

  • expression
  • eq
  • variable
  • named-constant
  • and
  • or
  • not
  • implication
  • condition
  • consequence
  • exactly-one
  • at-most-one
  • at-least-one

Some of these nodes contain required attributes and some of them have a strict structure or required nodes.

When using an expression in AML, it should be represented as a value of a Container Node. This can be achieved in two ways: wrapped with CDATA or encoded.

CDATA Example:

<containerNode>
                                            

    <![CDATA[<expression>
                                            

        <and>

          <eq>

            <variable id="item_id_color" />
                                            

            <named-constant id="item_id_red" />
                                            

          </eq>

          <eq>

            <variable id="item_id_wheelsize" />
                                            

            <named-constant id="item_id_17inch" />
                                            

          </eq>

        </and>

    </expression>]]>
                                            

</containerNode>

Note
There can only be one CDATA node within a Container Node. The CDATA node can only contain one expression node.

Encoded Example:

<containerNode>

&lt;expression&gt;

        &lt;and&gt;

          &lt;eq&gt;

            &lt;variable id="item_id_color" /&gt;

            &lt;named-constant id="item_id_red" /&gt;

          &lt;/eq&gt;

          &lt;eq&gt;

            &lt;variable id="item_id_wheelsize" /&gt;

            &lt;named-constant id="item_id_17inch" /&gt;

          &lt;/eq&gt;

        &lt;/and&gt;

    &lt;/expression&gt;

</containerNode>


The following sections describe these nodes and include examples.