(defn lookup [x xs]
(first (for [[k v] xs :when (= k x)]
v)))
ASP.NET 2.0 и выше может действительно произвести Строгий (или Переходный) XHTML. Это решит Ваш 'нет никакой ошибки проверки' "имени" атрибута среди других вещей. Для установки этого обновите файл Web.config с чем-то как:
<system.web>
... other configuration goes here ...
<xhtmlConformance mode="Strict" />
</system.web>
Для Переходного XHTML использовать mode="Transitional"
вместо этого.
Посмотрите как к: настройте XHTML, представляющий на веб-сайтах ASP.NET по MSDN.
Его возможное для изменения вывода средств управления ASP.NET с помощью методов как Адаптеры CSS. Хотя я лично не рекомендовал бы использовать их из поля, оно могло бы дать Вам некоторые подсказки на хорошем решении.
Я обычно избегаю использования средств управления ASP.NET, где когда-либо возможно, кроме, которые не генерируют разметку самостоятельно, такую как управление Повторителем. Я изучил бы платформу MVC ASP.NET (на чем StackOverflow основан), поскольку это дает Вам 100%-й контроль над разметкой.
Вы рассмотрели Платформу MVC ASP.NET? Это, вероятно, будет лучшая ставка, если строгий, соответствие XHTML является требованием. Вы получаете больше контроля над своим выводом, но Вы будете шагать незнакомая территория, если Вы будете уже довольны традиционной моделью ASP.NET.