SQL Server: двухуровневый GROUP BY с выводом XML

У меня есть таблица иерархических данных, которые я пытаюсь выбрать как одно сгруппированное значение XML:

Колонки:Id, Type, SubType, SubSubType

Пример данных:

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

Для приведенных выше данных я хотел бы вывести следующий xml:

<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>

то есть единственная структура xml, содержащая все строки из вышеприведенной таблицы, сгруппированные по первому столбцу (Type) и далее сгруппированные по второму столбцу (SubType).

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

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