|
|
 |
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 тегами <? и ?>. Броузер использует
эти инструкции для управления разбора документа.
Для отображения в тексте документа некоторых специальных символов, как, например,
кавычки или угловой скобки, необходимо использовать их специальные символьные
идентификаторы (<, &qout).
Комментарии определяются по аналогии с HTML как <!-- Текст комментария -->.
Они игнорируются анализатором при разборе структуры документа.
Тегом CDATA определяется область документа, рассматриваемая анализатором, как
просто текст. В эту область можно помещать, например, Java Script. Форма записи
тега:
<![CDATA] Текст ]]>
* * *
Что же можно отнести к недостаткам нового языка разметки? Вследствие
отсутствия предопределенных тегов и гибкости структуры языка существует множество
программ-обработчиков (parsers) XML-файлов. Это приводит к затруднениям в области
стандартизации языка и может повлечь за собой разделение его на множество диалектов.
XML можно называть новой ступенью Web-программирования, можно считать просто следующим
шагом в развитии HTML, но, несомненно, можно сказать, что его внедрение и повсеместное
применение (не только в Интернете, а и в других информационных системах, например,
в системах управления предприятием) приведет к значительному упрощению поиска,
анализа, обработки и отображения информации.
Автор: Сергей Коломиец
Клуб Интересных Людей - Сайт
для тех, кому есть что
сказать людям.
|