Иногда можно услышать о "программировании" Web-страницы, однако форматирование текста в окне броузера фактически не относится к программированию. Как следует из названий языков форматирования, они относятся к языкам разметки (markup languages). Иными словами, они состоят из различных символов, вставленных в тело документа, указывающих, как должен выглядеть файл при печати или отображении либо для определения его логической структуры (например, абзацев и маркированных списков). Если не использовать язык разметки, отображаемые данные представляют собой неструктурированный текст (raw text), без форматирования символов или абзацев.
Языки разметки определяют внешний вид документа с помощью кодов, называемых дескрипторами или тегами (tags), которые имеют примерно такую форму: . Первый дескриптор указывает точку начала форматирования, а второй (с наклонной чертой) — окончание кода. Если опустить второй дескриптор, кодирование, задаваемое первым дескриптором, применяется до конца документа.

Примечание:
Язык разметки можно применить к неструктурированному тексту либо вручную, либо с помощью текстового редактора (например, Notepad), либо с помощью графического инструмента, добавляющего код, когда вы визуально упорядочиваете текст по собственному вкусу.
Новичкам проще работать с графическими инструментами, которые не так точны, как текстовые редакторы.

Язык разметки гипертекста (HTML)

Язык HTML (HyperText Markup Language — язык разметки гипертекста) — основа кодирования и "становой хребет" большинства Web-страниц. HTML позволяет публиковать текст и рисунки, содержимое электронных таблиц и даже создавать отчеты на основе баз данных для чтения в интерактивном режиме. Он прекрасно подходит для организации и форматирования статической информации любого типа, поскольку позволяет:

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

Примечание:
Метаданными (metadata) называют скрытые данные, которые не отображаются на Web-странице, однако могут быть обнаружены машиной поиска (engine search), что позволит попасть на данный узел.

Применяются дескрипторы HTML трех типов.

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

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

Динамический HTML (DHML)

Динамический HTML (Dynamic HTML — DHML) более гибок по сравнению с HTML.
Вместо того чтобы выставлять на всеобщее обозрение статичную Web-страницу, вы можете использовать DHTML и создать Web-страницу, которую пользователь сможет настраивать без нарушения вида исходного документа. Например, страница, подготовленная с помощью DHTML, может содержать различные элементы, которые пользователь сможет перемещать по странице, чтобы перегруппировать ее содержимое (по собственному вкусу). Однако при обновлении (refreshing) изображения на странице изменения пропадают, и она принимает исходный вид.
DHTML поддерживает следующие средства, отсутствующие в HTML.

● Динамические стили.
● Точное позиционирование.
● Привязку данных.
● Динамическое содержимое.

Вам непонятно, что это такое? Не беспокойтесь — ниже приведены пояснения.

Применение стилей к документам Web. Динамические стили (dynamic styles) основаны на принципах каскадирования таблиц стилей (CSS — cascading style sheets), когда они применяются к странице в целом вместо ручного форматирования отдельных частей страницы.
Если вы работали с современными текстовыми процессорами, то, возможно, знакомы с таблицами стилей (style sheets), позволяющими автоматически сформатировать текстовые блоки тем или иным методом в зависимости от стиля, который вы им задали. Форматирование подразумевает изменение цвета текста, шрифта, размещения, видимости - вообще практически всего, что относится к реквизитам текста. CSS (и DHTML), делает то же самое, только применяется для обработки Web-страниц, а не для текстов.
В динамических стилях, реализуемых с помощью DHTML, предусмотрены средства, отсутствующие в текстовых процессорах. Например, вы можете при создании ссылок разметить текст так, что его цвет будет автоматически изменяться при наведении на него указателя мыши либо отображаться, когда вы проводите курсор над определенной областью экрана.
Единственный недостаток этих стилей заключается в том, что вы должны включать таблицы стилей в большинство документов. Это трудоемкая работа, особенно для тех, кто неопытен в работе с таблицами стилей или занимается конвертированием документов.

