Valor Booleano efetivo (XQuery)

Estes são os valores Booleanos efetivos:

  • False se o operando for uma seqüência vazia ou um Booleano falso.

  • Caso contrário, o valor é true.

O valor Booleano efetivo pode ser calculado para expressões que retornem um único valor Booleano, uma seqüência de nó ou uma seqüência vazia. Observe que o valor Booleano é calculado implicitamente quando os seguintes tipos de expressões são processados:

A seguir é apresentado um exemplo de valor Booleano efetivo. Quando a expressão if é processada, o valor Booleano efetivo da condição é determinado. Como /a[1] retorna uma seqüência vazia, o valor Booleano efetivo é false. O resultado é retornado como XML com um nó de texto (falso).

value is false
DECLARE @x XML
SET @x = '<b/>'
SELECT @x.query('if (/a[1]) then "true" else "false"')
go

No exemplo a seguir, o valor Booleano efetivo é true, pois a expressão retorna uma seqüência não vazia.

DECLARE @x XML
SET @x = '<a/>'
SELECT @x.query('if (/a[1]) then "true" else "false"')
go

Ao consultar colunas ou variáveis xml digitadas, você pode obter nós de tipo Booleano. O data() nesse caso retorna um valor Booleano. Se a expressão de consulta retorna um valor Booleano true, o valor Booleano efetivo é true, como exibido no exemplo a seguir. O exemplo também ilustra o seguinte:

  • Uma coleção de esquemas XML é criada. O elemento <b> na coleção é do tipo Booleano.

  • Uma variável xml digitada é criada e consultada.

  • A expressão data(/b[1]) retorna um valor Booleano true. Portanto, o valor Booleano efetivo nesse caso, é true.

  • A expressão data(/b[2]) retorna um valor Booleano false. Portanto, o valor Booleano efetivo nesse caso, é false.

CREATE XML SCHEMA COLLECTION SC AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema">
      <element name="s" type="string"/>
      <element name="b" type="boolean"/>
</schema>'
go
DECLARE @x XML(SC)
SET @x = '<b>true</b><b>false</b>'
SELECT @x.query('if (data(/b[1])) then "true" else "false"')
SELECT @x.query('if (data(/b[2])) then "true" else "false"')
go

Consulte também

Conceitos

Outros recursos