Язык разметки. Смотреть что такое "Язык разметки" в других словарях

(Standard Generalized Markup Language), представленный в стандарте ISO 8879. Этот язык принят в качестве основного языка оформления технической документации, в том числе интерактивных электронных технических руководств на создаваемые изделия в CALS-технологиях .

В языке SGML определяется структура документов в виде последовательности объектов данных. Объекты данных, представляющие части документа, могут храниться в различных файлах. Стандарт SGML устанавливает такие множества символов и правил для представления информации, которые позволяют различным системам правильно распознавать и идентифицировать эту информацию. Названные множества описывают в отдельной части документа, называемой декларацией DTD (Document Type Decfinition), которую передают вместе с основным SGML-документом. В DTD указывают соответствие символов и их кодов, максимальные длины используемых идентификаторов, способ представления ограничителей для тегов, другие возможные соглашения, синтаксис DTD, а также тип и версию документа. Следовательно, SGML можно назвать метаязыком для семейства конкретных языков разметки. В частности, подмножествами SGML можно считать языки разметки XML и HTML .

Техническое описание в виде SGML-документа включает:

  • основной файл с техническим руководством, размеченный SGML-тегами;
  • описание сущностей , если документ относится к группе, в которой используются одни и те же сущности и подразумевается их известность;
  • словарь для пояснения SGML-тегов;

Однако язык SGML сложен для освоения и применения. Поэтому для широкого применения разметки в документах, представляемых в WWW -технологиях, в 1991 г. на базе SGML был разработан упрощенный язык HTML (HyperText Markup Language), а в 1996 г. язык XML (eXtensible Markup Language), который становится в сочетании с HTML основным языком представления документов в различных приложениях.

Язык HTML разработан с целью широкого применения разметки в документах, представляемых в WWW-технологиях.

Описание на языке HTML представляет собой текст в формате ASCII и последовательность включенных в него команд (управляющих кодов), называемых также дескрипторами или тегами. Этот текст называют HTML-документом, или HTML-страницей, или после размещения на Web-сервере — Web-страницей . Теги расставляются в нужных местах исходного текста, они определяют шрифты, переносы, появление графических изображений, ссылки и т.п. При использовании WWW-редакторов вставка команд осуществляется простым нажатием соответствующих клавиш.

Язык XML, как и HTML, считается подмножеством языка SGML. В настоящее время язык XML претендует на роль основного языка представления документов в информационных технологиях, его можно рассматривать как метаязык, служащий основой для создания частных языков разметки в различных приложениях. При этом XML более удобен, чем SGML, что обеспечивается устранением в XML некоторых второстепенных особенностей SGML. Описания на XML легче воспринимаются, приспособлены для использования в современных браузерах при сохранении основных возможностей SGML.

Для конкретных приложений создаются свои варианты XML, называемые XML-словарями или XML-приложениями. Так, для описания текстов со специфической математической символикой разработано XML-приложение OSD (Open Software Description). Для CALS интерес представляет вариант Product Definition eXchange (PDX), посвященный обмену данными. Известны словари для химии (CML — Chemical Markup Language), биологии (BSML — Bioinformatic Sequence Markup Language) и др.

Облегчённые языки разметки

Языки, предназначенные для простого и быстрого написания текста в простом текстовом редакторе, называются облегчёнными (en:Lightweight markup language). Особенности таких языков:

  • Минимум функций.
  • Небольшой набор поддерживаемых тегов .
  • Легки в освоении.
  • Исходный текст на таком языке читается с такой же лёгкостью, как и готовый документ.

Применяются они там, где человеку приходится подготавливать текст в обычном текстовом редакторе (блоги , форумы , вики), либо там, где важно, чтобы пользователь с обычным текстовым редактором также мог прочитать текст. Вот несколько широко распространённых облегчённых языков разметки:

  • Вики-разметка (см. Википедия:Как править статьи)
  • Различные системы автодокументирования (например, Javadoc).
История

Термин «разметка» (markup) произошёл от словосочетания «marking up» (помечание , размечание - анг.) из традиционной издательской практики проставления специальных условных пометок на полях и в тексте рукописи или корректуры перед передачей её в печать. Таким образом «разметчики» (markup men) указывали гарнитуру, стиль и размер шрифта для каждой части текста. В наше время разметкой текста занимаются редакторы, корректоры, графические дизайнеры - и, конечно же, сами авторы.