Размещение текста в нужном месте. Еще одно достоинство DHML — его способность точно указать место размещения элемента на странице. Для указания положения объекта используют горизонтальную (х), вертикальную (у) и даже объемную (z) координаты. (Задание положения объекта в трехмерной системе координат позволяет "перекрывать" объекты.) Точное позиционирование позволяет расположить текст вокруг изображения, а также перемещать объекты в пределах окна броузера.

Примечание:
HTML без CSS не обеспечивает точного размещения объектов. В этом случае размещение элементов определяется броузером.

Вставка данных на страницу. Чтобы предоставить пользователям доступ к некоторой внутренней информации (back-end information), например, хранящейся в базе данных, обычные страницы HTML должны быть связаны с сервером, на котором находятся исходные данные, и требуется запрашивать разрешение на манипулирование этими данными. DHTML позволяет привязать данные к конкретной странице, допуская работу с привязанными (или точнее - связанными) данными (bound data) без нарушения исходных данных и даже без взаимодействия с сервером, хранящим их. Для этого источники данных вводят в страницу (их можно сортировать и фильтровать точно так же, как и содержимое любой базы данных). Это не только снижает загрузку сервера, но также позволяет пользователям просматривать и манипулировать данными без предоставления им доступа к источнику самих данных.

Создание динамического содержимого. Таблицы стилей (style sheets) дают возможность издателю (publisher) Web без труда изменять внешний вид страницы или набора страниц.
Динамическое содержимое позволяет пользователю Web изменять внешний вид (представление) страницы исполнением сценария, чтобы:

● вставлять или скрывать элементы страницы;
● модифицировать текст;
● изменять структуру текста;
● перемещать данные из внутренних источников (back-end sources) и отображать их по запросу пользователя.

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

Совет:
В разделе "Организация собраний" (см. выше) упомянута карта здания, созданная на основе Web-данных, отображающая расположение конкретного офиса и портрет служащего, которого пользователь пытается отыскать. Эта карта создана с помощью DHTML-средств языка разметки для создания динамического содержимого.

Расширяемый язык разметки (XML)

Язык XML (Extensible Markup Language - расширяемый язык разметки) не заменяет HTML (во всяком случае, он редко встречается на Web-страницах), однако поддерживает его, позволяя несколько повысить универсальность Web-страниц.
Идея такова: когда вы форматируете страницу с помощью HTML, то можете изменить внешний вид текста дескрипторами, форматирующими его полужирным шрифтом, курсивом, подчеркиванием, абзацами и т.д. Однако сами дескрипторы практически никак не связаны с содержимым текста, а только с его форматированием. Язык XML имеет дескрипторы, определяющие внешний вид текста. Вы можете с их помощью указать, что обозначает данный текст (имена, адреса, названия продуктов и т.д.).
Зачем это нужно? Прежде всего, эти метаданные позволяют машинам поиска найти предварительно заданные элементы. Если вы проведете в Web-узле вашей корпорации (созданном с помощью языка HTML) поиск по слову "name", просматривая все упомянутые в нем имена, то в результате возвратятся все экземпляры слова "name", но не сами имена. Однако если при создании узла использовалось кодирование с помощью языка XML, в результате будет возвращен любой текст, имеющий дескриптор имени "name". Во-вторых, снабженные дескриптором части текста могут быть полезны, если вам необходимо применить некое средство (например, цвет или язык) только к отдельным частям документа Web. Пусть, например, интерактивный документ представляет собой краткий рассказ на испанском языке с переводом на английский. Тогда вместо переключения документа с поддержки испанского языка на поддержку английского, можно определить эти части рассказа дескрипторами и применить правила испанского языка только к этим частям, а переводы оставить на английском.
По существу, применение языка XML значительно облегчает разработку Web-страницы, особенно если некоторые его части необходимо создать как изолированные элементы.

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

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

Термины на букву V
Virtual Machines — виртуальные машины. Программное обеспечение, имитирующее работу физического устройства. В Windows 98 оно используются, чтобы "обманным путем" заставить программу с...

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

