XML со всеми удобствами

XML - технология, использующаяся сегодня практически повсеместно. Хранение и передача данных, создание приложений при помощи AJAX, разработка web-сайтов, написание документации... Наверное, проще будет перечислить, где XML сегодня не используется. А не используется он (в силу специфики), пожалуй, только в низкоуровневом программировании.

Распространенность XML - следствие простоты его использования и открытости стандартов. Поэтому на сегодняшний день очень актуальны средства, позволяющие легко и быстро редактировать данные в XML-формате. Как учит экономика, если есть спрос - появится и предложение. Поэтому найти инструмент, облегчающий работу с XML-данными, сегодня не проблема. Поскольку XML - это, по большому счёту, текст, то для самых простых случаев хватит и блокнота. Однако для более или менее серьёзных проектов с использованием XML необходим инструмент, отвечающий индустриальным стандартам. И такие инструменты существуют. По крайней мере, один точно есть. Именно о нём я хочу сейчас вам рассказать.

Называется эта замечательная программа XML Spy, а найти её можно на сайте www.altova.com. Её разработчик - компания Altova GmbH., специализирующаяся на разработке инструментов для web-разработки. XML Spy - программа коммерческая, причём стоит неслабо, однако, думаю, те, кому она действительно нужна для работы, не пожалеют денег. Есть, правда, бесплатная "домашняя" версия, но она лишена многих полезных вещей, присутствующих в профессиональной и корпоративной версиях. Стоит иметь в виду, что производитель гарантирует работу своего детища только на операционных системах линейки Windows NT (NT 4.0, 2000, XP и 2003).

На одном из форумов для программистов во время обсуждения инструментов для работы с XML эту программу назвали "самым навороченным в мире XML-редактором". С этим, пожалуй, не трудно согласиться. Одних только типов документов, предлагаемых программой при создании нового файла, более тридцати. Среди них и ASP-страницы, и DTD, и DocBook, и многие другие виды документов, не только XML.

Редактирование же самого XML в программе можно проводить по-разному. Можно в виде текста, от стандартного блокнота это отличается только подсветкой XML-синтаксиса, в профессиональной и корпоративной версиях также ещё и фолдингом (сворачиванием) участков документа. Правда, намного удобнее будет осуществлять редактирование в режиме, когда документ представляется в виде дерева, и можно редактировать каждый элемент и каждый атрибут каждого элемента в визуальном режиме, не боясь ошибиться в написании тегов. При таком виде редактирования, если имеется файл описания формата (Document Type Definition - DTD), XML Spy делает подсказки, какие значения допустимо выбрать для того или иного атрибута. Для WSDL-документов допустимо представление в виде схемы. В XML Spy встроен модуль для дизайна и проверки XML-схем, причём разработчики утверждают, что эта возможность уникальна и на таком высоком уровне не реализована ни в одной другой программе.

Интересная возможность XML Spy касается распечатки XML-документов и названа разработчиками Pretty Printing. Она заключается в том, что при печати документ на бумаге выглядит так же, как на экране. То есть, если он представлен в виде схемы, то и распечатается так же, а не как просто текст.