GenCode

Идея использовать языки разметки в компьютерной обработке текстов, вероятнее всего, была впервые обнародована Вильямом Тьюнниклиффом (англ. William W. Tunnicliffe ) на конференции в 1967 году . Сам он именовал своё предложение «универсальным кодированием» (англ. «generic coding» ). В 1970-е годы Тьюнниклифф руководил разработкой стандарта GenCode для издательской индустрии и позже занял пост руководителя одного из комитетов Международной организации по стандартизации (ISO, англ. International Organization for Standartization ), создавшего SGML , первый описательный язык разметки. Брайан Рэйд (англ. Brian Reid ) в своей диссертации, которую он защитил в 1980 году в университете Карнеги (англ. Carnegie Mellon University ), в развитие предложенной концепции осуществил практическую реализацию описательной разметки.

Тем не менее, в настоящее время «отцом» языков разметки обычно называют исследователя IBM Чарльза Голдфарба (англ. Charles Goldfarb ). Основная концепция родилась у него в 1969 году , при работе над примитивной системой управления документами, предназначенной для адвокатских контор. В том же году он принял участие в создании языка IBM GML , который был впервые представлен в 1973 году .

Некоторые ранние реализации компьютерных языков разметки можно обнаружить в типографских утилитах UNIX , таких как troff и nroff . Они позволяют вставлять команды форматирования в текст документа для его форматирования согласно требованиям редактора.

Доступность издательского софта с функцией WYSIWYG (англ. «what you see is what you get» - «что увидишь, то и получишь») вытеснила большинство этих языков среди обычных пользователей, хотя серьезная издательская работа по-прежнему использует разметку для специфических не визуальных структур текста, а WYSIWYG-редакторы сейчас чаще всего сохраняют документы в форматах, основанных на языках разметки.

TeX

Другой важный издательский стандарт - это ТеХ , созданный и впоследствии улучшенный Дональдом Кнутом в 70е-80е года двадцатого столетия. ТеХ собрал воедино высокие возможности форматирования текста и описания шрифтов, в особенности для математических книг профессионального качества. Это потребовало от Кнута большого количества времени для изучения искусства набора текстов. Тем не менее, ТеХ пошел вниз по наклонной кривой, так что теперь он в основном используется в научном мире, где является стандартом де-факто во многих научных дисциплинах. Помимо Тех существует LaTeX , который представляет собой широко используемую описательную систему разметки на основе ТеХ .

Scribe, GML и SGML

Первым языком с четким и ясным различием между структурой и видом документа был Scribe , был создан и описан докторской диссертацией Брайана Рейда (Brian Reid) в 1980 году. Scribe был революционным в количестве способов обработки, не в последнюю очередь из-за введенной идеи стилей, отделенных от собственно текста и грамматики и управляющих использованием описательных элементов. Scribe оказал влияние на разработку языка GML (позже SGML), а так же он является прямым предком языков HTML и LaTeX .

В начале 80х идея, что разметка должна быть сфокусирована на структурных аспектах документа и должна оставить внешнее представление документа интерпретатору, привела к созданию SGML. Язык был разработан комитетом, возглавляемым Голдфарбом. Он объединил идеи со многих источников, включая Тьюнникоффликский проект, GenCode. Шэрон Адлер (Sharon Adler), Андерс Бергланд (Anders Berglund) и Джеймс А. Марк (James A.Marke) так же были ключевыми членами комитета SGML.

SGML точно определял синтаксис для включения разметки в текст, а так же отдельно описывал какие теги разрешены и где (DTD - Document Type Definition). Это давало возможность авторам создавать и использовать любую разметку, какую они захотят, выбирая теги для использования и давая им имена на нормальном языке. Таким образом, SGML следует считать мета-языком; множественные специальные языки разметок произошли от него. Поздние 80е были наиболее значимыми в появлении новых языков разметок, основанных на SGML, например TEI и DocBook .

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

HTML

К 1991 году использование SGML было ограничено бизнес-программами и базами данных, а WYSIWYG-инструменты (которые сохраняли документы в проприетарных бинарных форматах) использовались для остальных программ обработки документов. Ситуация изменилась, когда сэр Тим Бернерс-Ли , узнав о SGML от своего коллеги Андерса Бергланда (англ. Anders Berglund ) и других сотрудников в ЦЕРНе , использовал синтаксис SGML для создания HTML . Этот язык имел сходство с другими основанными на синтаксисе SGML языками разметки, однако начать его использование было гораздо проще даже тем разработчикам, которые никогда этого не делали. Стивен ДеРоуз (Steven DeRose) убеждал, что HTML, использующий описательную разметку (и от языка SGML в частности) - это основной фактор в развитии Web, потому что в нем была заложена гибкость и расширяемость (а также другие факторы, включая понятие о URL и свободное использование браузерами). В наше время HTML - наиболее привлекательный и самый часто используемый язык разметки в мире.

Однако статус HTML как языка разметки оспаривается некоторыми компьютерными учеными. Их основным аргументом является то, что HTML ограничивает размещение тегов, требуя, чтобы оба тега были вложены в другие теги или в главные теги документа. Вследствие чего, эти ученые считают HTML контейнерным языком, следующим иерархической модели.

XML

XML (расширяемый язык разметки) - это мета-язык разметки, широко используемый в настоящее время. XML разработан консорциумом World Wibe Web в комитете, возглавляемом Джоном Босаком (Jon Bosak). Основное предназначение XML - быть более простым, чем SGML и сфокусироваться на специфичной проблеме - документах в интернете. XML - мета-язык как SGML, пользователям разрешается создавать любые теги, какие необходимы (отсюда «расширяемый»). Становлению XML помогли, т. к. каждый XML-документ мог быть написан таким же способом, как и SGML-документ, а программы и пользователи, использующие SGML, могли перейти на XML достаточно легко.

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

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

XHTML

Начиная с января 2000 года, все рекомендации для W3C были основаны на XML в большей степени, чем на SGML, была предложена аббревиатура XHTML (Extensible HyperText Markup Languge - Расширяемый Гипертекстовый Язык Разметки). Спецификации языка требовали, чтобы XHTML-документы были оформлены как XML-документы, это позволяет использовать XHTML для более четких и точных документов, используя теги от HTML.

Одно из самых достойных внимания различий между HTML и XHTML - это правило, гласящее что все теги должны быть закрытыми: пустые теги, например , должны быть оба закрыты стандартным закрывающим тегом или специальной записью: (пробел перед «/» в закрывающем теге опцинален, но часто используется, поскольку его используют некоторые пре-XML браузеры, также SGML-парсеры). Другие атрибуты в тегах должны быть в кавычках. Наконец, все теги и имена атрибутов должны быть написаны в нижнем регистре, чтобы восприниматься правильно; HTML невосприимчив к регистру.

Другие разработки, основанные на XML

Сейчас используются многие разработки, основанные на XML, например RDF (Resource Descriprtion Framework - Фреймворк Описания Ресурсов), XFORMS, DocBook, SOAP и OWL (Ontology Web Language).

Особенности

Общая особенность всех языков разметки в том, что они перемешивают текст документа с инструкциями разметки в потоке данных или файле. Это не необходимость, возможно изолировать разметку от текста, используя указатели, метки, идентификаторы или другие методы координации. Такая «отделенная разметка» характерна для внутреннего представления программ, работающих с размеченными документами. Тем не менее, внедренная или «междустрочная» разметка более принята где бы то ни было. Вот, для примера, небольшая часть текста, размеченного при помощи HTML:

Anatidae

The family Anatidae includes ducks, geese, and swans, but not the closely-related screamers.

Код разметочных инструкций (известный как теги) обведен угловыми скобками . Текст, находящийся между этими инструкциями, является текстом документа. Коды h1 , p и em - примеры структурной разметки, они описывают позицию, назначение или значение текста, включенного в них.

Более точно, h1 означает «это заголовок первого уровня», p значит «это параграф», а em означает «это подчеркнутое слово или фраза». Интерпретирующая программа может применять эти правила или стили для показа различных частей текста, используя различные гарнитуры, размеры шрифта, отступы, цвет или другие стили, если это необходимо. Такой тег, как h1, может быть, например, представлен большим жирным типографским шрифтом, или в документе с моноширинным текстом (как на печатной машинке) может быть подчеркнутым, или может вообще не менять внешний вид.

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

TEI (Tex Encoding Initiative) опубликовала всесторонние руководящие документы, указывающие кодировать текст в интересах человечества и научных обществ. Эти руководства использовались для кодирования исторических документов, специфичных работах ученых, периодике и так далее.

