Главная страница Visual 2000 · Общий список статей

Непростая это работа — создавать XML-документы для Web
Андрей Колесов

Рецензия на книгу:
Либерти Дж., Крейси М. Создание документов XML для Web. Пер.с англ.: Уч. пос. — М.: Издательский дом "Вильямс", 2000. — 256 с.

© Андрей Колесов, 2001
Авторский вариант. Статья была опубликована c незначительной литературной правкой в еженедельнике PC Week/RE (№ 15/2001, с. 58) PC Week/RE Online


Уже из названия книги видно, что в ней рассматривается одна из самых "горячих" программистких тем — технология разработки XML-документов. Хотя у нее два автора, но один из них, Джесс Либерти, безусловно, выполняет роль "первой скрипки", и поэтому именно он в основном ведет повествование от первого лица. Джесс Либерти — не только автор ряда книг по разработки приложений (Web, C++, VB и другие средства), но также одновременно президент Liberty Associates, вице-президент по телекоммуникациям Citibank и ведущий инженер ПО в AT&T. Впрочем, хотя для Майк Крейси это первая большая книга, по опыту работы он даже превосходит своего старшего соавтора — в частности, он считается одним из создателей ARPAnet, который позднее превратился в Internet.

Подобно всем книгам серии "На примерах" изучение XML технологий ведется на примере вполне конкретной проблемы. В данном случае используется задача, решенная авторами в реальных проектах. В первом суть заключалась в том, чтобы преобразовать архив статей клиента из набора Word-файлов в некоторую структурированную базу данных с набором различных атрибутов (дата публикации, автор, заголовок и пр.), которую можно было бы использовать как для публикации на Web, так и для печати.

В другом проекте также шла речь создании структурированного архива статей, но при этом нужно было обеспечить разный уровень доступа к нему Web-пользователей в соответствии со статусом подписки. Увидев, что для обоих случаев фактически годится одно решение, которое может стать шаблоном для сотен других подобных проектов, авторы написали эту книгу, поставив целью обучение применения XML и XLS. Отметим, что все программы обработки написаны на Visual Basic с примеyением ASP.

Познакомив читателей в первой главе с базовыми понятиями XML и обозначив постановку задачи, со второй главы начинается работа по созданию архива XML-документов на базе SQL из набора Word-файлов. Сначала выполняется преобразование HTML-документа, полученного непосредственно из Word 2000 с помощью команды "Сохранить как 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. Дело это перспективное и поэтому стоит потратить пару недель на детальный разбор достаточно серьезного проекта.

В начало статьи