Языки, предназначенные для простого и быстрого написания текста в простом текстовом редакторе, называются облегчёнными (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 - это правило, гласящее что все теги должны быть закрытыми: пустые теги, например <br />, должны быть оба закрыты стандартным закрывающим тегом или специальной записью: <br /> (пробел перед «/» в закрывающем теге опцинален, но часто используется, поскольку его используют некоторые пре-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.

В 1969 году три научных сотрудника компании IBM разработали GML, язык форматирования для публикации документов. GML - это не только аббревиатура от Generalized Markup Language, но также инициалы его создателей - Чарлз Гольдфарб, Эдвард Мошер и Реймонд Лорье.

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

Основные компоненты GML были реализованы в издательских системах для мэйнфреймов, и сам язык пользуется большой популярностью в отрасли. GML применяется в IBM, причем с его помощью создается более 90% документов компании.

За счет расширения GML такими концепциями, как короткие сноски, обработка ссылок и параллельные типы документов, был создан язык Standard Generalized Markup Language. SGML стал активно применяться в издательском бизнесе, к тому же был принят к использованию в Государственном издательстве США и в 1986 году получил статус международного стандарта.

Тем не менее SGML был малоизвестен до 1990 года, когда Тим Бернерc-Ли, автор идеи World Wide Web, создал Hypertext Markup Language, который является подмножеством SGML. Вскоре после этого все виды документов и данных в начале и в конце каждого текстового элемента стали содержать тэги в стиле и. В конце 1990-х годов появился Extensible Markup Language (XML)... и вселенная ИТ необратимо изменилась.

Фактически создается впечатление, что не проходит и дня без известия о создании или описании нового языка разметки. Действительно, Computerworld в разделе Quick Study опубликовал уже 10 статей, посвященных описанию различных языков разметок, и то лишь самых основных. Поиск в Google выражения markup language дает ссылки на более чем 6 млн. страниц. Ниже предлагается краткий «путеводитель» по современному «пространству языков разметки». Безусловно, он не претендует на полноту, но дает представление о гибкости и возможностях этой концепции, а также о том, как они используются. Большинство этих языков представляют собой расширения XML или определения типов документов, предназначенных для конкретной сферы деятельности, хотя некоторые из них достаточно сложны.

Языки

  • Business Process Execution Language (BPEL) предназначен для выполнения серий транзакций на базе Web и/или описания интерфейсов, которые необходимы для выполнения Web-транзакций. Он используется для моделирования бизнес-процессов с помощью спецификаций на транзакции и компенсационные транзакции, потоков данных, сообщений и запланированных событий, бизнес-правил, ролей защиты и обработки исключений.
  • Cell Markup Language (CellML) служит для хранения и обмена компьютерными математическими моделями, позволяя ученым обмениваться моделями даже в том случае, если они используют разное программное обеспечение для их создания. Этот язык также позволяет им повторно использовать компоненты в одной модели при разработке другой, тем самым ускоряя процесс. CellML включает в себя математические и метаданные за счет использования существующих языков, в том числе MathML. www.cellml.org
  • Chemical Markup Language (CML) - это новый подход к управлению молекулярной информацией, который использует недавно разработанные Internet-инструменты, такие как XML и Java. Данный язык, созданный строго на базе SGML, способен поддерживать крайне сложные информационные структуры и благодаря этому действовать как механизм обмена или средство архивирования. Он легко взаимодействует с современными архитектурами баз данных, в частности с реляционными или объектно-ориентированными. Самое важное, что уже создано огромное количество программного обеспечения XML общего назначения, предназначенного для его обработки и преобразования. www.xml-cml.org
  • DARPA Agent Markup Language (XML) имеет ограниченные возможности для описания взаимосвязей между объектами. DAML расширяет XML за счет использования онтологий - четко определенных формальных спецификаций, описывающих, как представить объекты, концепции и другие элементы в конкретной предметной области, а также взаимосвязи между ними. www.daml.org/about.html
  • Dynamic Markup Language (DML) - это язык, созданный на основе XML и предназначенный специально для объектных графических структур и разработки пользовательских интерфейсов. Как и HTML, этот язык включает в себя расширения, которые поддерживают вычисления, передачу аргументов и хранение переменных. www.rocklyte.com/dml
  • Directory Services Markup Language (DSML) определяет содержимое и структуру каталога, поддерживает его на распределенных каталогах. DSML дает разработчикам простой и удобный способ для реализации XML-приложений в Internet. Такая поддержка крайне важна для приложений электронной коммерции.
  • Financial Products Markup Language (FPML) - это стандарт на обмен бизнес-информацией при электронных торгах и обработке производных финансовых инструментов. Он устанавливает протокол обмена информацией в производных и структурированных продуктах и работы с ними. www.fpml.org/index.html
  • Hypertext Markup Language (HTML) , основа Web, создан на базе версии GML, которая ранее использовалась в CERN. Главное его достоинство заключалось в том, что он впервые позволил создавать простые гипертекстовые ссылки между документами. www.w3.org/MarkUp
  • Human Markup Language (HML) - это проект по созданию платформы для моделирования всего процесса человеческого общения, в том числе таких его сфер, как мышление, эмоции, поведение, мимика лица, с помощью графического или текстового представления. www.humanmarkup.org
  • Materials Markup Language (MatML) был разработан для обмена информацией о веществах. www.matml.org
  • Multimedia Retrieval Markup Language (MRML) унифицирует доступ к компонентам программного обеспечения, служащим для извлечения мультимедиа-информации и управления с целью расширения их возможностей. www.mrml.net
  • Physical Markup Language (PML) - это простой язык общего назначения для описания физических объектов и сред для промышленных, коммерческих и потребительских приложений. PML поддерживает такую модульность и гибкость, что его можно использовать при мониторинге и управлении физической средой. К числу приложений относится контроль состояния склада, автоматические транзакции, управление цепочкой поставки, машинный контроль и взаимодействие между объектами. http://web.mit.edu/mecheng/pml/index.htm
  • Security Assertion Markup Language (SAML) - это оболочка на базе XML, используемая для передачи информации об аутентификации пользователей, их правах и атрибутах. Он позволяет компаниям сообщать сведения относительно идентичности, атрибутов и прав субъекта (как правило, человека) иным субъектам, таким как партнерская компания или другое корпоративное приложение. www.oasis-open.org/committees/security/faq.php
  • Services Provisioning Markup Language (SPM) - это оболочка, служащая для обмена между приложениями и организациями информацией о пользователях, ресурсах и предоставлении услуг.
  • Speech Synthesis Markup Language (SSML) помогает при генерации искусственной речи в программном обеспечении Web и в других приложениях, предоставляя стандартный способ управления речевыми характеристиками, такими как произношение, сила, высота и скорость речи, на различных платформах. www.w3.org/TR/speech-synthesis
  • User Interface Markup Language (UIML) позволяет создавать пользовательские интерфейсы для любого устройства, языка и операционной системы на устройстве. Он описывает внешний вид интерфейса, взаимодействие пользователя с интерфейсом и то, каким образом интерфейс связан с логикой приложения. www.uiml.org
  • Voice Extensible Markup Language (VoiceXML). Приложения, управляемые голосовыми командами, становятся все популярнее, и VoiceXML описывает общие возможности, позволяя тем самым гарантировать переносимость между платформами. www.voicexml.org/
  • Wireless Markup Language (WML) описывает содержимое и форматы для представления данных на устройствах с ограниченной полосой пропускания, таких как сотовые телефоны и пейджеры. Вместо того чтобы пытаться передать все содержимое Web-страницы, которое можно увидеть на ПК, WML представляет главным образом текстовую информацию, оптимизированную для мобильных устройств.
  • Extensible Access Control Markup Language (XACML) - это схема на базе XML, которая была предназначена для создания правил и автоматизации их использования для контроля доступа к различным устройствам и приложениям в сети.
  • Extensible Markup Language (XML) объединяет масштабируемость SGML с простой и широкой поддержкой HTML. Представляя в основе своей подмножество SGML, он проще и легче в реализации, поддерживает большинство возможностей SGML. XML одобрен в качестве стандарта консорциумом World Wide Web Consortium в 1998 году.

ML - не значит «язык разметки»

Далеко не каждый язык или акроним, оканчивающийся на ML, является языком разметки. Вот наиболее известные исключения.

Первоначально символы ML использовались как сокращение слова «метаязык», то есть язык программирования общего назначения, предназначенный для крупных проектов. Сейчас используется два основных диалекта этого языка. Это Standard ML (SML; см. www.dcs.ed.ac.uk/home/stg/NOTES ), математически определенная версия языка, сформулированная частично разработчиками исходного языка, и Objective Caml (OCaml; см http://caml.inria.fr/ ), производная версия оригинального ML, к которой по желанию разработчика добавляются возможности, без их определения в стандарте. К другим известным диалектам относятся Extended ML (EML; см http://homepages.inf.ed.ac.uk/dts/eml ) и Alice ML (www.ps.uni-sb.de/alice ).

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

  • Unified Modeling Language (UML) - это стандартная нотация для моделирования объектов реального мира как части разработки методологии объектно-ориентированного проектирования. UML применяется для моделирования структуры приложений, их поведения и архитектуры, а также бизнес-процессов и структур данных. Этот язык поддерживают производители многих систем автоматизированного проектирования. UML был создан на основе методологий, которые также описывают процессы при разработке и использовании модели. www.uml.org
  • YAML Ain"t Markup Language (YAML) - это международный проект, посвященный созданию языка последовательного упорядочения данных, который, с одной стороны, понятен человеку, а с другой - поддерживает серьезные вычислительные возможности.

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

  • содержание;
  • структуру;
  • стиль.

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

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

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

Первым языком разметки является язык GML .Его непосредственным наследником стал язык SGML – стандартный обобщенный язык разметки, определяющий правила записи элементов разметки документа.

требования к языку разметки документов:

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

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

  • структуры документа;
  • дескрипторы или элементы и сопутствующие им атрибуты;
  • сущности (entities );
  • комментарии.

Документы SGML имеют древовидную структуру.

Дескрипторы в SGML размещаются в начале (открывающий дескриптор) и в конце (закрывающий дескриптор) каждого элемента (item ).

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

Языки обобщенной разметки, подобные SGML , допускают использование атрибутов, с которыми могут быть соотнесены до 15 различных типов значений, в том числе:

  • Ссылки на любые ресурсы, находящиеся вне документа, на которые обычно ссылаются как на сущности (entities ).
  • Уникальный идентификатор (ID ) элемента в документе.
  • Указатели идентификаторов (ID Pointers ), имеющие перекрестные ссылки для тех элементов, которые имеют ID , упомянутые в документе.
  • Обозначения или атрибуты элементов, которые определяют обозначения в содержании элемента.
  • Символьные данные (character data ), или CDATA , представляющие собой любые допустимые символы, которые не могут выступать в качестве значений атрибутов.

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

Для проверки соответствия документа разметке заданного типа используется специальные программы – анализаторы (parsers). Анализаторы являются либо отдельными программами, либо частью программы обработки документа SGML. Чтобы анализатор мог выполнить проверку документа, создается специальный документ, называемый определением типа документа

Язык HTML является приложением языка SGML для использования в Internet с фиксированной структурой, фиксированным набором элементов (дескрипторов) и их атрибутов, а также фиксированным набором сущностей. расширенный язык разметки XML (Extensible Markup Language ). Язык XML является подмножеством языка SGML , полностью совместимым с ним.

Язык XML обеспечивает широкий спектр функциональных возможностей, которые отсутствуют в HTML

4 . 3 .2. Версии и расширения HTML и XML

Первая версия языка гипертекстовой разметки – HTML (HyperText Markup Language), так же, как и сама технология Web, была разработана Тимом Бернерсом Ли в 1991 г. Язык HTML является реализаций правил языка SGML для типа документов, которые были названы документами HTML. Язык задает фиксированную структуру, фиксированный набор тегов и их атрибутов, а также фиксированный набор сущностей. Программы обработки документов HTML называются Web -браузерами . Результатом обработки документа является Web -страница , выводимая на экран дисплея.

В 1994 г. группа поддержки Интернет – IETF (Internet Engineering Task Force ) разработала спецификацию HTML 2.0, с которой началось широкое распространение языка HTML в сети Internet . В том же году был создан консорциум W3C (World Wide Web Corporation), объединивший 165 коммерческих и академических организаций, разработчиков и пользователей (с момента создания и по настоящее время эту организацию возглавляет Т.Б. Ли). Последняя версия спецификации HTML – HTML 4.01 была принята консорциумом в декабре 1999 г.

  • Язык XML обеспечивает широкий спектр функциональных возможностей, которые отсутствуют в HTML

Последняя версия спецификации языка XML – XML 1.1 была принята в апреле 2004 г.

На основе языка XML концерн W3C разработал дальнейшее развитие языка HTML – язык XHTML (Extended HTML – расширенный HTML). Первая версия этого языка – XHTML 1.0 была принята в январе 2000 г. Эта версия фактически представляет собой переформулирование HTML 4 как приложения XML 1.0. Предполагается, что дальнейшее развитие языка HTML будет осуществляться в соответствии со спецификациями XHTML.

Новая версия XHTML – XHTML 1.1 была принята консорциумом W3C в мае 2001 г. Эта рекомендация определяют новый тип документа – XHTML на основе модулей. Каждый модуль XHTML 1.1 содержит один или несколько элементов и/или атрибутов языка HTML.

В соответствии со спецификацией, документы XHTML 1.1 состоит из следующих групп модулей XHTML :

Модули ядра – это модули, наличие которых необходимо в любом типе документа, соответствующего спецификации XHTML (в эту группу входят модули Structure , Text , Hypertext и List ).

Модуль Applet , содержащий единственный элемент < applet > (этот элемент признан устаревшим и вместо него рекомендуется использовать элемент < object > ).

Модули текстовых расширений, в которых определены различные дополнительные модули текстовой разметки (в эту группу входят модули Presentation , Edit и Bi - directional Text ).

Модули форм (в эту группу входят модули Basic Forms и Forms ).

Модули таблиц (в эту группу входят модули Basic Tables и Tables ).

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

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

Модуль Object , предоставляющий поддержку включения объектов общего назначения.

Модуль Frames , предоставляющий элементы, относящиеся к фреймам.

URL (с помощью этого элемента вычисляются относительные URL документа).

Модуль Name Identification , используемый для идентификации определённых элементов в документах HTML.

Модуль Legacy , определяющий элементы и атрибуты, которые уже не рекомендовались в предыдущих версиях HTML и XHTML и не рекомендуются в дальнейшем.

4 . 3 .3. Типы структур HTML и XHTML

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

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

Определение HTML 4.0 Transitional DTD (переходное определение) включает все элементы, включенные в строгом DTD , а также отмененные элементы и атрибуты.

Определение HTML 4.0 Frameset DTD (определение для фреймов) включает, помимо элементов переходного DTD, фреймы.

Первая строка документа HTML , определенного в соответствии со спецификацией XHTML

Эта строка определяет используемую версию XML и кодировку символов документа. При кодировании символов в XML используется двухбайтовый код Unicode . В качестве значений параметра encoding наиболее часто используются кодировки UTF -8 , в котором значения первых 128 символов представляются в однобайтовой кодировке, символы наиболее распространенных языков (в том числе русского и украинского) – двумя байтами, а остальные символы тремя байтами. В кодировке UTF -16 все символы представляются двумя байтами (эти кодировку рекомендуется использовать для русских и украинских документов 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</country>

Для того чтобы обеспечить проверку корректности 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).


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