Я хочу написать шаблон, который соответствует всем узлам, кроме ServiceNode, т.е. от NodeA до NodeX.
Если под "узлом" вы подразумеваете элемент, тогда используйте :
<xsl:template match="*[not(self::ServiceNode)]">
Если под "узлом" вы подразумеваете любой узел (типа элемента, текста, комментария, инструкции обработки): используйте
<xsl:template match="node()[not(self::ServiceNode)]">
Если вы хотите, чтобы сопоставлялись только дочерние элементы Document
, используйте:
<xsl:template match="Document/node()[not(self::ServiceNode)]">
Если вы хотите, чтобы сопоставлялись только дочерние элементы верхнего элемента:
<xsl:template match="/*/node()[not(self::ServiceNode)]">