Ответ
Misha v.3 03.03.2008 11:21
штука parser:// делалась для такого, чего в принципе невозможно было реализовать без неё.
я сам к xsl отношусь не как к ещё одному "языку", с помощью которого можно сделать как можно больше всего, а к трансформеру, работающему на последней стадии обработки запроса пользователя и формированию окончательного html. в этой концепции никаких upper/lower/random/base64 мне не требуется. хотя моё мнение тут не особо котируется: я не пишу xsl, и возможно просто не знаком с потребностями. конкретно по пунктам мы с тобой уже говорили, и моё мнение такого: upper/lower/base64 не нужны для
нашего применения xsl с принципе, random иногда может потребоваться, но его использование почти автоматически означает отключение кеширования, что для нас не приемлемо, поэтому подобное мы решаем иначе.
кроме того, имея и Imp1 и Imp2 мы стараемся не использовать сильно специфические вещи в xsl, чтобы иметь возможность делать copy/paste кусков xsl-я с одного проекта в другой. в этом ключе подобные расширения могут быть даже вредны %-)
твоя задача иная: ты используешь xsl для разбора пришедших данных (xml сохранённый из Word-а), чтобы предобработать их и поместить в БД уже очищенное. тут работа с base64 мне видится достаточно логичной.
с текущей реализацией (передача xpath в парсер с использованием parser://) это реализовать можно, но... да, получается несколько не через то место.
как ты уже описал, в используемых нами xml/xsl библиотеках есть возможность добавить расширения. насколько это сложно я сказать не могу (на первый взгляд кажется не очень сложным), но в свете вышеописанного могу сказать следующее:
- нам это на данном этапе не требуется, поэтому я работаю над другими нововведениями (если короче: "приму patch");
- если кто-то будет это приделывать, то считаю что реализация в xml должна быть синтаксически такой-же, как например в java (используем готовый интерфейс велосипеда, не придумываем свой).
P.S. на передачу string imho можно положить болт, из node string всегда можно достать, node в dom -- есть гуд.