Сортировка XML в XML с использованием XSLT

У меня есть несколько похожих вопросов, но я изо всех сил пытался «согнуть» решение того, что мне нужно, поэтому прошу прощения за повторный запрос.

У меня есть некоторые XML, как это ....

<?xml version="1.0" encoding="UTF-8"?>

<ns:Root
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ns="urn:Test.Namespace"  
    xsi:schemaLocation="urn:Test.Namespace Test1.xsd"
    >
    <ns:element1 id="001">
        <ns:element2 id="001.1" order="1">
            <ns:element3 id="001.1.1" />
        </ns:element2>
        <ns:element2 id="001.2" order="2">
            <ns:element3 id="001.1.2" />
        </ns:element2>        
    </ns:element1>
    <ns:element1 id="003">
        <ns:element2 id="007.0" order="1">
            <ns:element3 id="007.1.1" />
        </ns:element2>
    </ns:element1>
    <ns:element1 id="002">
        <ns:element2 id="002.1" order="3">
            <ns:element3 id="002.1.1" />
        </ns:element2>
        <ns:element2 id="002.2" order="4">
            <ns:element3 id="002.1.2" />
        </ns:element2> 
    </ns:element1>    
</ns:Root>

Я написал это XSLT

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:ns="urn:Test.Namespace"
                >
    <xsl:output indent="no" />
    <xsl:template match="text()[not(string-length(normalize-space()))]"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="/">
        <xsl:apply-templates>
            <xsl:sort select="/ns:Root/ns:element1/@id" />
            <xsl:copy-of select="." />
        </xsl:apply-templates>
    </xsl:template>

    <xsl:template match="ns:element1">
        <xsl:copy-of select="." />
        <xsl:apply-templates />        
    </xsl:template>

    <xsl:template match="ns:element2">
        <xsl:copy-of select="." />
        <xsl:apply-templates />
    </xsl:template>

    <xsl:template match="ns:element3">
        <xsl:copy-of select="." />
    </xsl:template>

</xsl:stylesheet>

(Я набросал схему для этого отсюдакак отсортировать xml?)

Я хочу использовать этот XSLT для сортировки моего исходного XML по атрибуту id element1 и создания XML. Идея состоит в том, что, как только он будет отсортирован, я смогу обработать другой XSLT, чтобы получить окончательный результат.

К сожалению, это не дает мне никакого вывода, что заставляет меня думать, что это действительно глупая опечатка. где-то, но я не вижу этого.

Любая помощь будет оценена.

Спасибо

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

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