Открыть сервис

ISO 8879

ISO 8879 — это международный стандарт, определяющий язык обобщённой разметки (SGML, Standard Generalized Markup Language), предназначенный для логической структуризации и описания содержимого электронных документов. Стандарт был разработан Техническим комитетом ISO/IEC JTC 1 и впервые опубликован в 1986 году. SGML является метаязыком, то есть языком для создания других языков разметки, и лёг в основу таких широко известных форматов, как HTML и XML.

История

Разработка SGML началась в конце 1960-х годов в США как ответ на потребность в универсальном способе обмена документами между различными компьютерными системами. Основой послужил язык GML (Generalized Markup Language), созданный в компании IBM Чарльзом Голдфарбом, Эдвардом Мошером и Раймондом Лори. GML позволял описывать структуру документа (заголовки, абзацы, списки) с помощью специальных тегов, отделяя логическое содержание от визуального форматирования.

В 1978 году Американский национальный институт стандартов (ANSI) начал работу над стандартизацией этого подхода, что привело к созданию проекта, получившего название SGML. В 1986 году Международная организация по стандартизации (ISO) приняла его как международный стандарт ISO 8879:1986. Позднее стандарт пересматривался и дополнялся, в частности, были выпущены версии 1996 и 1999 годов.

Основные принципы и понятия

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

DTD (Document Type Definition)

Ключевым элементом SGML является Определение типа документа (DTD). DTD — это формальное описание правил, по которым строится документ. Он определяет:

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

DTD обеспечивает строгую валидацию: документ может быть проверен на соответствие своему DTD, что гарантирует его структурную правильность.

Элементы и атрибуты

Элемент — это основная структурная единица SGML-документа. Он обозначается начальным и конечным тегами. Например, абзац может быть обозначен как <p>Текст абзаца</p>. Атрибуты задают дополнительные свойства элемента, например, <p type="note">Примечание</p>.

Сущности

Сущности (entities) — это механизм для замены фрагментов текста или символов. Они могут использоваться для вставки специальных символов (например, &amp; для амперсанда) или для включения повторяющихся блоков текста.

Минимизация

SGML допускает ряд правил минимизации, которые позволяют опускать некоторые теги, если это не нарушает структуру документа. Например, в HTML, основанном на SGML, можно опускать закрывающие теги для некоторых элементов (например, <p>).

Применение

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

Издательское дело и техническая документация

SGML активно использовался в издательской индустрии для создания сложных документов, таких как технические руководства, энциклопедии, юридические тексты и авиационные мануалы. Крупные организации, такие как Министерство обороны США (стандарт CALS) и Авиационная ассоциация (ATA), приняли SGML в качестве стандарта для технической документации.

Электронные архивы

SGML применялся для создания долговременных цифровых архивов, где важна не только сохранность содержимого, но и его структура. Например, проект «Текстовая корпус» (Text Encoding Initiative, TEI) использует SGML для кодировки литературных и исторических текстов.

Влияние на HTML и XML

Наиболее известное применение SGML — это язык HTML (HyperText Markup Language), который изначально был разработан как приложение SGML для веб-страниц. Однако HTML не требовал строгого соблюдения DTD, что привело к появлению «невалидного» HTML.

В 1998 году Консорциум Всемирной паутины (W3C) выпустил XML (Extensible Markup Language) — упрощённый профиль SGML, который лишён многих сложных правил минимизации и предназначен для использования в вебе и обмена данными. XML стал основой для множества современных форматов, таких как RSS, SVG, XHTML и ODF.

Критика и ограничения

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

  • Сложность. Полный стандарт SGML был очень объёмным и сложным для реализации. Парсеры SGML были громоздкими и требовали больших вычислительных ресурсов.
  • Слабая поддержка в вебе. В отличие от HTML, SGML не был оптимизирован для быстрой загрузки и отображения в браузерах.
  • Отсутствие строгой валидации в HTML. Из-за того, что HTML не требовал обязательного DTD, многие веб-страницы были невалидными, что затрудняло их обработку автоматическими системами.

Эти ограничения привели к тому, что XML, будучи более простым и гибким, практически вытеснил SGML из большинства сфер применения, особенно в вебе. Однако SGML остаётся важным историческим этапом в развитии языков разметки и продолжает использоваться в некоторых специализированных областях, где требуется максимальная строгость и гибкость.

Статус стандарта

Стандарт ISO 8879 был пересмотрен в 1996 и 1999 годах. В 2008 году ISO объявила о прекращении активной поддержки SGML, сосредоточившись на XML и связанных с ним стандартах. Тем не менее, SGML остаётся действующим стандартом и может использоваться в тех системах, где он уже внедрён.

Источники

  • ISO 8879:1986. Information processing — Text and office systems — Standard Generalized Markup Language (SGML).
  • ISO 8879:1996. Information technology — SGML — Standard Generalized Markup Language.
  • Goldfarb, C. F. (1990). The SGML Handbook. Oxford University Press.
  • Bray, T., et al. (1998). Extensible Markup Language (XML) 1.0. W3C Recommendation.
  • Спецификация HTML 4.01. W3C Recommendation.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →