Почему стоит выбрать XSL-преобразование? - PullRequest
23 голосов
/ 29 апреля 2009

Для текущего проекта необходимо принять решение, использовать ли XML и XSL-преобразование для создания HTML или использовать HTML-шаблоны напрямую.

Меня будут интересовать аргументы за или против XSL-подхода. Я понимаю, что в тех случаях, когда вам необходимо поддерживать много разных макетов, XSL-решение имеет много преимуществ, но почему вы выбираете его в тех случаях, когда вам нужно поддерживать только один целевой макет?

Редактировать: Мы говорим о Java здесь.

Ответы [ 16 ]

2 голосов
/ 06 мая 2009

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

Отправка XML в браузер со ссылкой на преобразование (забыл точный синтаксис ...) также означает меньшую пропускную способность, поскольку файл XSLT останется прежним, и вам нужно только передать необработанный XML, из которого он построен - вроде как использовать внешнюю таблицу стилей CSS вместо добавления атрибутов стиля в вашу разметку;)

2 голосов
/ 06 мая 2009

Я вижу, как подход XSL может быть полезен, если ваши данные уже являются XML.
Но обычно это не так. Он находится где-то в базе данных, должен быть сгенерирован на месте или получен из какого-либо сервиса.
Создание XML из этого источника, чтобы потом иметь возможность создавать HTML из этого XML, на мой взгляд, бесполезно. Я бы придерживался (X) HTML-шаблонов.

1 голос
/ 11 мая 2009

XML + XSLT действительно круто. У вас есть возможность выводить много типов целевых форматов в будущем. Но не в курсе встроенного HTML в XML. Firefox XSLT не поддерживает «отключение-вывод-экранирование». См. Bugzilla .

1 голос
/ 08 мая 2009

Я использовал XML & XSLT в предыдущем проекте, на финансовых веб-сайтах, и у нас это хорошо работало, но:

  1. У нас было несколько клиентов, которые варьировал количество выходов у нас было. Мы могли бы заменить таблицу стилей XSLT и это внесло изменения в сайт проще для разработчиков
  2. В нашей команде был специальный веб-редактор. Мы дали им пример XML, и они могли редактировать таблицы стилей напрямую
  3. Если были какие-либо изменения формулировок, которые нужно было перенести на веб-сайт вчера (это был банк, это случалось на удивление часто), мы могли бы просто развернуть новый XSLT без повторного развертывания всего сайта.
  4. Требовалось несколько разных форматов вывода. Мы использовали FOP для преобразования в PDF, основанный на той же технологии, поэтому нам было не сложно понять: -)

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

1 голос
/ 29 апреля 2009

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

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

0 голосов
/ 08 мая 2009

Мы используем XSLT для генерации html в нашей системе управления контентом, и она отлично работает.

Несколько советов: не пытайтесь сгенерировать всю страницу сразу из одного большого волосатого XML, вы сойдете с ума. Используйте шаблон HTML (простой текстовый / html-файл со стилями, украшениями и базовой разметкой) со встроенными маркерами (например, <! - MENU ->, <! - CONTENT ->) и заменяйте маркеры с помощью преобразования xslt соответствующих данных.

Сказав это, я сомневаюсь, что вам действительно нужен xslt, если у вас будет только один макет, навсегда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...