Перспективы использования XML-технологии
3 августа 2004
Рубрика: Технологии.
Автор: .
pic

«Если бы вычислительная сеть была
традиционной наукой, то Тим Бернерс-Ли
получил бы Нобелевскую премию»
Эрик Шмидт (Eric Schmidt)
Исполнительный директор Novell

Сегодня действительно Тима Бернерса-Ли называют создателем Всемирной Паутины (WWW), который совершил революцию в компьютерном мире в начале последнего десятилетия XX века. Теперь он говорит уже о втором поколении Паутины и называет ее Семантической Паутиной (Semantic Web).
Многие программисты слышали, а некоторые уже работают с такой технологией, как расширяемый язык разметки XML (eXtensible Markup Language), который, кстати, является детищем того же Бернерса-Ли.

Сегодня технология XML позволяет использовать данный стандарт в любых web-приложениях, работающих со структурированной информацией и в первую очередь при разработке сложных информационных систем с большими потоками данных. Здесь информация представляет собой структурированные особым образом XML-документы, выполняющие роль универсального стандарта обмена данными между различными компонентами системы и за ее пределами.
XML-документы могут использоваться в качестве промежуточного формата данных в трехуровневых приложениях «Клиент-сервер», работающих с различными СУБД. Как известно, схема взаимодействия между серверами приложений и базами данных зависит от конкретной СУБД и диалекта SQL, используемого для доступа к данным. Если же результаты запроса будут представлены в некотором универсальном текстовом формате, то звено СУБД как таковое станет «прозрачным» для приложения, то есть сделает приложение не зависящим от конкретной СУБД.
Датой рождения языка XML можно считать февраль 1998 года, когда World Wide Web Consortium (W3C) утвердил спецификацию XML 1.0. XML, как и HTML, является потомком семейства SGML (Standard General Markup Language) — «дедушки» языков разметки, который в течение многих лет используется в издательском деле.
Что же представляет собой этот язык? XML является метаязыком, то есть позволяет пользователю или программисту на своей основе определять свои собственные языки, не отходя при этом от универсального стандарта. Хотя XML предназначен не только для создания программного обеспечения, служащего для организации обмена данными в Web. Он может быть использован для распознавания семантического значения самих данных. В отличие от языка HTML, созданного для гипертекстовых документов с фиксированной структурой, XML предназначен для разметки документов произвольной структуры, то есть XML сам по себе не содержит никаких стандартно определенных тэгов, необходимых для разметки, он просто определяет порядок их создания. Тем самым его использование может послужить мощным дополнением к HTML для представления в Web «нестандартной» информации большого объема, которую нужно структурировать и семантически представить. Перспективным решением в этой области становятся попытки интеграции двух языков HTML и XML, в качестве примера можно привести спецификацию XHTML.
Составленные правильным образом XML-документы содержат сбалансированное дерево вложенных открывающих и закрывающих тэгов, каждый из которых может включать в себя несколько пар «атрибут-значение». Поскольку фиксированного словаря тэгов, равно как и набора их допустимых комбинаций не существует, тэги могут определяться независимо для каждого приложения.
Любой XML-документ должен всегда начинаться с инструкции

pic

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

pic

Если при определении элементов необходимо задать какие-либо параметры, уточняющие его характеристики, то имеется возможность использовать атрибуты элемента. Атрибут — это пара «название» = «значение», которую необходимо задавать при определении элемента в начальном тэге. Например:

pic

или

pic

Примером использования атрибутов в HTML является описание элемента

pic
pic

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

pic

Как видно из примера, структура документа довольно проста — корневым в данном случае является элемент log. Каждое происшедшее событие фиксируется в элементе event и описывается при помощи его атрибута (дата — время) и внутренних элементов (method — метод доступа, ip-from — адрес источника, url-to — запрашиваемый ресурс, response — код ответа). Генерацией этого документа может заниматься, например, модуль регистрации запросов на веб-сервере, а использованием — программа обработки регистрационных данных (log viewer).
Как уже было сказано выше, XML-документы могут служить промежуточным форматом для передачи информации от одного приложения к другому (например, как результат запроса к базе данных), поэтому не всегда XML-документы создаются вручную, иногда их содержимое генерируется различными приложениями автоматически.

Поэтому должны соблюдаться следующие правила при создании XML-документов:

• в заголовке документа помещается объявление XML, в котором указываются язык разметки документа, номер его версии и дополнительная информация
• каждый открывающий тэг, определяющий некоторую область данных в документе, обязательно должен иметь закрывающую часть (в XML, в отличие от HTML, нельзя опускать закрывающие тэги)
• XML является регистрозависимым языком
• все значения атрибутов, используемые в определении тэгов, обязательно должны быть заключены в кавычки
• вложенность тэгов в XML строго контролируется, поэтому необходимо следить за порядком следования открывающих и закрывающих тэгов
• вся информация, располагающаяся между начальным и конечным тэгами, рассматривается в XML как данные, и поэтому учитываются все символы форматирования (пробелы, переводы строк и символы табуляции не игнорируются, как в HTML).

Любой XML-документ может дополняться его структурным определением — DTD (Document Type Definition). В DTD определяются требования к структуре документа. DTD-определения позволяют проверять корректность данных в случае, когда приложение-получатель не имеет встроенного описания входящей информации. Однако наличие DTD является необязательным. Данные, переданные вместе с DTD, обозначаются термином «истинный» («valid») XML. В этом случае XML-анализатор, также часто называемые парсерами, может проверить структурную корректность входящей информации в соответствии с правилами, определенными в полученном DTD. Данные, переданные без DTD, обозначаются (конечно, только в случае корректности самого XML-документа) термином «правильно построенный» («well-formed») XML.
На сегодняшний день уже существует или находится в стадии завершения множество новых стандартов, основанных на этой технологии. К ним можно отнести такие стандарты, как XML-QL — язык запросов ресурсов XML, XML-Signature — стандарт электронной подписи для XML-документов, XSLT — язык описания трансформаций XML-документов (использующийся, например, для трансформации данных из XML в HTML, WML) и др.
В данной статье мы рассмотрели лишь в общих чертах основы языка. Все тонкости XML, а также другие технологии работы с ним — тема отдельной статьи.

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