Альтернативное использование

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

Использование языка XHTML также показывает, что его можно комбинировать с различными языками разметки одного профиля, например XHTML+SMIL или XHTML+MathML+SVG.

markup languages) - это набор специальных инструкций, называемых тэгами, предназначенных для формирования в документах какой-либо структуры и определения отношений между различными элементами этой структуры. Другими словами разметка показывает, какая часть документа является заголовком, какая подзаголовком, что следует считать именем автора и т. д. Разметка разделяется на стилистическую разметку, структурную и семантическую. Стилистическая разметка

Стилистическая разметка отвечает за внешний вид документа. Например, в HTML к данному типу разметки относятся такие теги как (курсив), (жирный), (подчеркивание), (перечеркнутый текст) и т.д.

Структурная разметка

Структурная разметка задает структуру документа. В HTML за данный тип разметки отвечают, например, теги (параграф), (заглавие), (секция) и т.д.

Семантическая разметка

Семантическая разметка информирует о содержании данных. Примерами данного типа разметки являются теги (имя документа), (код, используется для листингов кода), (переменная), (адрес автора).

Основными понятиями любого языка разметки являются теги, элементы и атрибуты.

Тэги и элементы.

Значения понятий тэги и элементы часто путают.

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

Элемент - это тэги в совокупности с их содержанием. Следующая конструкция является примером элемента:

Это текст выделен курсивом .

Элемент состоит из открывающего тега (в нашем примере это тег ), содержимого тега (в примере это текст "Это текст, выделен курсивом") и закрывающего тега( ), правда иногда в HTML, закрывающий тег можно опустить.

Атрибуты

Для того чтобы при определении элемента задать какие-либо параметры, уточняющие характеристики данного элемента используются атрибуты.

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

Любой тэг может иметь атрибут, если этот атрибут определен.

В случае использования атрибута элемент принимает следующую форму:

содержимое тега

Текст выравнивается по центру

В одном открывающемся теге может содержаться несколько атрибутов, например:

Указан размер и цвет текста

История развития языков разметки.

Понятие гипертекста было введено В.Бушем в 1945 году а, начиная с 60-х годов, стали появляться первые приложения, использующие гипертекстовые данные. Однако основное развитие данная технология получила, когда возникла реальная необходимость в механизме объединения множества информационных ресурсов, обеспечения возможности создания, просмотра нелинейного текста.

В 1986 году ISO был утвержден универсальный стандартизированный язык разметки (Standardized Generalized Markup Language). Этот язык предназначен для создания других языков разметки, он определяет допустимый набор тэгов, их атрибуты и внутреннюю структуру документа. Таким образом имеется возможность создавать свои собственные тэги, связанные с содержанием документа. Теперь становится очевидно, что такие документы трудно интерпретировать без определения языка разметки, которое хранится в определении типа документа (DTD - Document Type Definition ). В DTD сгруппированы все правила языка в стандарте SGML . Другими словами в DTD описывается связь тегов между собой и правила их применения. Причем для каждого класса документов определяется свой набор правил, описывающих грамматику соответствующего языка разметки. Таким образом, только при помощи DTD можно проверить правильность использования тегов а, следовательно, его нужно посылать вместе с SGML-документом или включать в документ.

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

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

Язык разметки HTML гораздо более простой и удобный, чем SGML , его инструкции в первую очередь предназначены для управления процессом вывода содержимого документа на экране. Язык HTML как способ разметки технических документов был создан Тимом Бернерсом-Ли ( Tim Berners-Lee) в 1991 году специально для научного сообщества. Первоначально он был всего лишь одним из SGML -приложений.

