Опубликован: 10.12.2007 | Уровень: специалист | Доступ: платный
Лекция 1:

Основные концепции

Лекция 1: 12345678910 || Лекция 2 >

1.2. Использование XML

XML (Extensible Markup Language, расширяемый язык разметки) - весьма успешный стандарт, созданный Консорциумом World Wide Web, W3C (http://www.w3c.org). Mozilla широко поддерживает XML, так что мы кратко опишем, для чего этот стандарт применяется.

Основная цель XML - обеспечить нотацию для описания и структурирования информации, которой могут быть данные любого типа. Ведущие стандарты XML также предоставляют наборы понятий и синтаксиса, их можно использовать для создания описательных терминов, относящихся к какому-либо одному типу данных, например, векторной графике. Такие наборы терминов называются приложениями XML. Самое известное приложение XML - XHTML, XML-версия обычного HTML.

XHTML описывает информацию, состоящую из текста, изображений и ссылок на другие XHTML-документы. Каждый отдельный пример этих данных называется экземпляром или документом. Таким образом, XHTML определяет именно гипертекстовые документы и никакие другие. Существует множество других доступных всем определений приложений XML, например, SVG (для описания векторной графики), MathML (для описания математических формул) и RDF (для описания различных ресурсов). Приложение XML для Mozilla, XUL, определяет графический интерфейс пользователя. В качестве примера кода XML приведем обычный SVG-документ.

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" 
 "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> 
  <svg width="500" height="400"> 	
    <rect x="35" y="32" width="300" height="85"/> 	
    <text x="50" y="67">Прямоугольник</text> 
  </svg>
Листинг 1.1. Пример документа SVG 1.0, приложения XML

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

Успех XML основывается на нескольких простых принципах, которые мы рассмотрим ниже.

1.2.1. Общая основа форматов

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

Другое следствие этого принципа - многократное использование и улучшение программных инструментов. Общие операции для работы с XML известны всем, следовательно, поиск или создание инструмента, который мог бы обрабатывать XML, облегчается. Программисты могут использовать эту функциональность во многих современных инструментах, в том числе и в Mozilla.

1.2.2. Принцип открытости и завершенности

Этот принцип взят из мира ООП (объектно-ориентированного программирования). Он заключает в себе идею, что некоторая часть программы может быть одновременно завершенной и тем не менее открытой для дальнейших изменений. Это в полной мере относится к XML. Основные стандарты XML полностью определены и завершены, так же как и стандарты различных приложений XML; тем не менее, каждый может при желании создать новое приложение XML. Это очень гибкие условия. Более того, стандарты XML допускают смешивание частей экземпляров одних приложений (это называется фрагментами документов) с другими: один документ может содержать и код XHTML, и код SVG. Это тоже очень удобно.

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

Mozilla, безусловно, выигрывает от такой гибкости. В ней реализована поддержка нескольких современных приложений XML, прежде всего, XUL (XML User-interface Language, язык описания интерфейсов на основе XML) и XBL (XML Binding Language, язык описания связей на основе XML), которые используются во многих специальных документах. В Mozilla программистам доступна простейшая обработка любых документов с синтаксисом XML, а также более специальная - для многих приложений вроде RDF и XHTML.

1.2.3. Не только английский

Еще одно преимущество XML - возможность использования разных языков.

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

Первые достижения современного мира компьютеров были реализованы в англоязычной части западного полушария: в Университете Калифорнии, в Университете Беркли и в компании AT&T. Тогда казалось, что восьми битов (одного байта) будет достаточно для глифов всех знаков, обычно используемых при письме на английском. Так были созданы таблица символов ASCII, тип char в языке С и технология обработки текста в операционной системе Unix - все они использовали для одного символа один байт. Но такая широкая распространенность однобайтового представления символов препятствовала переходу на стандарт Unicode, в котором для представления одного символа используются два байта. XML - один из способов преодолеть это препятствие, так как в нем с самого начала было заложено использование Unicode.

Пример инструмента, использующего XML и Unicode для решения проблем интернационализации, - Mozilla. Основной язык программирования для Mozilla, JavaScript, также поддерживает Unicode.

1.2.4. Иерархичность

Второе важное достоинство XML заключается в структуре его документов. Они состоят из вложенных друг в друга частей с каким-либо содержимым. Данные, организованные иерархически, обычно легко воспринимаются людьми. В одной известной загадке говорится:

Шел Кондрат в Ленинград,
	А навстречу - двенадцать ребят,
	У каждого по три лукошка,
	В каждом лукошке - кошка,
	У каждой кошки - двенадцать котят,
	У каждого котенка в зубах по четыре мышонка.

Окончание загадки:

И задумался старый Кондрат:
	"Сколько мышат и котят
	Ребята несут в Ленинград?"
	Глупый, глупый Кондрат!
	Он один и шагал в Ленинград.
	А ребята с лукошками,
	С мышами и кошками
	Шли навстречу ему - в Кострому.

Это пример иерархической организации объектов.

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

Лекция 1: 12345678910 || Лекция 2 >
Дмитрий Гуменюк
Дмитрий Гуменюк
Россия, Звенигород
Konstantin Grishko
Konstantin Grishko
Россия, Москва, Московский финансово-промышленный университет "Синергия", Москва