XSLT: So erhalten Sie eine Liste aller verwendeten Namespaces

Ich schreibe ein XSLT 1.0-Stylesheet, um XML-Dokumente mit mehreren Namespaces in HTML umzuwandeln. An einer Stelle im Ergebnis-HTML möchte ich alle Namespaces auflisten, die im Dokument vorkamen.

Ist das möglich?

Ich dachte über etwas wie

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

aber natürlich würde ich Unmengen von Duplikaten bekommen. Also müsste ich irgendwie filtern, was ich schon gedruckt habe.

Das rekursive Aufrufen von Vorlagen würde funktionieren, aber ich kann mich nicht darum kümmern, wie ich alle Elemente erreiche.

Accessing//@xmlns:* funktioniert direkt nicht, weil man nicht über XPath darauf zugreifen kann (man darf kein Präfix an das @ bindxmlns: Namespace).

Antworten auf die Frage(4)

Ihre Antwort auf die Frage