SQL Server: Zweistufiges GROUP BY mit XML-Ausgabe

Ich habe eine Tabelle mit hierarchischen Daten, die ich als einzelnen, gruppierten XML-Wert auswählen möchte:

Säulen:Id, Type, SubType, SubSubType

Beispieldaten:

Id  Type                    Subtype                    SubSubType
1   Product Documentation   Brochures                  Functional Brochures
2   Product Documentation   Brochures                  Fliers
3   Product Documentation   Data Sheets and Catalogs   Data Sheets
4   Product Documentation   Data Sheets and Catalogs   Catalogs
5   Other Documentation     Other classification       User Guides

Für die obigen Daten möchte ich folgende XML ausgeben:

<AllTypes>
    <Type name="Product Documentation">
        <SubType name="Brochures">
            <SubSubType name="Functional Brochures"/>
            <SubSubType name="Fliers"/>
        </SubType>
        <SubType name="Data Sheets and Catalogs">
            <SubSubType name="Data Sheets"/>
            <SubSubType name="Catalogs"/>
        </SubType>
    </Type>
    <Type name="Other Documentation">
        <SubType name="Other classification">
            <SubSubType name="User Guides"/>
        </SubType>
    </Type>
</AllTypes>

eine einzelne XML-Struktur, die alle Zeilen aus der obigen Tabelle enthält, gruppiert nach der ersten Spalte (Typ) und weiter gruppiert nach der zweiten Spalte (Untertyp).