Языки разметки документов

Любой документ имеет три составляющих:

· содержание;

· структуру;

· стиль.

Содержание – это те сведения, которые отображены в документе. Содержание документа на бумаге может быть сугубо текстовым, а также содержать изображения. Если документ представлен в электронном виде, он может содержать и мультимедийные данные, а также ссылки на другие документы. Хотя содержание разных документов различно, их можно классифицировать по типам, например, книга или железнодорожный билет.

Обычно содержание документа представляется не в произвольном порядке, а имеет определенную структуру. Структура – это состав и порядок следования частей (блоков) документа.

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

Языки разметки документов являются искусственными языками, предназначенными для описания структуры документа и отношений между различными объектами структуры. Данные разметки называются также метаданными.

Первым языком разметки является язык GML (Generalized Markup Language –обобщенный язык разметки), разработанный сотрудниками фирмы IBM еще в 60-х годах прошлого века. Его непосредственным наследником стал язык SGML (Standard Generalized Markup Language – стандартный обобщенный язык разметки), определяющий правила записи элементов разметки документа. Документ, соответствующий правилам языка, называется документом SGML.

Язык SGML определен в стандарте ISO 8879, в котором задаются следующие основные требования к языку разметки документов:

· язык должен быть доступен для чтения человеком.

· размеченные файлы документов должны быть текстовыми и кодироваться с помощью символов кода ASCII (American Standard Code for Information Interchange – стандартного американского кода для информационного взаимодействия). Однако содержание документа необязательно должно кодироваться символами ASCII или быть текстовым.

· в языке могут использоваться ссылки как на внутренние ресурсы (в том же документе), так и на внешние ресурсы (в других документах).

В языке SGML и подобных ему языках используются специальные инструменты разметки документа:

· элементы и сопутствующие им атрибуты;

· сущности (entities);

· комментарии.

Структурной единицей документа SGML является элемент. В размеченном тексте каждый элемент должен быть выделен определенным образом. Выделение выполняется вставкой начального тега (от английского слова tag – метка) в начале элемента (start tag) и конечного тега (end tag) в конце элемента. Начальный и конечный теги имеют одинаковые имена. Чтобы отличить теги от обычного текста, они должны начинаться с символа – признака начала тега и заканчиваться символом – признаком окончания тега. Кроме того, в конечном теге задается символ – признак конечного тега. В SGML в качестве таких признаков можно задать любые символы, однако наиболее часто в качестве признака начала тега используется символ "<" (левая угловая скобка), в качестве признака окончания тега используется символ ">" (левая угловая скобка), а в качестве признака конечного тега – символ "/" (наклонная черта). Элементы в документе SGML могут заключать в себе другие элементы, в результате чего в графическом представлении документ SGML является иерархической (древовидной) структурой.

Пример 4.3.1. Документ SGML, задающий список студентов с результатами их экзаменационной сессии можно задать следующим образом:

<student-list>

<title>Список оценок студентов в сессии</title>

<student>

<full-name>Иванов Иван Иванович</full-name>

<group-number>ТС-61</group-number>

<session-mark-list>

<mark>A</mark>

<mark>B</mark>

<mark>B</mark>

<mark>B</mark>

</session-mark-list>

</student>

<student>

<full-name>Петров Петр Петрович</full-name>

<group-number>ТС-62</group-number>

<mark-list>

<mark>C</mark>

<mark>C</mark>

<mark>D</mark>

<mark>C</mark>

</mark-list>

</student>

</student-list>

В этом документе первым элементом является элемент student-list (список студентов). Этот элемент содержит в себе один элемент title (заглавие) и несколько элементов student (данные о студенте). В свою очередь, каждый элемент student содержит в себе один элемент full-name (фамилия, имя и отчество студента), один элемент group-number (номер группы) и один элемент mark-list (список оценок студента в сессии). И, наконец, элемент mark-list содержит в себе несколько элементов mark (оценка).

Графическое представление этого списка на рис. 4.3.1 имеет древовидную структуру:

Рис. 4.3.1. Структура документа SGML в графическом представлении

Для уточнения элементов SGML можно использовать атрибуты. Атрибуты записываются в начальном теге элемента в следующем виде:

имя-атрибута="значение-атрибута".

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

Пример 4.3.2. Для элементов mark в примере 4.3.1 можно задать атрибут subject, значением которого является наименование дисциплины, по которой сдавался экзамен. Тогда для первого студента элементы примут следующий вид:

<mark subject="Math">A</mark>

<mark subject="Physics">B</mark>

<mark subject="Chemistry">B</mark>

<mark subject="Informatics">B</mark>

В таких языках, как SGML, для работы с группами данных применяются сущности (entities). Сущностью являются любые именованные данные, как текстовые, так и нетекстовые. При просмотре документа имя сущности заменяется ее значением. Так, например, имя текстовой сущности kpi будет заменено ее значением: Киевский политехнический институт, а нетекстовая сущность image1 будет замена изображением с именем image1.

Комментарии (comments), как и в языках программирования, позволяют добавить в документ SGML различного рода поясняющие данные. Комментарии могут занимать несколько строк и имеют следующий синтаксис:

<!-- текст-комментария -->.

Документы одного типа, например, списки студентов, такие, как приведенный в примере 4.3.1, имеют, как правило, одинаковый набор элементов и их атрибутов, т.е. для разных списков можно использовать одну и ту же разметку. Для проверки соответствия документа разметке заданного типа используется специальные программы – анализаторы (parsers). Анализаторы являются либо отдельными программами, либо частью программы обработки документа SGML. Чтобы анализатор мог выполнить проверку документа, создается специальный текстовый документ, называемый определением типа документа – DTD (Data Type Definition). В нем в специальном формате, определенном в спецификации SGML, описываются элементы данного типа документа, порядок их следования, атрибуты для каждого элемента, а также сущности, используемые в документе.

Для стилевого оформления при выводе документов SGML был разработан язык DSSSL (Document Style Semantics and Specification Language – язык семантики и определения стиля документа).

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

Язык SGML широко применяется в области создания технической документации, где обычно имеет место управление большими сложными документами на базе различных платформ; в автомобильной промышленности, в области здравоохранения, во многих областях телекоммуникационных индустрии и почти везде, где требуются большие объемы структурированного текста.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: