XSL se: teste com várias condições de teste

[Resolvido]

Graças ao @IanRoberts, tive que usar a função normalizar-espaço nos meus nós para verificar se estavam vazios.

<xsl:if test="((node/ABC!='') and (normalize-space(node/DEF)='') and (normalize-space(node/GHI)=''))">
  This worked perfectly fine.
</xsl:if>

[Problema]

Estou tentando criar uma condição xsl para verificar se as combinações de nó estão vazias ou não. Eu tentei abaixo das condições, mas eles não funcionam, alguém tem uma idéia de como fazê-lo funcionar

<xsl:if test=" node/ABC!='' and node/DEF='' and node/GHI='' ">
This does not work
</xsl:if>

Eu também tentei

<xsl:when test="((node/ABC!='') and (node/DEF='') and (node/GHI=''))">
This does not work either..
</xsl:when>

E também tentei

<xsl:if test="(node/ABC!='')>
<xsl:if test="(node/DEF='')>
<xsl:if test="(node/GHI='')">
Nope not working..
</xsl:if>
</xsl:if>
</xsl:if>

Eu, então tentei com xsl único: se condições, e abaixo é a observação

<xsl:if test="node/ABC!=''>
**This is working fine**
</xsl:if>

No entanto, se eu tentar procurar a condição vazia, ou seja,

<xsl:if test="node/ABC=''>
**This does not work**
</xsl:if>

Além disso, se eu tentar com um == (duplo igual a), então ele dá erro xslt. isto é

<xsl:if test="node/ABC==''>
***This gives a compilation error***
</xsl:if>

Gostaria de ajuda para descobrir como obter meu xsl: if test trabalhando para verificar várias condições. Desde já, obrigado.

[Editar]: Apenas para atualizar aqui que a condição if em que todos os nós não estão vazios funciona, ela não funciona quando tento verificar qualquer outro nó dentre os três nós que estão vazios.

Por exemplo:

<xsl:if test=" node/ABC!='' and node/DEF!='' and node/GHI!='' ">
This condition works perfectly fine.
</xsl:if>

questionAnswers(2)

yourAnswerToTheQuestion