Преобразование XML в HTML на сервере
Нужно, чтобы преобразование XML документа с использованием XSL происходило на сервере и чтобы клиент получал HTML документ вместо комбинации XML документа и описания стилей в формате XSL. Как лучше подойти к решению этой задачи?
Есть много способов преобразования из формата XML в HTML. Оптимально было бы оставить эту задачу клиенту, так как выполнение ее на сервере требует слишком много ресурсов. Заставляя клиента выполнять необходимые преобразования, можно снять часть нагрузки с сервера.
К сожалению, нельзя рассчитывать на клиента — не все броузеры поддерживают преобразование XML в HTML, и понадобится достаточно много времени, прежде чем все пользователи обновят свои броузеры. Приложение на сервере может определить тип броузера и, в случае если он поддерживает XSL преобразование, передавать клиенту XML и XSL. Но это не самый удачный подход, возникают значительные трудности при поддержке.
Как выполнить преобразование на сервере? Возможны два подхода: использование сервлетов и JSP. Для выполнения преобразования на основе XSL понадобится XSL парсер. К счастью, есть отличные свободно распространяемые парсеры. (Важно еще и то, что можно получить бесплатную поддержку, например, задавая вопросы в соответствующие списки рассылки. — Смирнов).(см. Ресурсы).
Обзаведясь парсером, легко можно реализовать преобразование из XML в HTML в сервлете или на JSP странице. Механизм преобразования для этих случаев во многом одинаков. Нужно передать XML и XSL файлы парсеру, а полученный HTML документ отправить пользователю в качестве ответа на запрос.
Если вы не знакомы с сервлетами и JSP, рекомендую вам обратить внимание на проект Tomcat — "эталонную" реализацию для этих технологий. Дистрибутив содержит документацию и примеры.(см. Ресурсы)
В зависимости от сложности XML документа вы можете решить полностью отказаться от применения XSL преобразования. Рекомендую посмотреть статью "Совместное использование XML и JSP", в ней обсуждаются вопросы преобразования XML в HTML с использованием JSP. Представлен другой подход к решению описанной проблемы без использования XSL. Так же в статье приводится обширный список ссылок.
Об авторе
Тони Синтес работает старшим консультантом в ObjectWave, специализируясь на телекоммуникациях. Тони работает с Java начиная с 1997 года и является Sun-certified Java 1.1 программистом и Java 2 разработчиком.
Ресурсы
Статьи
- "Using XML and JSP Together," Alex Chaffee (JavaWorld March 31, 2000) furnishes a good all-around discussion of XML-to-HTML conversion:
http://www.javaworld.com/javaworld/jw-03-2000/jw-0331-ssj-jspxml.html
Совместное использование XML и JSP (русский перевод) - "Java & XML: 1 + 1 > 2," Anthony B. Coates (Sydney Java Users' Group, March 31, 1999):
http://www.sun.com.au/sjug/pres/xml/JavaAndXML/seminar.html#Slide17
XSL парсеры, XSL-aware сервлеты, и движки сервлетов
- LotusXSL:
http://alphaworks.ibm.com/tech/LotusXSL - Resin:
http://www.caucho.com/ - Cocoon:
http://xml.apache.org/cocoon/ - Tomcat:
http://jakarta.apache.org/tomcat/ - Xalan:
http://xml.apache.org/xalan/overview.html - XSL:P:
http://www.clc-marketing.com/xslp/
Reprinted with permission from the April 2000 edition of JavaWorld magazine. Copyright © ITworld.com, Inc., an IDG Communications company.
View the original article at: http://www.javaworld.com/javaworld/javaqa/ 2000-04/03-qa-0428-xml.html
