Кто, как и зачем использует XSLT ?
29 ноября 2008 в 19:31

Кто, как и зачем использует XSLT ?

Поделитесь опытом. Для каких проектов применяли, из каких соображений, чем руководствовались?

489
Комментарии (10)
  • 29 ноября 2008 в 19:48 • #
    Елена Лебедева

    Вообще говоря, это язык описания стилей к XML... если провести аналогию HTML-CSS, то связка XML / XSLT имеет те же цели. А именно. Упростить код. Если вы используете одни и те же стили подачи данных в разных частях сайта, то имеет смысл создать один XSLT-файл, где форматы этих данных будут описаны. И просто включить в XML-код, где необходимо.

  • 30 ноября 2008 в 15:15 • #
    Михаил Дьяконов

    Мне кажеься, что Вы перепутали XSLT и XML Schema или DTD.
    XSLT - язык описания преобразований входного XML-документа.

  • 30 ноября 2008 в 15:18 • #
    Елена Лебедева

    Михаил, а преобразования-то каким образом производятся. Согласно описанному формату вывода данных... О чем и пишу... Аналогия существует, она совершенно четкая, сама писала такие схемы. XSLT сам по себе отдельно от XML не используется.

  • Поисковая система FlaYper

    Цена договорная

  • 30 ноября 2008 в 16:00 • #
    Михаил Дьяконов

    Ну CSS все же описывает внешний вид HTML при рендеренге. То есть правила автоматического добавления стилей к HTML элементам по шаблону.

    Просто у меня не возникло аналогии между CSS и XSLT. Ваша аналогия вполне допустима, но для меня CSS и XSLT лежат в совершенно разных плоскостях.

    Да, XSLT без XML не используется, но XSLT может преобразовывать данные не только согласно описанному выходному шаблону. Это очень мощный язык (хотя и не полный по Тьюрингу).

    Например, я писал XSLT библиотеку для преобразования входного XML в RTF. Так там формат выходного XML дерева строился на основании данных, полученных из входных XML файлов. То есть было именно преобразование, глобальное и полное. Выходной rtf-файл по внешнему виду не имел ничего общего со входным XML :-)

    Так что для меня, XSLT скорее ассоциируется с языком препроцессоров типа m4, или с языком описания правил в yacc.

  • 30 ноября 2008 в 16:13 • #
    Елена Лебедева

    ну... :)))) консенсус.

  • 29 ноября 2008 в 22:39 • #
    Ольга Козина

    Полностью согласна с Еленой, а сфера применения довольно широкая.

  • 30 ноября 2008 в 10:58 • #
    Артемий Ланц

    Видать спросил не подумав, т.е. не погуглив :-D хе хе

  • 30 ноября 2008 в 12:28 • #
    Дмитрий Тихонов

    Понятно, что сфера широкая, но я, кроме повышения производительности и совместимости других явных преимуществ не увидел. Вот и спрашиваю.

  • 30 ноября 2008 в 15:41 • #
    Михаил Дьяконов

    XSLT это язык преобразований входного XML в выходной текстовый файл, например, другой XML или XHTML или RTF. Выходной формат не важен, главное чтобы он был текстовый.

    Я использовал XSLT для генерации отчетов в одном крупном проекте. Приложение выводило промежуточный XML-файл с данными, из которого путем XSLT преобразований получались уже отчеты в XHTML, RTF и XFDF форматах (XFDF это XML-based формат описания данных в формах PDF). Получилось довольно гибкое, надежное и быстрое решение. Для подобных вещей можно было бы использовать и генератор отчетов типа Crystal Reports, Fast Report и т.д., но ни один из них не умел готовить данные для PDF форм.

    При разработке стандарта планировалось что XSL будет использоваться в виде универсального шаблонизатора для генерации HTML страниц на стороне web-серверов. Однако, со временем его вытеснили более простые и узкоспециализированные шаблонизаторы типа Smarty, JSP, Struts, ASP WebForms, Ruby on Rails и т.д.

    Реально XSLT для генерации web-страниц сейчас используется только на некоторых старых и очень больших порталах.
    Имхо основное использование XSLT сейчас - это преобразование XML из одного вида в другой при миграции данных и генерация HTML отчетов в десктопных приложениях.

  • 1 декабря 2008 в 07:15 • #
    Денис Данилин

    Использую постоянно в вебных проектах.
    Соображения - простой и мощный инструментарий.
    Скомпилированные шаблоны легко кешируются.

    Ну и теговая разметка мне лично как-то ближе, чем синтаксис велосити, например.

    Ах да, еще в используемой IDE хорошо поддержан, тоже немаловажный плюс :)

  • Желаете ознакомиться с остальными комментариями или оставить свой? в сеть, чтобы получить полный доступ к функционалу Профессионалов.ru! Еще не участник сети?