Così ad occhio direi che dato un xml, in una posizione tipo
<Order><CustomerOrder><Vendor>viene preso il valore del tag <cap> e su questo vengono sostituiti gli spazi ' ' con '' (quindi di fatto vengono eliminati tutti gli spazi).
Inoltre, se il risultato di questa operazione restituisce un cap nullo, allora viene inserito un output (che tu hai omesso) e che si trova nel tag
xsl:if che tu hai proposto:
<xsl:if test="(translate(sm:Order/sm:CustomerOrder/cst:Vendor/cst:cap,' ','')!='')">
...un output da visualizzare nel caso il cap sia nullo...
</xsl:if>
HTH