Не смотря на то, что единственное, что умеет HTML - классифицировать части документа и обеспечивать его правильное отображение в браузере, он является самым популярным языком разметки. Это связано с тем, что HTML достаточно легок для изучения. Все, что от вас требуется, - изучить команды HTML. DTD для HTML хранится в браузере. К тому же надо заметить, что HTML спроектирован для работы на самых разных платформах. Но у него есть ряд существенных ограничений:

  • HTML имеет фиксированный набор тэгов, и данный набор нельзя расширить или изменить;
  • теги языка HTML показывают только как должны быть представлены данные, то есть внешний вид документа. HTML не несет информации о значении содержания, заключенного в тэгах, структуре документа.
  • В начале февраля 1998 года международная организация W3C утвердила спецификацию "Extensible Markup Language (XML) 1.0", которая положила начало разработке множества новых языков разметки для передачи информации через Интернет на основе стандарта XML. По сути дела, это означало новый шаг в развитии языков гипертекстовой разметки. За четыре года своего существования XML не только привлек к себе довольно значительное внимание со стороны как обыкновенных пользователей, так и множества веб-дизайнеров, но и стал неотъемлемой чатью Интернета. Уже сегодня практически не существует серверов, которые в той или иной степени не использовали бы эту технологию как аналог HTML. Однако говорить о том, что XML именно сейчас становится основным способом трансляции гипертекста через глобальную сеть, пока еще по крайней мере преждевременно. Сам язык еще достаточно молод, и некоторые его элементы до сих пор находятся в стадии разработки. Пока что создан лишь общий каркас того, что, возможно, в будущем заменит Html, но в каком конкретно виде это будет - пока сказать невозможно.

    От начала

    В ноябре 1990 года, когда пользователи Интернета впервые услышали о новой технологии, название которой вполне легко смогло уместиться всего в три буквы, почти никто не мог представить себе, что пройдет совсем немного времени и технология эта станет практически единственным способом передачи информации в глобальной сети. Сегодня уже для многих неопытных пользователей слово Интернет прочно ассоциируется с WWW, хотя на самом деле вещи эти, конечно, друг с другом связанные, но все же немного разные.

    По большому счету, именно невероятная популярность World Wide Web и ее неотъемлемой части, HTML, безусловно, стала причиной крайне повышенного внимания к структурам гипертекстовой разметки документов.

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

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

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

    Наиболее популярный и известный на сегодняшний день язык гипертекстовой разметки - HTML, был создан специально для структурирования и передачи информации, находящейся в сети Интернет, и является, несомненно, ключевой составляющей технологии WWW. С использованием гипертекстовой модели документа способ представления разнообразных информационных ресурсов в сети стал более упорядочен, а пользователи получили удобный механизм поиска и просмотра нужной информации. Однако первой ласточкой в этом деле все же принято считать значительно более старый язык - SGML.

    SGML (Standard Generalized Markup Language) был официально принят в 1986 году в качестве международного стандарта (ISO 8879:1986) для описания независимых от устройств ввода/вывода и от вычислительной среды методов представления текстовой информации в электронной форме. Основой для его создания послужил довольно старый язык разметки GML(Generalized Markup Language), разработанный компанией IBM еще во времена первых персональных копьютеров. Если быть точным, то SGML - это метаязык, предназначенный для описания других языков разметки.

    Изначально слово разметка, как правило, использовалось для описаний аннотаций или других обозначений внутри текста, которые предназначались для указаний составителю документа или, как его иногда называют, "верстальщику" того, как именно конкретное место должно быть напечатано. Подобные способы могут включать в себя подчеркивание волнистой чертой, обозначающее курсив, какие-либо специальные значки для пропуска отдельных фраз или их печати конкретным шрифтом, и так далее. Когда с течением времени форматирование и печать стали автоматизированными, этот термин уже охватывал все виды специальных кодов разметки, которые вставлялись в электронные текстовые документы для управления форматированием, печатью либо другой обработкой.

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

    SGML, в отличие от всех других языков разметки, созданных на его основе, использует принцип так называемой описательной разметки вместо процедурной. Подобная система использует элементы разметки, которые попросту предоставляют названия для отнесения отдельных частей документа к определенным категориям. Другими словами, тэги, такие как Или \end{list}, просто идентифицируют порцию документа и утверждают, что "эта часть является параграфом" или что "эта часть является концом начатого списка", и т.п. Система же, использующая процедурную разметку (сюда попадают текстовые процессоры, например, Microsoft Word) определяет, какая непосредственно обработка будет выполняться в конкретной точке текстового документа: "в этом месте вызвать такую-то процедуру с параметрами 5, е и z" или "передвинуть границу документа на 7 мм правее относительно какого-либо элемента, пропустить одну строку начать следующую с красной строки" и т.д. В SGML инструкции, которые необходимы для обработки документа с определенной конкретной целью (например, для форматирования), четко отделяются от описательной разметки, которая встречается внутри документа. Обычно они собраны вне документа в отдельных процедурах или программах.

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

    SGML вводит также понятие типа документа, и, соответственно, способы его определения (document type definition, DTD). Документы считаются типизированными, так же как и другие обрабатываемые компьютерами объекты. Тип документа формально определяется его составными частями и их структурой. Скажем, можно определить тип документа таким образом, что он должен состоять из заголовка и, возможно, имени автора, за которыми следует аннотация и последовательность одного или более абзацев. Любой документ в отсутствие заголовка, в соответствии с этим формальным определением, не будет являться отчетом, так же как не будет им являться и последовательность абзацев, за которой следует аннотация, невзирая на то, насколько похож на отчет такой документ с точки зрения читателя-человека.

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

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

    Даже в проекте этот язык задумывался специально для реализации той модели передачи информации в глобальную сеть, которую мы имеем сейчас. Другими словами HTML - это порождение Интернета. Хотя, по сути дела, HTML является упрощенной версией стандартного общего языка разметки - SGML (Standart Generalised Markup Language), который был утвержден ISO в качестве стандарта еще в 80-х годах прошлого столетия. SGTML - это не язык в чистом виде, а скорее набор каких-то правил и описаний для создания других языков, он определяет допустимый набор тэгов, их атрибуты и внутреннюю структуру документа. Контроль за правильностью использования дескрипторов осуществляется при помощи специального набора правил, называемых DTD-описаниями, которые используются программой-интерпретатором клиента при разборе документа. Для каждого класса документов определяется свой набор правил, описывающих грамматику соответствующего языка разметки. С помощью SGML можно организовывать информацию, содержащуюся в документах, описывать структурированные данные, представлять эту информацию в некотором стандартизованном формате для последующего использования. Однако ввиду некоторой своей сложности, SGML использовался, в основном, для описания синтаксиса других языков (наиболее известным из которых является HTML), и немногие приложения работали с SGML-документами напрямую.

    HTML - язык значительно более удобный и простой в использовании, чем SGML. Он не позволяет определять дополнительные языки на своей основе. Использование HTML предполагает разметку документа по стандарту, который определяется довольно ограниченным набором инструкций или тэгов. Такие инструкции предназначаются, в первую очередь, для управления процессом вывода содержимого документа на экране программы-клиента и тем самым для определения способа представления документа, но не его целостной структуры. В большинстве случаев данные HTML представляются в обычном текстовом файле, который можно легко передавать по сети с использованием протокола http.

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

    rose,

    Программа просмотра будет знать, каким цветом отобразить текст, содержащийся внутри тэгов и, вероятнее всего, отобразит его правильно, но ей абсолютно безразлично, в каком месте документа встретился этот тэг, в какие другие тэги заключен текущий фрагмент, существуют ли вложенные в него фрагменты, правильно ли построены отношения между объектами. Такое "безразличие" к структуре документа приводит к тому, что поиск или анализ информации внутри него ничем не будет отличаться от работы со сплошным, не разбитым на элементы текстовым файлом. А это, как известно, не самый эффективный способ работы с информацией.

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

    Подводя итог всему сказанному, можно утверждать, что HTML уже сегодня не удовлетворяет в полной мере требованиям, предъявляемым современными разработчиками к языкам подобного рода. И ему на смену был предложен новый язык гипертекстовой разметки: мощный, гибкий, и, одновременно с этим, удобный язык XML.

    XML (Extensible Markup Language) - это язык разметки, описывающий целый класс объектов данных, называемых XML-документами. Этот язык используется в качестве средства для описания грамматики других языков и контроля за правильностью составления документов. Т.е. сам по себе XML не содержит никаких тэгов, предназначенных для разметки, он просто определяет порядок их создания. Таким образом, если, например, мы считаем, что для обозначения элемента rose в документе необходимо использовать тэг , то XML позволяет свободно использовать определяемый нами тэг, и мы можем включать в документ фрагменты, подобные следующему:

    rose

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

    rose

    Если мы хотим посадить туда еще несколько цветочков, то должны внести следующие изменения:

    rose

    tulip

    cactus

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

    Еще одним из очевидных достоинств XML является возможность использования его в качестве универсального языка запросов к хранилищам информации. Сегодня в глубинах W3C находится на рассмотрении рабочий вариант стандарта XML-QL(или XQL), который, возможно, в будущем составит серьезную конкуренцию SQL. Кроме того, XML-документы могут выступать в качестве уникального способа хранения данных, который включает в себя одновременно средства для разбора информации и представления ее на стороне клиента. В этой области одним из перспективных направлений является интеграция Java- и XML-технологий, позволяющая использовать мощь обеих технологий при построении машинно-независимых приложений, использующих, кроме того, универсальный формат данных при обмене информацией.

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

    Также одним из достоинств XML является то, что программы-обработчики XML-документов несложны, и уже сегодня свободно распространяются всевозможные программные продукты, предназначенные для работы с XML-документами. XML поддерживается сегодня во всех броузерах семейства Microsoft Internet Explorer, начиная с версии 4.0. Было заявлено о его поддержке в последующих версиях Netscape Communicator, СУБД Oracle, DB-2, в приложениях MS-Office. Все это дает основания предполагать, что, скорее всего, в ближайшем будущем XML станет основным языком обмена информации для информационных систем, заменив собой, тем самым, HTML. На основе XML уже сегодня созданы такие известные специализированные языки разметки, как SMIL, CDF, MathML, XSL, и список рабочих проектов новых языков, находящихся на рассмотрении W3C, постоянно пополняется.

    Как выглядит XML-документ?

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

    Структура документа

    Простейший XML-документ может выглядеть так, как это показано в Примере 1

    Первый

    Второй подпункт 1

    Третий

    Последний

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

    Тело документа XML состоит из элементов разметки (markup) и непосредственно содержимого документа - данных (content). XML-тэги предназначены для определения элементов документа, их атрибутов и других конструкций языка. Более подробно о типах применяемой в документах разметки мы поговорим чуть позже.

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

    Правила создания XML-документа

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

    В заголовке документа помещается объявление XML, в котором указывается язык разметки документа, номер его версии и дополнительная информация.

    Каждый открывающий тэг, определяющий некоторую область данных в документе обязательно должен иметь своего закрывающего "напарника", т.е., в отличие от HTML, нельзя опускать закрывающие тэги.

    В XML учитывается регистр символов.

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

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

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

    Если XML-документ не нарушает приведенные правила, то он называется формально-правильным и, все анализаторы, предназначенные для разбора XML-документов, смогут работать с ним корректно.

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

    Russia Novosibirsk

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

    На сегодняшний день существует два основных способа контроля правильности XML-документа: DTD-определения(Document Type Definition) и схемы данных(Semantic Schema). Более подробно об использовании DTD и схемах мы поговорим в следующий раз. В отличие от SGML, определение DTD-правил в XML не является необходимостью, и это обстоятельство позволяет нам создавать любые XML-документы, не ломая пока голову над весьма непростым синтаксисом DTD.

    Основной принцип

    Элемент - это основная структурная единица XML-документа. Заключая слово rose в в тэги , мы определяем непустой элемент, называемый , содержимым которого является rose. В общем случае в качестве содержимого элементов могут выступать как просто какой-то текст, так и другие, вложенные, элементы документа, секции CDATA, инструкции по обработке, комментарии, - т.е. практически любые части XML- документа.

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

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

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

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

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

    Заключение

    Язык форматирования Web-страниц HTML изначально вводился как приложение SGML. Позже, с бурным развитием WWW, HTML начал всячески расширяться с целью дать автору больший контроль над внешним представлением информации. Новые элементы и атрибуты, такие как или , ориентировались на визуальное форматирование. Появились и стали активно использоваться средства, не входящие собственно в язык разметки: imagemaps, Java и JavaScript, plugins, и прочее. Много появилось также элементов HTML, поддерживаемых только определенным броузером, или по-разному работающих в разных броузерах. Поэтому сейчас уже сложно утверждать, является ли HTML приложением SGML или нет. Очень немногие страницы создаются в соответствии со спецификациями на HTML и соответствующими DTD.

    Эту проблему отчасти призваны облегчить каскадируемые стили, стандарт на которые принят W3-консорциумом. CSS1 отделяет стиль, задающий визуальное представление элементов, от разметки элементов.

    Большой интерес представляет язык XML, предположительно идущий на смену HTML в качестве языка разметки Web-cтраниц. Это - вариант SGML, ориентированный в первую очередь на применение на WWW. Он не требует обязательного наличия DTD, упрощен и сам язык за счет редко используемых сложных конструкций. Это позволит сделать простыми анализаторы, что сделает возможным активное применение XML в броузерах. (Вероятность чего довольно велика, учитывая реверансы обоих основных игроков на поле броузеров в сторону XML).


    ВЕРСИЯ ДЛЯ ПЕЧАТИ>>
    Статья прочитана :раз.

    Термин «разметка» происходит от традиционной практики разметки рукописей перед публикацией (то есть добавления символических команд на полях и между строк в бумажной рукописи).

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

    Язык разметки - это набор специальных инструкций, называемых тегами (tags), выполняющих следующие функции:

        задание функций обработки выделенных элементов;

        выделение логических элементов данного документа.

    Задание функций обработки выделенных элементов

    В текстовых процессорах существуют встроенные команды включения/выключения шрифтов и другое, аналогичные командам управления размещением информации на экране или при печати. Такой подход называется командной илипроцедурной разметкой .

    Примеры процедурной разметки

    Выделение логических элементов документа

    Служит для формирования в документах какой-либо структуры и определения отношений между различными элементами этой структуры без указания способа обработки. Такая разметка называется описательной.

    Изменяя набор процедур, соответствующий описательной разметке, можно изменить внешнее представление одного и того же документа.

    Описательная разметка

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

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

    Примеры языков разметки

    Языки разметки используются везде, где требуется вывод форматированного текста:

      в типографии (SGML,TeX,PostScript,PDF),

      пользовательских интерфейсах компьютеров (MicrosoftWord,OpenOffice,troff),

      Всемирной Сети (HTML,XHTML,XML,WML,VML,PGML,SVG,XBRL).

    Теговая структура языка разметки

    Развитие идей описательной разметки привело к определению разметки как формального языка.

    Теги языка (управляющие дескрипторы) определенным образом кодируются (выделяются относительно основного содержимого документа) и служат в качестве инструкций для программы, производящей показ содержимого документа на стороне клиента.

    Во многих современных языках для обозначения этих команд (теги языка) использовались символы < и >, внутри которых помещались названия инструкций и их параметры (HTML и XML). В SGML можно назначать другие символы для обрамления тега (например, фигурные скобки). Кроме того, существуют разные системы языков-подмножеств, которые используются, с меньшими возможностями, например на веб-форумах и досках объявлений используется язык разметки BBCode, теги которого ограничиваются символами квадратных скобок: .

    Теговая модель описывает документ как совокупность контейнеров, каждый из которых начинается и заканчивается тегами. В большинстве случаев теги используются парами. Пара состоит из открывающего (start tag) и закрывающего (end tag) тегов.

    Синтаксис открывающего тега:

    Имя закрывающего тега отличается от имени открывающего лишь тем, что перед ним ставится наклонная черта:

    Атрибуты определяют дополнительные характеристики элемента. Атрибуты тега записываются в следующем формате: имя[="значение"]. Для некоторых атрибутов значение может не указываться. У закрывающего тега атрибутов не бывает.

    Действие любого парного тега начинается с открывающего тега и заканчивается при встрече соответствующего закрывающего тега.

    Пару, состоящую из открывающего и закрывающего тегов, называют контейнером, а часть текста между ними, - элементом.

    Заголовок 1 уровня

    Заголовок 2 уровня

    В зависимости от используемого языка разметки дополнительно возможно применение одиночного тега и тега пустого элемента. Имя тега определяет тип элемента.

    Синтаксис одиночного тега:

    В некоторых языках разметки имена тегов заранее определены (HTML). В других не регламентируются жестко, т.е. пользователи могут вводить и использовать новые теги (XML). Например, тег «persona» можем определить тип этого XML элемента, как фамилия имя и отчество. Иванов Иван Иванович

    В SGML элементы могут пересекаться, то есть в SGML возможна такая последовательность тегов:

    В XML элементы имеют строгую синтаксическую структуру, то есть быть строго вложенными друг в друга и всегда закрываться:

    Кроме того, в SGML, HTML они не обязаны быть закрытыми:

    Практически во всех языках разметки документов значение атрибута интерпретируется как текстовое. Значение атрибута принято брать в кавычки.

    Примечание:

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

    Т.е. документ представляет собой не что иное, как обычный АSСII-файл, с добавленными в него управляющими кодами (тегами).

    Понравилась статья? Поделиться с друзьями: