V některých vlastnostech, které definují logické výrazy pro různé účely, například appear-if nebo
../jmeno ==''
Poněkud složitější situace je ale u jiných datových typů, kde například u typů date a time nemůžeme tento výraz použít, nejde o řetězec, ale spíše o číselný údaj. Pro zjištění, zda je kolonka prázdná či nikoli jetedy možné v těchto případech použít porovnání s klíčovým slovem:
emptyValue
Tedy například:
../datum_narozeni == emptyValue
Tento výrazvrací logické true, pokud datum narození není vyplněn. Obdobně lze tuto hodnotu použít i u číselných typů, jako je numb a curr nebo u logického typu bool. U číselných typů sice můžeme sice použítzápis např.:
../cislo == 0
Tady ale narazíme v případě, že číslo je nepovinné (a většina čísel nebývá povinná) a pak může uživatel hodnotu prostě smazat s tím, že do databáze se uloží null.Tento stav ověříme jedině pomocí klíčového slova emptyValue:
../cislo == emptyValue
Velmi obdobná situace je u logických typů bool, kde na místo s čísly pracujeme s logickými hodnotamitrue / false, kde v případě, že v databázi z nějakého důvodu není uložena hodnota, ted jde o výskyt null, je v dokumentu obsahem takového uzlu prázdný řetězec. A opět platí, že řetězec není možné ve výrazech porovnávat sjinými typy než jsou opět řetězce a nemáme pro ověření prázdného pole jinou možnost než využit srovnání s klíčovým slovem emptyValue. U logických typů je ale potřeba počítat s jednou věcí. Prázdná hodnota je při běžném odkazu převáděna na logickéfalse, takže např. výraz:
../volba == false
případně
not(../volba)
- vrací hodnotutrue jak v případě, že je hodnota skutečně false, tak i v případě, že je prázdná. Naproti tomu výraz:
../volba == valueEmpty
- obě situace rozliší a v případě, že hodnota chybí vracítrue, zatímco v případě, že je hodnota uvedena(ať již true nebo false) vrací false. Pokud bychom chtěli výraz vázat čistě na to, že je hodnota uvedena a že jde o false, paksamotný test na false nestačí a musíme uvést:
../volba != valueEmpty and ../volba == false
případně
../volba != valueEmpty andnot(../volba)
Klíčové slovo emptyValue však není určeno pro zápis do výrazů pro filtry, zde se pracuje s obvyklým is [not]null.