Для начала надо сделать это в статике (html/css/js) т.е. , когда будет готовая html структур будут и вопросы по xslt. Из приведенной ссылки, имеем такое меню:
<div class="menu">
<ul class="level-0">
<li class="first "><a href="#">Главная</a></li>
<li class="even "><a href="#">Услуги</a>
<ul class="level-1">
<li class="first "><a href="#">Изготовление ювелирных изделий по каталогу</a></li>
<li class="even "><a href="#">Изготовление ювелирных изделий по рисунку или эскизу</a></li>
<li class=""><a href="#">Ремонт ювелирных изделий</a></li>
<li class="even "><a href="#">Родирование</a></li>
<li class=""><a href="#">Гравировка</a></li>
<li class="last even "><a href="#">Скупка золота</a></li>
</ul>
</li>
<li class="current "><a href="#">Новости</a></li>
<li class="even "><a href="#">Выполненные работы</a></li>
<li class="last "><a href="#">Контакты</a></li>
</ul>
</div>
и теперь когда у наст есть html структура которую надо получить на выходе шаблонизатора, начинаем с вызова меню, как ты сам написал:
<xsl:apply-templates select="document('udata://content/menu/(null)/2/')" mode="top_menu" />
наша задача преобразовать данные отдаваемые макросом
content/menu вот что она выдает:
<?xml version="1.0" encoding="utf-8"?>
<udata xmlns:xlink="http://www.w3.org/TR/xlink" module="content" method="menu" generation-time="0.018576">
<items>
<item id="1"link="#" name="Главная" alt-name="about" xlink:href="upage://1">Главная</item>
<item id="213"link="#" name="Услуги" alt-name="market" xlink:href="upage://213">
<items>
<item id="425"link="#" name="Изготовление ювелирных изделий по каталогу" alt-name="izgotovlenie_yuvelirnyh_izdelij_po_katalogu" xlink:href="upage://425">Изготовление ювелирных изделий по каталогу
</item>
<item id="426"link="#" name="Изготовление ювелирных изделий по рисунку или эскизу" alt-name="izgotovlenie_yuvelirnyh_izdelij_po_risunku_ili_e_skizu" xlink:href="upage://426">
Изготовление ювелирных изделий по рисунку или эскизу
</item>
<item id="427"link="#" name="Ремонт ювелирных изделий" alt-name="remont_yuvelirnyh_izdelij" xlink:href="upage://427">Ремонт ювелирных изделий</item>
<item id="428"link="#" name="Родирование" alt-name="rodirovanie" xlink:href="upage://428">Родирование</item>
<item id="429"link="#" name="Гравировка" alt-name="gravirovka" xlink:href="upage://429">Гравировка</item>
<item id="430"link="#" name="Скупка золота" alt-name="skupka_zolota" xlink:href="upage://430">Скупка золота</item>
</items>
Услуги
</item>
<item id="16"link="#" name="Новости" alt-name="allnews" xlink:href="upage://16">Новости</item>
<item id="295"link="#" name="Выполненные работы" alt-name="fotografii_s_turov" xlink:href="upage://295">Выполненные работы</item>
<item id="12"link="#" name="Контакты" alt-name="contacts" xlink:href="upage://12">Контакты</item>
</items>
<id>0</id>
</udata>
дальше
XSL большая часть решения в твоем посте, отвечу на конкретные вопросы.