O que é uma sintaxe greex?
Ao usar a Sintaxe Greex é possível criar condições XML avançadas ou regras Greex. Uma condição XML avançada é usada para avaliar certas condições nos dados de entrada. A Sintaxe Greex é baseada em um XML. Este estilo de avaliação de condição permite usar os dados de entrada de diversas formas, ao invés de uma saída Booleana.
A Sintaxe Greex fornece construções Greex que podem ser aninhadas usando diversos blocos de IF e de ELSE e também permite agrupar expressões usando um operador AND ou OR. Cada expressão compreende uma ou mais chamadas de função. É possível incluir funções em um loop aninhado, o que significa que os parâmetros para as funções podem ser outras chamadas de função. Elas contêm condições IF ELSE básicas. A tabela a seguir descreve vários elementos de uma construção If/Else.
Elemento |
Descrição |
|---|---|
Condição |
O elemento Condição fornece um agrupamento lógico de todas as expressões que precisam ser avaliadas, operando em um XML de entrada. |
Return |
Cada condição definida na construção If/Else deve
retornar um valor. A condição pode retornar um elemento XML, sequência
ou valor booleano. Ela retorna o valor adequado a uma condição If/Else
no elemento Retorno. Por exemplo,
|
O elemento Condição contém vários elementos Expressão. Cada elemento Expressão define a expressão que deseja avaliar para a condição especificada. A tabela a seguir descreve os diversos elementos de uma condição:
Elemento |
Descrição |
|---|---|
Expressão |
O elemento Expressão contém as expressões que deseja avaliar para que uma condição seja atendida. Para realizar as chamadas de função na expressão, prefixe o nome da função com "fn:". Por exemplo, defina o seguinte elemento Expressão que realiza uma chamada de função: É possível também passar funções como parâmetros para outras funções. Por exemplo, é possível definir o seguinte elemento Expressão para passar funções como parâmetros para outras funções: |
Grupo |
Esse é um elemento opcional. Se deseja avaliar um conjunto de expressões, você deve agrupá-las. O atributo "op" do elemento Grupo indica a operação que deseja executar no conjunto de expressões. Os valores válidos são: "ou" e "e". É possível definir mais de uma expressão no elemento Grupo. Se o valor op do elemento Grupo for "e", então a condição será atendida somente se TODAS as expressões que fazem parte do elemento Grupo forem avaliadas como "verdadeiras". Da mesma forma, se o atributo "op" do elemento Grupo for "ou", então a condição será atendida somente se UMA das expressões que fazem parte do elemento Grupo for avaliada como "verdadeira". É possível criar qualquer nível de aninhamento dos elementos Grupo e Expressão. Nota: Se deseja avaliar uma única expressão, defina um único elemento Expressão no elemento Condição, sem criar o elemento Grupo. |
<If>
<Condition name="isWebOrder?">
<Group op="and">
<Expression>fn:!equals(@orderType,"WEB")</Expression>
<Expression>fn:equals(address::@ZipCode, "01876")</Expression>
</Group>
</Condition>
<Return>
<Value output="<Order type="Web"
discount="5"/>"/>
</Return>
</If>
<Else>
<Return>
<Value output="<Order type="Catalog"
discount="2"/>"/>
</Return>
</Else>