Технология XML
12 июня 2008
Рубрика: Интернет и сети.
Автор: .

Введение
О том, что XML – это расширяемый язык разметки (от англ. eXtensible Markup Language), слышали все. Большинство веб-разработчиков в той или иной форме его используют.

В ASP.NET-технологии задействованы многие концепции XML, а некоторые объекты состоят из XML в чистом виде, например, конфигурационный файл сайта «web.config», или настройка элемента для показа рекламы AdRotator. PHP-программисты также используют этот язык для таких вполне заурядных задач, как создание фотогалереи или настройка RSS-ленты. XML давно проник даже во Flash, где, например, для создания обычного меню предлагается использовать XML-файлы с содержимым. Словом, этот язык в представлении не нуждается.

Но, несмотря на многочисленные примеры прикладного использования, зачастую дело ограничивается работой с самим XML, даже без поверхностного знакомства с составляющими технологии – такими, как XSL (XSLT), DTD, XSD, XPath. Между тем сами по себе файлы в формате XML могут представлять собой содержимое сайта (http://xml.nsu.ru/xml/xml_home.xml)(рис. 1):

pic
Рис. 1. Сайт, выполненный на технологии XML+XSL. В качестве анимированного рисунка используется SVG-документ. Необычно в адресной строке видеть расширение файла “*.xml”.

Это перевод так называемой школы консорциума W3C (http://www.w3schools.com/), где представлены многочисленные технологии веб-разработок для дистанционного изучения.

Представление данных в формате XML – решение многих порталов. Интернет-университет информационных технологий (http://www.intuit.ru/) с самого начала своей деятельности для подготовки тестов использует этот формат. Возможность определить условия оформления больших массивов текстовых материалов, а также возможность автоматически контролировать следование этим условиям, делают формат незаменимым в распределенной работе большого числа сотрудников.
Однако большинство программистов при создании сайтов предпочитает использовать обычные, традиционные технологии для вывода данных. Про XML таким разработчикам можно было бы не знать, если бы не появилась еще одна модная концепция – AJAX, суть которой заключается в фоновом обмене данных между веб-приложением и сервером. Аббревиатура AJAX означает «асинхронный JavaScript и XML» (от англ. Asynchronous Javascript and XML), и следовательно, нам придется осваивать XML хотя бы для использования AJAX, что становится в последнее время обязательным правилом.

В этой статье мы рассмотрим некоторые учебники, ресурсы и инструменты, позволяющие быстро познакомиться с основами технологии XML.

Учебники и пособия
Первое, с чего можно начать – это с учебного курса «Основы XML» (http://www.intuit.ru/department/internet/xml/), который совершенно бесплатно доступен на сайте уже упоминавшегося интернет университета информационных технологий. Исключительная ясность изложения, большое количество примеров (доступных также и в архиве), небольшой объем материала (порядка 120 печатных страниц) делают этот курс лучшим учебником для начинающих. Вво время учебы можно сдавать промежуточные экзамены, а при успешном завершении всего курса слушатель получает диплом, который доступен даже в электронном виде. К недостаткам этого курса следует отнести отсутствие даже упоминаний по некоторым важным составляющим технологии, например, по XSD-схемам. Но обращение к другим пособиям может компенсировать этот пробел.

Познакомиться с основами по наглядным примерам, от создателей технологических стандартов веба можно на сайте школы W3C (http://www.w3schools.com/xml/) (рис. 2):

pic
Рис. 2. Начало изучения XML в школе W3C.

Простое изложение, постоянное обращение к примерам, интерактивный редактор позволят освоить технологию, даже несмотря на то, что все материалы представлены исключительно на английском языке. Впрочем, некоторые документы доступны в переводе на уже упоминавшемся сайте Новосибирского государственного университета (http://xml.nsu.ru/).

Если же хочется прочитать большую, основательную книгу, то можно посоветовать «Библию XML» (http://www.ibiblio.org/xml/books/bible2/) (на англ. яз). Превосходная структура книги, подробное изложение отличают эту книгу от других. А такие потрясающие XML-примеры, как периодическая система Д.И. Менделеева, произведения Шекспира, священные книги мировых религий, которые прилагаются на компакт-диске, позволяют на практике понять, что можно сделать с помощью XML.

Более сложная книга – «XML для профессионалов (второе издание)». Ее можно уже читать после знакомства с другими учебниками. Впрочем, возможно, кто-то сможет ее освоить, даже если она будет самой первой книгой.

Примеры, примеры, примеры – так можно охарактеризовать ресурс http://www.zvon.org/. Кроме примеров, там же можно найти глоссарий, учебные пособия и статьи (на англ. яз).

Статьи, аннотации учебников, событий, новостей из мира XML можно найти на сайте http://www.xmlhack.ru/. Там же можно найти форум (http://www.xmlhack.ru/forum/xml/), на котором предлагается также работа, связанная с XML.

Ну, и в заключение – отличная серия статей про XML, PHP, Java, RSS, AJAX и их различные комбинации на сайте IBM DeveloperWorks: http://www.ibm.com/developerworks/ru/views/xml/libraryview.jsp. Многие статьи носят практический характер, проделав описываемые действия которых, можно получить вполне законченный результат.

Инструменты
Создание XML- документов включает в себя два типа их проверки – на корректность формирования (well-formed) и на действительность (соответствие содержимого документа заранее определенной структуре, valid). Почти все браузеры способны отображать ошибки корректности формирования документов, поэтому теоретически XML-файлы можно создавать в блокноте. Однако браузеры не поддерживают проверки на действительность, кроме того, при работе с большими документами физически становится сложно устранять ошибки корректности формирования, которые браузеры могут отобразить. Поэтому необходимы специальные редакторы. Здесь XML более уместно сравнивать с языками программирования, для которых нужны среды разработки, нежели с HTML, который нужно писать в блокноте – по утверждению, которое иногда встречается на форумах веб-разработчиков.

Специализированные инструменты можно разделить на две категории – Altova XML Spy (http://www.altova.com/) и прочие XML-редакторы. В число прочих XML-редакторов попадают (только по отношению к XML!) Adobe Dreamweaver и Microsoft Visual Studio 2008. Нет, отредактировать в них документы, конечно, можно, Visual Studio 2008, например, хорошо поддерживает работу с XSD-схемами но… После работы в Altova XML Spy возвращаться к этим пакетам совсем не хочется.

Первое, что нужно сделать после установки Altova XML Spy – это посмотреть учебный XML-сайт, входящий в состав программы. А потом запустить справку и начать выполнять серию упражнений (tutorials) по созданию этого самого сайта (рис. 3):

pic
Рис. 3. Учебный сайт и справка Altova XML Spy.

В отличие от других программ справка здесь очень лаконичная, но удобная. Упражнения содержит подробнейшие объяснения – вплоть до того, на какие нажимать кнопки и какие вводить названия. Набираемся терпения, завершаем выполнение первой части упражнения и получаем XSD-схему для учебного сайта (рис. 4):

pic
Рис. 4. XSD-схема.

XSD-схема – это документ, который определяет структуру и содержание XML-файлов. Интерфейс программы позволяет работать со схемами в режиме текста, сетки (табличном), представления в виде схемы. Последний наиболее удобен для проектирования. Отчет по созданной схеме может быть представлен в формате HTML, а также экспортирован в документ Microsoft Word.

Продолжим нашу работу с упражнением. Следуя инструкциям, создаем XML-файл (рис. 5):

pic
Рис. 5. XML-файл в табличном режиме.

В табличном режиме удобно вводить данные в документ. Мы можем проверить документ на отсутствие синтаксических ошибок – корректность формирования, а также на соответствие созданной схеме – действительность.

Далее мы создаем XSL-схему, которая будет отвечать за оформление сайта (рис. 6):

pic
Рис. 6. XSL-схема.

Благодаря созданной XSL схеме мы можем представить нашу простейшую страничку в привычном формате:

pic
Рис. 7. Получение HTML-страницы на основании связки XML + XSL.

Конечно, здесь не идет речь ни о каком дизайне – мы просто отобразили данные. Изменив немного XSL-файл, вполне можно получить приемлемый вид. Получить отличную XSL-таблицу стилей поможет другой инструмент этой же компании – Altova StyleVision.

На этом серия упражнений, касающаяся XML, XSD и XSL, заканчивается. Займемся более интересной частью – создадим рекламный банер. Можно, конечно использовать обычный рисунок, или Gif, или Flash, но мы ведь рассматриваем XML? Поэтому создадим SVG-документ в Altova XML Spy и введем следующий код (используются внешние растровые изображения):

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="320" height="230" xmlns="http://www.w3.org/2000/svg" version="1.1">
	<title>Простейший SVG - ролик</title>
	<desc>
		Пример  SVG - ролика.svg
	</desc>
	<defs>
	<!--Создаем фильтр с размытием-->
		<filter id="myfeGaussianBlur">
			<feGaussianBlur in="SourceGraphic" stdDeviation="8 8"/>
		</filter>
	</defs>
	
	<!--Добавляем фоновое изображение и применяем к нему фильтр-->
	<use x="0" y="0" filter='url(#myfeGaussianBlur)' xlink:href='#redaction'/>
	<image id= "redaction" x="30" y="30" width="250" height="167" xlink:href="infocom_20_7_2007.jpg"/> 
	
	<!--Вставляем нексию и анимируем ее-->
	<image id= "nexia" x="220" y="150" width="55" height="40" xlink:href="nexia.png"> 
	<animate attributeName="x" from="220" to="160" dur="1s" repeatCount="indefinite"/>
		
			<animate attributeName="width" from="55" to="110" dur="1s" repeatCount="indefinite"/>
				<animate attributeName="height" from="40" to="80" dur="1s" repeatCount="indefinite"/>
	</image>

<!--Добавляем первую надпись-->
  <g font-family="Comic Sans MC" font-size="26" >
    <text x="40" y="70" fill="white" >
        <tspan  rotate="45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45"> Куда все уехали?
        <animate attributeName="rotate" from="45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45" 
to="-45 -45 -45 -45 -45 -45 -45 -45 -45 -45 -45 -45 -45 -45 -45 -45 -45" dur="3s" repeatCount="indefinite"/></tspan>
     </text>
  </g>

<!--Добавляем гиперссылку-->
<a xlink:href="http://www.infocom.uz">
<!--Вставляем изображение-->
<image id= "new" x="0" y="0" width="320" height="230" xlink:href="newinfocom.png" opacity="0"> 
<!--Изменение прозрачности при наведении мыши-->
	<set  attributeName="opacity" to="1" begin="mouseover" end="mouseout"/>
</image>
</a>
	
</svg>

Если у вас прямо сейчас нет программы Altova XML Spy, то этот код можно вставить и в блокнот, а затем, изменив расширение файла на “*.svg”, просмотреть в браузере. Opera и Mozilla нормально отображают SVG без всяких дополнений, а вот для Internet Explorer 6 нужно будет скачать и установить плагин Adobe SVG Viewer. В результате мы получаем анимированный ролик, причем при наведении курсора мыши появляется ответ на вращающийся вопрос (рис. 8):
pic
Рис. 8. Готовый SVG-ролик.

Altova XML Spy также отлично поддерживает работу с DTD-схемами. В качестве примера предлагается спецификация формата XML консорциума W3C опять-таки в режиме XML:

pic
Рис. 9. Спецификация формата XML и DTD – схема.

Разработчики XML-веб-сервисов могут попробовать инструменты программы для работы с wsdl-файлами (рис. 10):
pic
Рис. 10. WSDL-документ в режиме схемы.

Это представление выглядит более наглядным, чем, скажем, отображение при помощи соответствующих средств Visual Studio 2008.

Всего в программе Altova XML Spy доступна работа с 44 шаблонами различных XML-документов. Можно даже создавать математические документы в формате MathML (рис. 11):

pic

Рис. 11. Документа MathML и его просмотр в браузере Mozilla Firefox 2.0

Несомненным преимуществом MathML является то, что формулы остаются текстом, который можно выделять и копировать. Примеры математических документов представлены на сайте http://xml-maiden.com/ Браузеры Mozilla Firefox и Opera 9.5 beta поддерживают MathML, для Internet Explorer нужен плагин MathPlayer.

Стоимость пакета Altova XML Spy начинается от 399 евро.

Пару слов о прочих XML-редакторах. Неплохой список известных редакторов, в том числе и бесплатных, можно найти здесь: http://www.xml-dev.com/xml/editors.html

Сертификация IBM для XML-разработчиков
Вы отлично освоили XML, научились навскидку писать оформление XSL, а составление XSD и DTD схем – ваше хобби. Все это хочется закрепить как-то документально, чтобы потенциальные работодатели могли выбрать именно вас из кучи конкурентов еще до всяческих знакомств. Здесь поможет компания IBM со своей сертификацией по XML и смежным технологиям (http://www.ibm.com/developerworks/ru/library/x-xmlcert/). В целом, структура тестов ничем не отличается от других сертификаций (например, от Microsoft). Вопросы пробных тестов (http://www.ibm.com/developerworks/ru/library/x-xmlcert/sidexmlcertques.html) достаточно просты и чаще всего требуют элементарных знаний и внимательности. Стоимость тестирования составляет порядка $150 США. К сожалению, в Ташкенте ни один из учебных центров пока не предлагает услуг авторизованного партнера IBM.

XML и лицензирование
XML – это открытый формат. Открытый настолько, насколько это вообще возможно – документы можно просматривать с помощью блокнота. Ну, и конечно, за использование формата никому не нужно ничего платить. Созданные XML-сайты будут отлично работать на самых разных платформах и серверах. И хотя иногда случаются отдельные попытки маленьких компаний запатентовать формат (http://news.cnet.com/Small-company-makes-big-claims-on-XML-patents/2100-1014_3-5905949.html), пока формат остается открытым.

Orphus system
В Telegram
В Одноклассники
ВКонтакте