380 Часть II. Типовые решения
представления с преобразованием могут быть организованы в любом порядке — на резуль-
тат это не повлияет.
Представление с преобразованием может быть написано на любом языке. Тем не менее
на данный момент наиболее популярным языком для написания представлений с пре-
образованием является XSLT. Интересно отметить, что XSLT является языком функ-
ционального программирования, как LISP, Haskell и другие языки, которые так и не
смогли оказаться в первом эшелоне средств, применяемых для написания информаци-
онных систем. Подобно этим языкам, XSLT имеет довольно своеобразную структуру.
Например, вместо того чтобы вызывать методы явно, XSLT выделяет XML-элементы в
данных домена и запускает соответствующие преобразования, необходимые для визуали-
зации этих элементов.
Для применения преобразований XSLT данные домена должны находиться в формате
XML Этого проще достичь, когда логика домена сразу же возвращает данные в формате
XML или любом другом, который может быть легко преобразован в XML, например объ-
екты .NET. В противном случае придется самостоятельно генерировать код XML— воз-
можно, с использованием объекта переноса данных (Data Transfer Object, 419), который
способен сериализовать свое содержимое в формат XML. В этом случае сбор данных для
помещения в объект переноса данных может осуществляться посредством подходящего
интерфейса API. В более простых случаях можно воспользоваться сценарием транзакции
(Transaction Script, 133), который будет напрямую возвращать код XML.
Код XML, поступающий на вход преобразования, не обязательно должен быть стро-
кой (если только этого не требует канал передачи данных). Как правило, гораздо быстрее
и легче организовать входные данные в модель DOM.
Данные домена в формате XML передаются процессору XSLT. В последнее время на
рынке программного обеспечения доступно все больше и больше коммерческих процес-
соров XSLT. Логика преобразования содержится в таблице стилей XSLT, которая также
передается процессору. Последний применяет таблицу стилей к входным данным XML и
преобразует их в код HTML, который сразу же может быть помещен в HTTP-запрос.
Назначение
Выбор между представлением с преобразованием и представлением по шаблону зависит
от того, какую среду разработки предпочитает команда, занимающаяся проектированием
представлений. Ключевым фактором здесь является наличие необходимых средств. Для
написания представлений по шаблону можно использовать практически любой HTML-
редактор, в то время как средства для работы с XSLT не так распространены, да и воз-
можностей у них значительно меньше. Кроме того, язык XSLT представляет собой доста-
точно сложную смесь функционального программирования и синтаксиса XML, а потому
овладеть им сможет далеко не каждый.
Одним из преимуществ XSLT является хорошая переносимость практически на все
Web-платформы. Одну и ту же таблицу стилей XSLT можно применять для преобразова-
ния данных XML, созданных на основе объектов J2EE или .NET, что позволяет приме-
нять общие HTML-представления для данных, полученных из различных источников.
Применение XSLT значительно упрощает процесс отображения, если представление
создается на основе документа XML Другие среды разработки могут потребовать преоб-
разования такого документа в объект или модель XML DOM, что не так просто сделать.
В этом плане XSLT прекрасно вписывается в концепцию работы с XML.