Поскольку документы, редактируемые с помощью XML Spy, часто предназначены для конечных пользователей (например, те же DocBook'и, которые используются для технической документации), то проверка орфографии, которую поддерживает программа, кажется вещью очень актуальной и полезной. Правда, в стандартной поставке присутствует, конечно же, только английский словарь, но это всё равно неплохо.

В принципе, XML Spy перерос понятие XML-редактора и стал чем-то большим и новым, чего доселе вовсе не встречалось - XML IDE. Говорить об этом позволяет наличие отладчика для создаваемого кода. Как известно, XML используется не только для хранения и передачи данных (я упоминал об этом в самом начале), но и для web-программирования. Поэтому, в общем-то, отладчик будет совершенно не лишним приспособлением. Встроенный в программу отладчик поддерживает SOAP, WSDL, XSLT 2.0 и многие другие стандарты, популярные сегодня в World-Wide Web. При этом стоит отметить, что отладчик не включает в себя исключительно и только возможность автоматизированного запуска клиентских и серверных приложений - как и любой нормальный отладчик, он умеет выполнять пошаговую отладку, устанавливать точки останова, просматривать значения переменных во время выполнения программы... Короче говоря, отладчик полноценный, и прибавить к этому факту, пожалуй, нечего. Разве что сказать, что, кроме отладчика, присутствует ещё и профилировщик - это тоже приятно и полезно.

XML Spy поддерживает интеграцию с системами контроля версий. И не только с ними. Программа умеет взаимодействовать с такими популярными средами разработки, как Microsoft Visual Studio .NET и Eclipse, и об этом, думаю, стоит рассказать чуть-чуть подробнее. При интеграции в Visual Studio XML Spy заменяет встроенный в среду разработки от Microsoft редактор XML- и XSL-кода на собственный, куда более удобный. Аналогичным образом интегрируются XML-профилировщик и отладчик, что делает работу с XML в Visual Studio почти такой же удобной и привлекательной, как и в самой среде XML Spy. Собственно, интеграция в Eclipse тоже очень похожа на интеграцию в Visual Studio, при этом стоит отметить также, что в обеих средах XML Spy поддерживает полную интеграцию с менеджерами проектов и системами контроля версий. С ними он, кстати, умеет работать не только через Visual Studio или Eclipse, но и совершенно самостоятельно. Правда, список поддерживаемых систем контроля версий не очень велик: CVS, Microsoft Visual SourceSafe, PVS и Borland StarTeam. Впрочем, они достаточно распространены, и в будущем разработчики XML Spy обещают пополнить этот список.

Встроенный в XML Spy менеджер проектов смотрится вполне пристойно даже на фоне своего "брата по оружию" из Visual Studio, которого многие программисты на форумах часто приводят в качестве эталона такого средства. Помимо стандартных для встроенного в среду разработки менеджера проекта функций, он умеет также работать с файлами через протокол FTP, т.е. файлам, включенным в проект, не обязательно находиться на локальном компьютере. Учитывая тот факт, что XML и интернет - вещи неразделимые, это очень удобно. Впрочем, закачку файлов с сервера программа может проводить и по HTTP, но, думаю, не очень приятно использовать одновременно два разных протокола. Также очень удобно то, что менеджер проектов умеет автоматически синхронизировать удалённую и локальную папки с проектами и поддерживает автоматизацию выполнения основных операций: проверку правильности разметки, XSL-трансформацию, генерацию DTD/Schema, отправку файлов на электронный почтовый ящик.

Работать с базами, хранящими данные в виде XML, герой нашего рассказа тоже умеет, причём на достаточно неплохом уровне. Подключение к базе может осуществляться посредством Open Database Connectivity (ODBC) или Active Data Objects (ADO). Правда, может подключиться и без посредников. Список серверов, с которыми XML Spy позволяет соединяться напрямую, не так уж и мал: Microsoft Access, Microsoft SQL Server, MySQL, Oracle, Sybase и IDM DB2. С данными внутри базы можно работать точно так же, как и с отдельными XML-файлами. В общем-то, для тружеников Всемирной паутины, где огромная часть страниц хранится в базах данных, эту возможность XML Spy трудно переоценить.

Как я уже упоминал, XML часто используется для технической документации. Поэтому совсем неудивительно, что XML Spy умеет переводить в основанные на XML форматы документы Microsoft Word и простые текстовые файлы. Поддерживаемых форматов для преобразования немало: DocBook, US Patent & Trademark Office "Red Book", NITF, NewsML, P3P, W3C XMLSpec, DITA, GCA XML Paper, NCAXML, TEI, XMLResume, RIXML. Возможен и обратный перевод документов, правда, в этом случае Word не поддерживается и экспортировать можно только в TXT-файл. В общем, это слегка досадно, однако не стоит исключать, что в следующих версиях такая возможность появится.

О синхронизации проекта с сервером я уже говорил чуть выше. Однако XML Spy умеет сравнивать и синхронизировать не только локальные и удалённые файлы, но и вообще любые. Встроенный движок сравнения файлов готов придти на помощь пользователю в любую минуту. Сравнивать можно как напрямую содержимое файлов (в побайтовом режиме), так и дерево элементов, причём второй метод предпочтительнее, так как позволяет избежать нюансов вроде регистра символов или порядка расположения однотипных элементов. Результаты сравнения программа выдаёт в удобной форме, так что запутаться в них нужно постараться. Конечно, этому довольно простому средству поиска отличий не сравниться с программой Beyond Compare, о которой я писал в "КВ" №35, однако, тем не менее, польза от сравнения файлов иногда может быть, и весьма существенная. Тем более, что по результатам сравнения отличия можно выделить в отдельный документ, а можно два сравниваемых документа слить в один, избегая при этом дублирования элементов.

Возможности XML Spy простираются и в сферу web-программирования, правда, не слишком далеко - программа всё же ориентирована на XML, а не на PHP и компанию. Вот PHP она как раз и не поддерживает. Зато поддерживает ASP и JSP. Эти технологии не слишком отличаются друг от друга по существу, однако основаны на разных платформах. XML Spy поддерживает автоматическое создание кода на Java для классов, описанных с помощью XML. По словам создателей XML Spy, это может ускорить разработку JSP-приложений больше чем в два раза. Неизвестно, имеются ли аналогичные возможности для ASP/ASP.NET, ибо на сайте Altova об этом ничего не говорится. Правда, говорится о возможности генерации кода на "чистой" Яве, а также C# и C++. Думаю, многие разработчики оценят по достоинству эти способности XML Spy.

Среда XML Spy позволяет использовать макросы. Поскольку основной аудиторией пользователей этой программы являются люди, знакомые с программированием, никаких затруднений в плане использования у них эта возможность, полагаю, не вызовет. Кроме макросов, стоит отметить бесконечное количество операций Undo/Redo (Отменить/Повторить), многодокументный (MDI) интерфейс, мощные возможности поиска. Приятно также то, что XML Spy умеет работать и с Юникодом, а кроме того, позволяет переводить документы из одной кодировки в другую.

Конечно, вряд ли кто-то в состоянии использовать все возможности XML Spy на 100%. Однако лучше иметь под рукой мощный инструмент, поскольку никто не знает, что именно из его почти безграничных возможностей понадобится завтра. В принципе, это относится не только к XML Spy. Уж не поэтому ли так популярен Microsoft Office? Все жалуются на его прожорливость, однако мало кто догадывается, что это всего лишь следствие могучей функциональности. Поэтому не стоит относиться к XML Spy как к неуклюжему монстру, обвиняя его в излишней тяжеловесности и наворотах. Кто знает, какая из функций понадобится завтра?

Вадим СТАНКЕВИЧ

Версия для печатиВерсия для печати

Номер: 

39 за 2006 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!