XSLT: Como obter uma lista de todos os namespaces usados

Estou escrevendo uma folha de estilo XSLT 1.0 para transformar documentos XML com vários namespace em HTML. Em algum lugar no resultado HTML, quero listar todos os namespaces que ocorreram no documento.

Isso é possível?

Eu pensei em algo como

<xsl:for-each select="//*|//@*">
  <xsl:value-of select="namespace-uri(.)" />
</xsl:for-each>

mas é claro que eu ganharia bilhões de duplicatas. Então, eu teria que filtrar de alguma forma o que eu já imprimi.

Chamar recursivamente os modelos funcionaria, mas não consigo entender como alcançar todos os elementos.

Acessando//@xmlns:* diretamente não funciona, porque não é possível acessar isso via XPath (não é permitido vincular nenhum prefixo aoxmlns: namespace).

questionAnswers(2)

yourAnswerToTheQuestion