Ниже условие не работает в XSL

У меня есть условие ниже, что я написал в xsl ниже ..

так как у меня есть значение в xml из fpml: tradeId, теперь оно может быть в xml или не может быть там, например, как показано ниже ..

<fpml:tradeId tradeIdScheme=""></fpml:tradeId>
or it can contain value also
<fpml:tradeId tradeIdScheme="">10381159400</fpml:tradeId>

как советую, я должен изменить реализацию, но все еще не работает ..

                <xsl:if test = "fpml:dataDocument/*/*/fpml:partyTradeIdentifier[2]/fpml:tradeId = ' '">
                 <xsl:value-of select="'null'" />
                </xsl:if>                   
            </ContractID>

так что для решения этой проблемы я придумал это ниже xsl, теперь проблема заключается в том, что для случаев, когда tradeId отсутствует в xml, он не помещает пустую строку, пожалуйста, сообщите, правильна ли моя реализация xsl ниже

                <xsl:if test = "fpml:dataDocument/*/*/fpml:partyTradeIdentifier[2]/fpml:tradeId != ' '">
                <xsl:choose>
                    <xsl:when test="contains(fpml:dataDocument/*/*/fpml:partyTradeIdentifier[2]/fpml:tradeId,'-')">
                        <xsl:value-of select="substring-before(fpml:dataDocument/*/*/fpml:partyTradeIdentifier[2]/fpml:tradeId,'-')" />
                </xsl:when>
                    <xsl:otherwise>
                        <xsl:value-of select="fpml:dataDocument/*/*/fpml:partyTradeIdentifier[2]/fpml:tradeId" />
                    </xsl:otherwise>
                </xsl:choose>
                </xsl:if>

                <xsl:if test = "fpml:dataDocument/*/*/fpml:partyTradeIdentifier[2]/fpml:tradeId = ' '">
                 <xsl:value-of select="'null'" />
                </xsl:if>                   
            </ContractID>

как советую, новое внедрение сделано, но это все еще не работает ..

<xsl:if test="normalize-space(fpml:dataDocument/*/*/fpml:partyTradeIdentifier[2]/fpml:tradeId)">
                <xsl:choose>
                    <xsl:when test="contains(fpml:dataDocument/*/*/fpml:partyTradeIdentifier[2]/fpml:tradeId,'-')">
                        <xsl:value-of select="substring-before(fpml:dataDocument/*/*/fpml:partyTradeIdentifier[2]/fpml:tradeId,'-')" />
                </xsl:when>
                    <xsl:otherwise>
                        <xsl:value-of select="fpml:dataDocument/*/*/fpml:partyTradeIdentifier[2]/fpml:tradeId" />
                    </xsl:otherwise>
                </xsl:choose>
                </xsl:if>

                <xsl:if test = "fpml:dataDocument/*/*/fpml:partyTradeIdentifier[2]/fpml:tradeId = ' '">
                 <xsl:value-of select="'null'" />
                </xsl:if>                   
            </ContractID>

Ответы на вопрос(1)

Ваш ответ на вопрос