2.5.2. Языки разметки

advertisement
2.5.2. Языки разметки
В современных информационных технологиях используется ряд языков для
представления, хранения, обработки и передачи документов, содержащих данные в
текстовой, табличной, графической формах. Среди языков для представления
документов ведущее место занимают языки разметки. Эти языки широко используются
для представления структуры различных электронных документов, они стали основой
для построения гипертекстовых документов в Web-сайтах, для стандартизации форм
документов в CALS-технологиях, в системах электронной коммерции и т.п.
В настоящее время основными языками структурирования документов в CALSтехнологиях являются языки SGML и XML. Язык SGML (Standard Generalized Markup
Language), утвержденный в качестве стандарта ISO 8879 еще в 1980-х годах, более
универсален, но довольно сложен для освоения и использования. Удобнее в
использовании оказался сравнительно новый язык XML (extensible Markup Language),
предложенный в 1996 г. Он построен на идеях SGML и фактически является
подмножеством SGML. В настоящее время язык XML претендует на роль основного
языка представления документов в информационных технологиях, его можно
рассматривать как метаязык, служащий основой для создания частных языков разметки
в различных приложениях. Например, к числу частных языков разметки, называемых
приложениями или словарями XML [65], можно отнести словари, разработанные в
таких предметных областях, как химия (язык CML), математика (язык MathML),
астрономия (язык AML) и др.
Широко используемый в настоящее время в Web-технологиях язык разметки HTML
(Hyper Text Markup Language) открыт, довольно прост, появился раньше XML и именно
по этим причинам стал популярным средством создания Web-страниц. Однако HTML
имеет ряд недостатков. В этом языке ограниченный набор тегов заранее
предопределен, в некоторых приложениях этот набор может оказаться недостаточным.
Кроме того, в тегах HTML одновременно могут присутствовать данные как о структуре
документа, так и о его форматировании (форматирование определяет визуализацию вид документа на экране монитора). А это мешает при работе с документом
селектировать нужные структурные элементы.
Этих недостатков нет в языке SGML, они устранены также в языке XML.
Рассмотрим особенности языков разметки, используемых в CALS-технологиях, на
примере языка XML.
Для каждого приложения может создаваться свой набор тегов, наилучшим образом
удовлетворяющий требованиям конкретного приложения. С помощью этих тегов
производится структурирование документа, отделенное от форматирования, например,
определяются отношения между элементами и их типы, вложенность одних элементов в
другие. Для форматирования разработан специальный язык XSL (extensible Stylesheet
Language), но можно использовать и каскадные таблицы стилей (CSS), введенные в
HTML. В частности, разделение структурирования и форматирования, осуществленное в
XML, привлекательно для создания IЕТМ, поскольку при этом унификация структуры
эксплуатационных документов Для изделий конкретного класса достигается легче.
Введение уникальных тегов для важных элементов структуры обеспечивает
их эффективный поиск и селектирование. Например, если для именования
фрагментов текста в приложении «Техническая диагностика» с определением
методов диагностики ввести тег <diag>, то ссылка на него позволит выделить
сразу все фрагменты с описаниями этих методов.
XML-документ обычно состоит из заголовка (пролога), размеченного
документа, отображающего исходную информацию, декларации средств
используемого языка разметки и описания правил форматирования документа,
например, в виде правил XSL [66].
Заголовок служит для объявления имени документа, используемой версии
языка XML и некоторых дополнительных необязательных указаний.
Размеченный документ состоит из элементов. Элемент XML - порция
информации, заключенная в контейнер, т.е. обрамленная парой тегов, между
которыми эта порция помещена. Начальный и конечный теги имеют вид
соответственно <имя элемента> и </ имя элемента > (здесь и далее в
примерах нетерминальные символы в отличие от служебных слов языка XML
будут записаны русскими словами курсивом). К элементам также относится
пустой (бесконтейнерный) тег.
Декларация средств языка XML, представленная таблицей DTD, должна
соответствовать общим правилам языка XML, она содержит объявления
средств,
специфичных
для
некоторого
приложения
и
определяющих
используемую разновидность XML. Разновидности XML (словари XML) могут
создаваться по мере необходимости, что и оправдывает определение XML как
метаязыка.
Средствами
языка
XML
являются
элементы,
атрибуты,
сущности,
комментарии, команды [67].
Объявление элемента, выполняемое в DTD, представляет собой строку
следующего вида:
<!ELEMENT имя содержание>
где имя - имя элемента, содержание - параметр, который может быть
описанием вложенных элементов, фразой (#PCDATA), словами EMPTY или
ANY.
Описание вложенных элементов отражает иерархическое построение документа
и представляет собой перечисление имен частей (элементов, вложенных в
данный элемент) в круглых скобках через запятую. Необязательные элементы
помечаются знаком «?». Знак «+» после имени элемента означает, что элемент
может повторяться один или более раз, а знак «*» после закрывающей скобки
показывает, что элементы всего списка могут не повторяться в документе ни
разу, либо повторяться один или более раз. Например, данный элемент
соответствует главе текста, а элементы, указанные в его содержании, вложенным в главу параграфам.
Фраза (#PCDATA), где PCDATA - аббревиатура слов parseable character data,
указывает на наличие текстового содержимого контейнера. Могут быть
альтернативные
варианты
описания
содержания
(несколько
списков
вложенных элементов и указатель PCDATA), их нужно отделять друг от друга
вертикальной чертой (символом « | »).
Слово EMPTY записывается в строках бесконтейнерных элементов, а слово
ANY означает, что элемент может иметь любой из перечисленных выше типов
содержания.
Для элементов в DTD могут быть указаны атрибуты (параметры) с помощью
объявления:
<!ATTLIST имя атрибут (список значений) "значение по умолчанию" >
где имя - имя элемента, атрибут - имя параметра, список значений - список
возможных значений параметра, разделенных вертикальной чертой (« | »),
значение по умолчанию - значение параметра по умолчанию.
Вместо (список значений) может быть указан тип атрибута. Используются
следующие типы: CDATA (любые символьные данные); ID (уникальный
идентификатор); DDREF (или EDREFS) - указатель на то, что значением
атрибута должен быть идентификатор, определенный в этом документе;
ENTITY (или ENTITIES) -указатель на то, что значением атрибута должен
быть псевдоним части документа, определенный с помощью сущности
ENTITY; NMTOKEN (NMTOKENS) - указатель на то, что содержимым может
быть только одно отдельное слово, т.е. этот тип является ограниченным
вариантом CDATA.
Атрибут может быть обязательным или необязательным, что указывается
словами соответственно #REQUIRED или #IMPLIED вместо значение по
умолчанию.
В объявлении может быть представлено более одного параметра, т.е. часть
вида атрибут (список значений) "значение по умолчанию" будет повторяться
многократно.
Сущности ENTITY используются для задания в DTD имен (псевдонимов)
блокам данных, что позволяет в документе лаконично ссылаться на эти
данные. Блок данных может быть внешним файлом, и тогда ссылка есть
указание адреса файла. Блок данных может быть фразой, непосредственно
записываемой в объявлении:
<!ENTITY псевдоним "фраза" >
В частности, такие символы, как «<» , «>», «&» и некоторые другие, нельзя
использовать в документе иначе, чем в тегах, и их нужно заменять
псевдонимами. Используются пять стандартных псевдонимов: &lt - для символа
«<», &gt - для символа «>», &аmр - для символа «&», &apos - для символа
апострофа, &quot - для символа двойной кавычки.
Блок данных может быть списком атрибутов, который используется в DTD
многократно. Его целесообразно заменить псевдонимом, перед которым нужно
записать символ «%»:
<!ENTITY % имя перечня 'список атрибутов' >
где список атрибутов записывается по тем же правилам, что и в объявлении
ATTLIST.
Комментарий - произвольный текст, записываемый между символами «<!-» и
« ->».
Команда записывается между символами «<?» и «?>». Команды являются
указателями XML-процессору на выполнение определенных действий по
обработке данных.
В XML-документе элементы описываются в соответствии с DTD.
Как сказано выше, документ начинается с заголовка, он включает следующие
предложения:
<?xml version= "номер версии" дополнения ?>
<!DOCTYPE имя документа SYSTEM "имя файла" >
В дополнениях (или в отдельной команде) может быть указана используемая
кодировка, например, encoding = "ISO 8859-1’, указание на использование только
внутренней DTD (тогда в дополнении записывается standalone = "yes", иначе
standalone = "no"). Имя файла - это имя файла, в котором находится DTD. Но
DTD может быть полностью или частично заключена в квадратные скобки и
помещена непосредственно в объявление DOCTYPE.
Форматирование документа может осуществляться с помощью каскадных
таблиц стилей CSS или языка XSL.
Таблица CSS состоит из правил форматирования. В каждом правиле
указываются имя элемента, к которому относится форматирование, и список
объявлений. Список обрамляется фигурными скобками, объявления в списке
разделяются точками с запятой. Каждое объявление задает значение одного из
свойств отображения элемента в виде свойство: значение. К свойствам относятся
размер шрифта, его цвет, стиль и другие характеристики, обычные для
управления видом изображения в текстовых редакторах.
Указания по форматированию, выраженные средствами языка XSL, составляют
XSL-таблицу, с помощью которой XML-документ преобразуется в HTML-страницу,
отображаемую браузером. Использование XSL обеспечивает ряд преимуществ по
сравнению с применением CSS. Во-первых, последовательность отображения
элементов на экране монитора задает XSL-таблица, поэтому, изменяя XSLтаблицу, можно один и тот же документ изображать по-разному в соответствии с
потребностями конкретной ситуации. Во-вторых, появляется возможность
сортировать и фильтровать элементы документа при его выводе на экран.
В XSL шаблоны, по которым браузер определяет отображение элементов
документа на экране, обрамляются выделенными для этого тегами, например
<xsl:template> и </xsl:template >, и содержат правила, где указываются имена
элементов, к которым правило относится, и задаются инструкции отображения,
например аналогичные принятым в языке HTML.
Таблица стилей помещается в отдельный файл, ссылка на который обычно
включается в заголовок XML-документа и имеет вид
<?xml-stylesheet type= "text/css" href = путь к файлу?>
В случае XSL форма ссылки аналогичная, лишь css в параметре type заменяется
на xsl.
В XML расширены возможности гиперсвязей. Механизм связей в XML изложен
в спецификациях XLink и XPointer, находящихся в стадии разработки. Первая из
них посвящена связям между документами, а вторая - связям внутри документа.
Простая связь аналогична href-ссылке в HTML. Но возможны также связи многонаправленные,
связи,
которые
не
заменяют
на
экране
монитора
просматриваемый документ данными из вызванного ресурса, а помещают эти
данные в дополнительное окно или встраивают их в исходный документ. Ссылки в
виде атрибутов включаются в соответствующие элементы, например в элемент
topic:
<topic href= «url»>...</topic>
где url (unified resource locator) - указатель на ресурс.
Пример записи элементов XML-документа:
<?xmlversion="1.0"?>
<!DOCTYPE networks [
<!ELEMENTitem(featuresjdescription|examples)>
<!ELEMENT features EMPTY>
<!ATTLIST features type (Ethernet|TR|FDDI|other) «Ethernet» >
<!ATTLIST features topology (bus|ring|star) «bus» >
<!ELEMENT description (#PCDATA)>
<!ELEMENT examples (#PCDATA)>
<!ENTITY LAN "Local Area Network" >
<item>
<features type = TR' topology = 'ring’ />
<description>ThisisLAN</description>
<examples> Protocol is IEEE 802.5
</examples>
</item>
Программная поддержка языка XML обеспечивается XML-процессорами. В
состав XML-процессора входит синтаксический анализатор, который проверяет
правильность соблюдения правил языка, но не производит форматирования. Дня
форматирования документа используется другая компонента XML-процессора,
поддерживающая каскадные таблицы стилей или язык форматирования XSL.
К функциям программного обеспечения, поддерживающего XML, кроме
синтаксического анализа и визуализации относятся поиск заданных фрагментов,
создание, удаление, модификация элементов в XML- документе. Для поддержки
этих функций в рабочей группе W3C, занимающейся вопросами Web-технологий,
разрабатывается объектная модель HTML- и XML-документов DOM (Document
Object Model), предназначенная для создания прикладного интерфейса API
(Application Program Interface) к XML- документам.
Download