Web Creation - еженедельный сетевой журнал для вебмастеров

   
XML. Обзор языка.

Автор: Сергей Коломиец
Клуб Интересных Людей - Сайт для тех, кому есть что
сказать людям.

  На данный момент XML является результатом более чем полувековой работы программистов – разработчиков гипертекстовой системы представления информации. Однако приложения, реально использующие эту систему, появились только в середине 60-х годов, когда стало необходимо объединить множество информационных ресурсов в единый комплекс.

  Основным признаком гипертекста является механизм нелинейного представления информации. Данные представляются не в виде непрерывного потока, а набором различных, связанных между собой, компонентов, навигация по которым осуществляется при помощи гиперссылок.

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

  Данные, заключенные в теги HTML, никак не связаны с самими тегами. Например:

<b>Жирный текст<b>

  Броузер отображает текст полужирным шрифтом, однако он не «видит» связи данного тега с другими, не «понимает», включен ли этот тег в другие, включает ли он сам что-либо. Это крайне затрудняет поиск информации в таких документах. Также, недостатком HTML является ограниченный набор тегов и отсутствие возможности вводить разработчиком новых инструкций.
  В связи с этим в 1998 году консорциумом World Wide Web Consortium был принят принципиально новый язык гипертекстовой разметки XML (Extensible Markup Language), отличающийся следующими признаками:

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

  Автор документа на XML сам создает его структуру, наборы элементов, строит связи между ними и добивается оптимального типа разметки, поиска и анализа документа.

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

  Для XML не требуется сложных программ-обработчиков, поэтому о его поддержке заявили такие производители программного обеспечения, как Microsoft (MS Explorer 4.0/5.0/5.5), Netscape, Oracle и др.

* * *

  Тело документа XML состоит из элементов разметки и содержимого документа. Теги предназначены для определения элементов документа, атрибутов и других конструкций. Документ XML начинается с тега <?xml?>, в котором можно указывать кодовую страницу, версию языка и другую информацию.

  Требования к XML-документу:

  • Заголовок документа - <?xml?> с необходимыми параметрами.
  • В отличие от HTML, в XML каждый тег должен иметь закрывающий элемент.
  • В учитывается регистр символов.
  • Атрибуты тегов заключаются в кавычки.
  • Необходим строгий порядок следования открывающих и закрывающих тегов при использовании вложений.

  Существуют два способа проверки корректности XML-документов – определения DTD (Document Type Definition) и семантические схемы.
DTD определяет набор элементов в документе, а также действительные атрибуты каждого из этих элементов. По большому счету, использовать DTD не обязательно, ведь документ, соответствующий правилам синтаксиса XML, и так правильно обрабатывается программой. Но контроль за типами и отношениями лежит на авторе. Пока грамматика нового языка не описана, он не может получить широко распространения.

В DTD используются такие виды правил:

  • Правила для элементов
  • Правила для атрибутов
  • Описания макроопределений
  • Описания форматов

Для использования DTD необходимо либо выделить в документе область для определения правил, либо вынести их в отдельный файл. В этом случае необходимо в документе дать ссылку на этот файл.

 Рассмотрим основные определения DTD.

  • Определение элементов.
    Они определяются при помощи определителя !ELEMENT. Форматы:
    <!ELEMENT Название Маркер>
    <!ELEMENT Название (Список дочерних элементов через запятую)>
    <!ELEMENT Название (Маркер | Список дочерних элементов)>
    Маркеры определяют тип содержимого элемента. Они могут принимать значения PCDATA (любая информация), EMPTY (пустой элемент), ANY (содержимое не описывается).
  • Определение атрибутов
    Для этого используется дескриптор !ATTLIST. Формат:
    <!ATTLIST Название элемента
    Атрибут1 Значение

    АтрибутN Значение
    >
    Типы значений:
    CDATA – содержимое документа представляет собой символьные данные.
    ENTITY – название макроопределения, определенного в документе.
    ID – идентификатор элемента
    IDREF – значением атрибута служит название идентификатора, определенного в этом документе
    NMTOKEN – содержимое элемента – одно слово.
  • Определение компонентов или макроопределений.
    Они создаются с помощью определителя <!ENTITY>. Анализатор, обрабатывая документ, подставляет вместо названия компонента его содержимое. Макроопределения бывают трех типов – внугренние (определения строковой константы), внешние (содержимое внешнего файла) и макроопределения правил.

  Схемы данных – относительно новый механизм создания правил построения XML-документов. Это более мощный и понятный метод описания грамматик языков. Они позволяют описывать правила средствами самого XML.
  Схемы создаются в отдельной области документа, котороя определяется так:
<schema id=»schema 1»>
<!--Дескрипторы -->
</schema>

  • Определения элементов производится по следующему формату
    <elementType id=»Название элемента»>
    <descript>Описание элемента</descript>
    </ elementType>
  • Атрибуты элемента.
    Для этого в описание элемента включается слово attribute.
  • Модель содержимого элемента.
    Это описание всех объектов документа, которые можно использовать в элементе. Модель определяется инструкциями, которые описаны в блоке <elementType>. Модель может быть открытой, когда в нее можно добавлять новые элементы, и закрытой, которая не позволяет включения новых элементов. Закрытая модель определяется параметром content=»CLOSED».

  Явным преимуществом схем данных является их гибкость, прозрачность и простота в использовании. Однако определения DTD на сегодняшний день используются столь широко, что рано говорить про смену метода контроля корректности HTML и XML документов.

* * *

  В XML представлены следующие конструкции:

  • Элементы данных.
  • Атрибуты
  • Директивы
  • Специальные символы
  • Комментарии
  • CDATA

  Элементы данных – основные структурные единицы документа. Например:
<animal>cat</animal>

Любой элемент должен обязательно содержать открывающий и закрывающий теги. Его содержимым могут выступать любые конструкции языка. Набором элементов определяется структура документа. Поиск в документе производится, опираясь на эту структуру.
Атрибуты – это параметры, определяющие характеристики тех или иных элементов. Так же, как и в HTML, они задаются парой «название»=«значение».
Директивы анализаторам обозначаются в XML тегами <? и ?>. Броузер использует эти инструкции для управления разбора документа.
Для отображения в тексте документа некоторых специальных символов, как, например, кавычки или угловой скобки, необходимо использовать их специальные символьные идентификаторы (&lt, &qout).
Комментарии определяются по аналогии с HTML как <!-- Текст комментария -->. Они игнорируются анализатором при разборе структуры документа.
Тегом CDATA определяется область документа, рассматриваемая анализатором, как просто текст. В эту область можно помещать, например, Java Script. Форма записи тега:
<![CDATA] Текст ]]>

* * *

  Что же можно отнести к недостаткам нового языка разметки? Вследствие отсутствия предопределенных тегов и гибкости структуры языка существует множество программ-обработчиков (parsers) XML-файлов. Это приводит к затруднениям в области стандартизации языка и может повлечь за собой разделение его на множество диалектов.
XML можно называть новой ступенью Web-программирования, можно считать просто следующим шагом в развитии HTML, но, несомненно, можно сказать, что его внедрение и повсеместное применение (не только в Интернете, а и в других информационных системах, например, в системах управления предприятием) приведет к значительному упрощению поиска, анализа, обработки и отображения информации.

Автор: Сергей Коломиец
Клуб Интересных Людей - Сайт для тех, кому есть что
сказать людям.

© журнал принадлежит Web Creation
по всем вопросам обращаться А. Кузьмин