Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Velocity vs. XSLT+XML 
:(
    Опции темы
Wowa
Дата 6.2.2006, 03:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Прочитал статью: http://forum.vingrad.ru/index.php?showtopi...l=pdf&st=15 и возник вопрос, чем собственно Velocity лучше
связки XSLT+XML ?
PM WWW   Вверх
tux
Дата 6.2.2006, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(Wowa @ 6.2.2006, 08:54 Найти цитируемый пост)

чем собственно Velocity лучше связки XSLT+XML ?

Напишу что я об этом думаю, возможно это спорное мнение, но для того и форум чтобы спорить. smile

По-моему, ничем не лучше по той простой причине что это разные вещи.

В чем достоинства XSLT (не в сравнении с Velocity, а вообще)? В том, что мы можем взять некий XML, описывающий какой-то предмет, образ, да что угодно, применить к нему заранее подготовленный XSLT и получить на выходе документ в любом формате - простой текст, другой XML-документ, HTML-страницу, PDF и т.п. Причем такая гибкость дает возможность за счет замены XSLT-таблицы получить документ совершенно другого формата и другого оформления.

Что нам дает Velocity? Возможность очень простой динамической генерации любого текста (насколько я знаю Velocity не умеет работать с двоичными данными, если кто-то знает обратное, меня поправит). Нужно всего три шага - инициализировать движок, создать контекст (набор переменных, которые будут использоваться при генерации текста) и, собственно, сгенерировать что нужно из заданного контекста. В результате получим HTML, XML или что-то еще текстовое.

Вообще говоря, ни то ни другое не ограничено применением только в веб.

Вот еще в чем загвоздка - в чистом виде XSLT для веб использовать сложно. Нам ведь нужно где-то взять исходный XML-документ. Можно, конечно, взять и сгенерить DOM-модель на основе каких-то динамических данных приложения, на которую наложить XSLT и получить результат. Однако, это ведь слишком сложно и практически нереально для большого приложения. А вот здесь и может пригодиться способность Velocity генерировать текст используя динамическую информацию. Как вам такой вариант:
  • сгенерировать XML из готового шаблона XML-документа с использованием заданного контекста
  • выполнить с полученным XML XSLT-преобразование и получить нужный документ в каком угодно виде
В общем-то это достаточно распространенная практика и часто используется особенно в сочетании с веб-фреймворком Jakarta Turbine.

С другой стороны, если нужно только веб-приложение, которому не нужно ничего кроме HTML, то XSLT мне кажется лишним. Исключение если уже существующее приложение само генерит XML-документы. В этом случае проще использовать Velocity в чистом виде, а о его достоинствах уже много говорилось.

Ну и в конце резюме:
  • Velocity и XSLT - отнюдь не конкурирующие, а скорее взаимодополняющие технологии, которые эффективно можно использовать как раз в связке
  • гибкость XSLT дает возможность создания (почти) любых документов из готового XML
  • там, где нужен только текст проще использовать Velocity

PM MAIL Skype GTalk Jabber YIM   Вверх
3,14
Дата 8.2.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 3
Всего: 24



С расширением обычного приложения, работающего только с HTML, до поддержки XML особых проблемм нет, если приложение правильно спроектированно. Просто нужно помещать обьеты для передачи в JSP в SessionBean-ы, для того чтоб расширить приложение до поддержки XML нам только понадобиться написать класс преобразующий набор обьектов из SessionBean в XML. Причём как правило достаточно использовать для этой цели java.beans.XMLEncoder.


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1196 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.