Рецензии на книгу
"Создание документов XML для Web"
08.10.2004
PC Week (портал)
Андрей Колесов
http://pcweek.ru/?ID=55974
Уже из названия книги видно, что в ней рассматривается одна из самых “горячих” программистких тем — технология разработки XML-документов. В дуэте Джесс Либерти, безусловно, выполняет роль “первой скрипки”, именно от его лица в основном ведется повествование.
Джесс Либерти — не только автор ряда книг по разработке приложений (Web, C++, VB и пр.), но является президентом Liberty Associates, вице-президентом по телекоммуникациям Citibank и ведущим инженером отдела ПО в AT&T.
Впрочем, хотя для Майка Крейси это первая большая книга, по опыту работы он даже превосходит своего старшего соавтора — в частности, он считается одним из создателей ARPAnet, который позднее превратился в Internet.
Подобно всем книгам серии “На примерах” изучать технологии XML предлагается на примере вполне конкретной проблемы. В данном случае используется задача, ранее решенная авторами в двух реальных проектах. Суть первого заключалась в том, чтобы преобразовать архив статей клиента из набора Word-файлов в некоторую структурированную базу данных с набором различных атрибутов (дата публикации, автор, заголовок и пр.), которую можно было бы использовать как для публикации в Web, так и для обычной бумажной печати.
В другом проекте также шла речь создании структурированного архива статей, но при этом нужно было обеспечить разный уровень доступа к нему Web-пользователей в соответствии со статусом подписки.
Увидев, что для обоих случаев фактически годится одно решение и оно может стать шаблоном для других подобных проектов, авторы написали эту книгу, поставив целью обучение применению XML и XSL. Отметим, что все программы обработки написаны на Visual Basic с использованием ASP.
Познакомив читателей в первой главе с базовыми понятиями XML и сформулировав задачу, со второй главы авторы описывают создание архива XML-документов на базе SQL из набора Word-файлов. Сначала полученный непосредственно из Word 2000 HTML-документ с помощью команды “Сохранить как Web-страницы” преобразуется в промежуточный формат XHTML (авторы определяют XHTML как “грамотно построенный HTML”). Для этой операции используется анализатор MSHTML, входящий в состав Internet Explorer 5.0.
Далее полученный документ переводится в “канонический” формат XML. На этом этапе применяются листы стилей XSL (eXtensible Stylesheet Language) и объекты XML DOMDocument, а также выполняется разбивка статей на разделы нескольких уровней. Затем подробно рассматриваются методы использования листов стилей для визуального отображения XML-документов.
В завершающей части книги авторы знакомят читателей с возможностями работы с XSL на клиентском компьютере, чтобы они сами могли выбрать наиболее удобный способ представления получаемых данных.
Здесь описывается утилита XML Helper Майкла Крейси для упрощения создания и сопровождения XSL-документов. (Она написана на JavaSrcipt, хотя для унификации материала 200 строк ее кода можно было бы легко представить в VB-варианте.) В целом при первом просмотре книга произвела хорошее впечатление: четкое описание задачи и этапов ее решения, исходные предпосылки, фиксация вопросов, которые не вошли в книгу, список литературы по вопросам, затронутым в издании (VB, ASP, JavaSrcipt, ADO и т. д.), большой объем хорошо оформленного программного кода и пр.
Однако после более внимательного изучения материала мне пришлось подкорректировать свое мнение.
Начальная идея авторов вполне понятна — последовательно создавая программный проект, показать возможности изучаемых технологий. Однако детальнейшее рассмотрение авторами чуть ли не каждой строчки кода приводит к тому, что за этим уходят из поля зрения вопросы общей логики разработки. С одной стороны, тщательно разжевываются тривиальные темы, с другой — поверхностно говорится о новых. В результате порой за деревьями леса не видно.
Следует подчеркнуть, что книги из серии “На примерах” конечно же предназначены не для чтения в метро или на диване. Фактически изучение их предполагает одновременное выполнение рассматриваемых заданий на компьютере.
Читатели могут прочитать программный код всего примера с Web-сайта авторов, однако для полноценной работы с проектом требуется постоянное обращение к расположенной там же демонстрационной базе данных.
Мне кажется, что было бы разумнее вообще обойтись без применения ASP-технологий, ограничившись локальным VB: использование дополнительных средств только отвлекает от главной задачи. Вместе с тем, даже имея в виду возможность применения готовых программ, крайне желательно сделать более четкие акценты на получаемых на каждом шаге проекта результатах.
Небольшой объем книги не должен вводить в заблуждение: ее изучение потребует от читателей немалых усилий, хотя при должной усидчивости даже не очень опытные программисты смогут разобраться в материале.
Как подчеркивают авторы, их труд предназначен для тех, кто решил серьезно заняться разработкой приложений для Web. Дело это перспективное, и стоит потратить пару недель на детальный разбор достаточно серьезного проекта.