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) — это механизм для замены фрагментов текста или символов. Они могут использоваться для вставки специальных символов (например, & для амперсанда) или для включения повторяющихся блоков текста.
Минимизация
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 →