O cálculo condicional dos tipos de atributos permite controlar o cálculo de tipo de atributo. Este controle é baseado na verificação de existência para tipos de atributos ou o resultado de comparações. A verificação de existência distingue entre os dois casos de Tipo de atributo existe (elemento XML exists) and Tipo de atributo especificado (elemento XML filled).
No exemplo abaixo, o elemento de cálculo <if> retorna o valor Null se não existir qualquer atributo de função AT_B na instância de processo. Neste caso, o conjunto de resultados gerado pelo elemento XML attribute está vazio.
Se pelo menos um atributo AT_B existir em qualquer função na instância de processo, o valor do elemento XML filteredattribute é transferido.
<if>
<exists>
<attribute name="AT_B" nodetype="OT_FUNC"/>
</exists>
<then>
<filteredattribute name="AT_C" nodetype="OT_FUNC"
filter="EARLY"/>
</then>
</if>
Ao vincular condições usando operadores lógicos, também podem ser formuladas condições mais complexas. O exemplo mostrado deve ser expandido para incluir um teste para um valor de atributo existente.
<if>
<and>
<exists>
<attribute name="AT_B" nodetype="OT_FUNC"/>
</exists>
<filled>
<attribute name="AT_B" nodetype="OT_FUNC"/>
</filled>
</and>
<then>
<filteredattribute name="AT_C" nodetype="OT_FUNC"
filter="EARLY"/>
</then>
</if>
Como a existência do tipo de atributo correspondente é um pré-requisito para um valor de atributo existente, a verificação de existência pode ser ignorada para otimizar a condição.
No exemplo seguinte, o elemento de cálculo <if> retorna o valor NULL se um tipo de atributo com o nome AT_G não for especificado para qualquer das funções.
<if>
<exists>
<filteredattribute name="AT_G" nodetype="OT_FUNC"
filter="LATEST"/>
</exists>
</if>