Стандартный обобщенный язык разметки - Википедия - Standard Generalized Markup Language

Стандартный обобщенный язык разметки
SGML.svg
Расширение имени файла
.sgml
Тип интернет-СМИ
приложение / sgml, текст / sgml
Единый идентификатор типа (UTI)public.xml[требуется разъяснение ]
РазработанISO
Тип форматаЯзык разметки
Расширен сGML
Расширен доHTML, XML
СтандартISO 8879

В Стандартный обобщенный язык разметки (SGML; ISO 8879: 1986) является стандартом для определения обобщенного языки разметки для документов. В приложении A.1 стандарта ISO 8879 говорится, что обобщенная разметка «основана на двух постулаты ":[1]

  • Декларативная: Разметка должна описывать структуру документа и другие атрибуты, а не указывать обработку, которую необходимо выполнить, потому что она менее вероятно противоречит будущим разработкам.
  • Строгий: чтобы позволить разметке использовать преимущества методов, доступных для обработки строго определенных объектов, таких как программы и базы данных.

DocBook SGML и LinuxDoc являются примерами, которые использовались почти исключительно с актуальными инструментами SGML.

Стандартные версии

SGML - это ISO стандарт: «ISO 8879: 1986 Обработка информации - Текстовые и офисные системы - Стандартный обобщенный язык разметки (SGML)», который существует в трех версиях:

  • Оригинал SGML, который был принят в октябре 1986 года, после чего было внесено небольшое техническое исправление.
  • SGML (ENR)в 1996 г., в результате технического исправления о добавлении расширенные правила именования разрешение разметки на произвольном языке и скрипте.
  • SGML (ENR + WWW или WebSGML)в 1998 г. в результате Техническое исправление для лучшей поддержки требований XML и WWW.

SGML является частью трио стандартов ISO для электронные документы разработан ISO / IEC JTC1 / SC34[1][2] (Объединенный технический комитет 1 ИСО / МЭК, Подкомитет 34 - Языки описания и обработки документов):

  • SGML (ISO 8879) - Обобщенный язык разметки
    • SGML был переработан в 1998 году в XML, успешный профиль SGML. Полный SGML редко встречается или используется в новых проектах.
  • DSSSL (ISO / IEC 10179) - Язык обработки документов и стиля на основе Схема.
    • DSSSL был переработан в[требуется разъяснение ] W3C XSLT и XSL-FO которые используют синтаксис XML. В настоящее время DSSSL редко используется в новых проектах, кроме Linux документация.
  • HyTime - Обобщенный гипертекст и планирование.[3]
    • HyTime был частично переработан в W3C XLink. HyTime редко используется в новых проектах.

SGML поддерживается различными техническими отчетами, в частности

  • ISO / IEC TR 9573 - Обработка информации - Средства поддержки SGML - Методы использования SGML[4]
    • Часть 13: Наборы публичных объектов для математики и естественных наук
      • В 2007 году рабочая группа W3C MathML согласилась взять на себя обслуживание этих наборов сущностей.

История

SGML произошел от IBM с Обобщенный язык разметки (GML), который Чарльз Гольдфарб, Эдвард Мошер и Раймонд Лори разработали в 1960-х годах. Гольдфарб, редактор международного стандарта, ввел термин «GML», используя инициалы их фамилий.[5] Гольдфарб также написал основательную работу по синтаксису SGML в «Руководстве по SGML».[6] Синтаксис SGML ближе к КАКАО формат.[требуется разъяснение ] Как язык разметки документов SGML изначально был разработан для обеспечения совместного использования машиночитаемый документы по крупным проектам в правительстве, юриспруденции и промышленности. Многие такие документы должны оставаться доступными для чтения в течение нескольких десятилетий - долгое время в информационные технологии поле. SGML также широко применялся в военной, аэрокосмической, технической и издательской отраслях. Появление XML Профиль сделал SGML пригодным для широкого применения в небольших масштабах общего назначения.

Фрагмент Оксфордский словарь английского языка (1985), показывая разметку SGML

Срок действия документа

SGML (ENR + WWW) определяет два типа действительности. В соответствии с пересмотренными терминами и определениями ISO 8879 (из общедоступного проекта[7]):

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

А действительный тип Документ SGML определяется стандартом как

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

А действительный тег Документ SGML определяется стандартом как

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

Терминология

Срок действия тега был введен в SGML (ENR + WWW) для поддержки XML который разрешает документы без объявления DOCTYPE, но которые можно анализировать без грамматики, или документы, содержащие объявление DOCTYPE, которое не делает Информационный набор XML вклады в документ. Стандарт называет это полностью отмечен. Хранится целиком отражает XML требование, чтобы элементы заканчивались в том же объекте, в котором они начинались. Без ссылок отражает HTML требование, чтобы ссылки на сущности были для специальных символов и не содержали разметки. Комментарий валидности SGML, особенно комментарий, сделанный до 1997 г. или не связанный с SGML (ENR + WWW), охватывает валидность типа Только.

Акцент SGML на валидности поддерживает требование обобщенной разметки, которая разметка должна быть строгой. (ISO 8879 A.1)

Синтаксис

Документ SGML может состоять из трех частей:

  1. декларация SGML,
  2. Пролог, содержащий объявление DOCTYPE с различными объявления разметки которые вместе составляют Определение типа документа (DTD) и
  3. сам экземпляр, содержащий один самый верхний элемент и его содержимое.

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

Хотя полный SGML допускает неявную разметку и некоторые другие типы тегов, XML спецификация (s4.3.1) гласит:

Каждый XML-документ имеет как логическую, так и физическую структуру. Физически документ состоит из единиц, называемых объектами. Сущность может ссылаться на другие сущности, чтобы вызвать их включение в документ. Документ начинается с «корня» или сущности документа. Логически документ состоит из объявлений, элементов, комментариев, ссылок на символы и инструкции по обработке, все из которых указаны в документе явной разметкой.

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

Дополнительные особенности

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

Многие функции SGML связаны с минимизацией разметки. Другие особенности относятся к одновременная (параллельная) разметка (CONCUR), для связывания атрибутов обработки (LINK) и для встраивания документов SGML в документы SGML (SUBDOC).

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

Конкретный и абстрактный синтаксисы

Обычный (по умолчанию) SGML конкретный синтаксис похож на этот пример, который используется по умолчанию HTML конкретный синтаксис:

<ЦИТАТА ТИП ="пример">  обычно что-то вроде <ITALICS>это</ITALICS></QUOTE>

SGML предоставляет абстрактный синтаксис это может быть реализовано во многих различных типах конкретный синтаксис. Хотя в норме разметки используется угловые скобки как начальный и конечный теги разделители в документе SGML (в соответствии со стандартом ссылочный конкретный синтаксис), можно использовать другие символы - при условии подходящего конкретный синтаксис определено в документе Декларация SGML.[8] Например, интерпретатор SGML может быть запрограммирован на синтаксический анализ GML, в котором теги разделены левой двоеточие и право полная остановка, таким образом, : e префикс обозначает конечный тег: : xmp.Привет, мир: exmp.. Согласно синтаксису ссылки, буквенный регистр (верхний или нижний) не различается в именах тегов, поэтому три тега: (i) <quote>, (ii) <QUOTE>, и (iii) <quOtE> эквивалентны. (ПРИМЕЧАНИЕ: Конкретный синтаксис может изменять это правило через объявления NAMECASE NAMING).

Минимизация разметки

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

OMITTAG

Как начальные, так и конечные теги могут быть опущены в экземпляре документа при условии:

  1. функция OMITTAG включена в декларации SGML,
  2. DTD указывает, что теги разрешено опускать,
  3. (для начальных тегов) элемент не имеет связанных обязательных (#ТРЕБУЕТСЯ) атрибуты и
  4. тег может быть однозначно выведен из контекста.

Например, если OMITTAG YES указан в объявлении SGML (включение функции OMITTAG), а DTD включает следующие объявления:

 глава - - (заглавие, раздел+)> заглавие о о (#PCDATA)> раздел - - (заглавие, подраздел+)>

тогда этот отрывок:

<chapter>Введение в SGML<section>Декларация SGML<subsection>...

который пропускает два <title> теги и два </title> теги, будут представлять допустимую разметку.

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

<chapter><title>Введение в SGML</title><section><title>Декларация SGML</title><subsection>...

и по-прежнему будет представлять действительную разметку.

Примечание. Функция OMITTAG не связана с тегированием элементов, объявленное содержимое которых ПУСТОЙ как определено в DTD:

 изображение - о ПУСТОЙ>

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

SHORTREF

Теги могут быть заменены строками-разделителями для более лаконичной разметки с помощью функции SHORTREF. Этот стиль разметки теперь связан с разметка вики, например где два знака равенства (==) в начале строки являются «начальным тегом заголовка», а два знака равенства (==) после него - «конечным тегом заголовка».

SHORTTAG

Языки разметки SGML, конкретный синтаксис которых включает функцию SHORTTAG VALUE, не требуют, чтобы значения атрибутов, содержащие только буквенно-цифровые символы, были заключены в кавычки - либо двойные " " (LIT) или одиночный ' ' (LITA) - чтобы предыдущий пример разметки можно было записать:

<ЦИТАТА ТИП =пример>  обычно что-то вроде <ITALICS>это</></QUOTE>

Одной из особенностей языков разметки SGML является «самонадеянная пустая маркировка», при которой пустой конечный тег </> в <ITALICS>this</> "наследует" свое значение от ближайшего предыдущего полного начального тега, которым в этом примере является <ITALICS> (другими словами, закрывает последний открытый элемент). Таким образом, выражение эквивалентно <ITALICS>this</ITALICS>.

СЕТЬ

Еще одна особенность - СЕТЬ Конструкция (Null End Tag): <ИТАЛИЯ / это /, что структурно эквивалентно <ITALICS>this</ITALICS>.

Другие свойства

Кроме того, функция SHORTTAG NETENABL IMMEDNET позволяет сокращать теги, окружающие пустое текстовое значение, но запрещает сокращать полные теги:

<QUOTE></QUOTE>

можно записать как

<QUOTE// <!-- not a typo! -->

при этом первый слэш (/) означает «закрытие начального тега» (NESTC), разрешающее NET, а вторая косая черта означает NET. ПРИМЕЧАНИЕ: XML определяет NESTC с помощью /, и NET с > (угловая скобка) - отсюда соответствующая конструкция в XML выглядит как <QUOTE/>.

Третья функция - «текст на той же строке», позволяющая заканчивать элемент разметки концом строки; особенно полезно для заголовков и т. д., требующих минимизации SHORTREF или DATATAG. Например, если DTD включает следующие объявления:

 линии (линия*)> линия О - (#PCDATA)>   line-tagc  ""> одна линия "& # RE; & # RS;" line-tagc>   одна линия линия>

(а "& # RE; & # RS;" - это ограничитель коротких ссылок в конкретном синтаксисе), тогда:

<lines>первая строка вторая строка</lines>

эквивалентно:

<lines><line>первая линия</line><line>вторая линия</line></lines>

Формальная характеристика

SGML имеет множество функций, которые невозможно описать с помощью популярных формальных теория автоматов и современный парсер технологии 1980-х и 1990-х годов. Стандарт предупреждает в Приложении H:

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

Отчет о ранней реализации синтаксического анализатора для базового SGML, Amsterdam SGML Parser,[9] Примечания

DTD-грамматика в SGML должна соответствовать понятию однозначности, которое очень похоже на условия LL (1)

и указывает различные различия.

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

XML описывается как обычно анализируемый как двухуровневая грамматика для непроверенного XML и Конвей -стилевой конвейер сопрограммы (лексер, парсер, валидатор) для действительного XML.[10] Сообщается, что продукция SGML в стандарте ISO является LL (3) или LL (4).[11] Сообщается, что подмножества класса XML можно выразить с помощью W-грамматика.[12] Согласно одной статье,[13] и, вероятно, рассматривались на набор информации или же дерево синтаксического анализа уровень, а не уровень символа или разделителя:

Класс документов, соответствующих данному документу SGML. грамматика образует язык LL (1). ... Грамматики документов SGML сами по себе, однако, не являются грамматиками LL (1).

Стандарт SGML не определяет SGML с формальными структурами данных, такими как разбирать деревья; однако документ SGML состоит из корневой ориентированный ациклический граф (RDAG) физических единиц хранения, известных как "сущности ", который разбирается в RDAG структурных единиц, известных как" элементы ". Физический граф в общих чертах характеризуется как дерево сущностей, но объекты могут появляться несколько раз. Более того, структурный граф также можно условно охарактеризовать как дерево элементов, но разметка ID / IDREF допускает произвольные дуги.

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

Стандарт SGML описывает это с точки зрения карты и режимы распознавания (s9.6.1). Каждая сущность и каждый элемент могут иметь связанный обозначение или же объявленный тип контента, который определяет типы ссылок и тегов, которые будут распознаваться в этой сущности и элементе. Кроме того, каждый элемент может иметь связанный карта-разделителькраткая справочная карта), который определяет, какие символы считаются разделителями в контексте. Стандарт SGML характеризует синтаксический анализ как Государственный аппарат переключение между режимами распознавания. Во время синтаксического анализа существует стек карт, которые настраивают сканер, в то время как токенизатор относится к режимам распознавания.

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

SGML использует термин Проверка как для признания, так и для поколения. XML не использует грамматику (DTD) для изменения карт разделителей или для информирования о режимах синтаксического анализа и не позволяет пропуск тега; следовательно, проверка элементов XML неактивна в том смысле, что проверка SGML активна. SGML без DTD (например, простой XML) - это грамматика или язык; SGML с DTD - это метаязык. SGML с объявлением SGML, возможно, является мета-метаязыком, поскольку это метаязык, механизм объявления которого является метаязык.

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

Производные

XML

В W3C XML (Extensible Markup Language) - это профиль (подмножество) SGML, разработанный для упрощения реализации синтаксического анализатора по сравнению с полным синтаксическим анализатором SGML, в первую очередь для использования во Всемирной паутине. В дополнение к отключению многих опций SGML, присутствующих в справочном синтаксисе (таких как исключение тегов и вложенных вложенных документов), XML добавляет ряд дополнительных ограничений на типы синтаксиса SGML. Например, несмотря на включение сокращенных форм тегов SGML, XML не допускает незакрытых начальных или конечных тегов. Он также опирался на многие дополнения, сделанные в приложении WebSGML. В настоящее время XML используется более широко, чем полный SGML. XML имеет легкий интернационализация на основе Unicode. Приложения XML включают XHTML, XQuery, XSLT, XForms, XPointer, JSP, SVG, RSS, Атом, XML-RPC, RDF / XML, и МЫЛО.

HTML

Хотя HTML разрабатывался частично независимо и параллельно с SGML, его создателем, Тим Бернерс-Ли, задумал как приложение SGML.[нужна цитата ] Поэтому дизайн HTML (язык гипертекстовой разметки) был вдохновлен тегами SGML, но, поскольку не были установлены четкие инструкции по расширению и синтаксическому анализу, большинство реальных HTML-документов не являются действительными документами SGML. Позже HTML был переформулирован (версия 2.0), чтобы он больше походил на приложение SGML; однако язык разметки HTML имеет множество унаследованных функций и функций обработки исключений, которые отличаются от требований SGML. HTML 4 - это приложение SGML, которое полностью соответствует ISO 8879 - SGML.[14]

Хартия возрождения 2006 г. Консорциум World Wide Web Рабочая группа HTML сообщает: «Группа не будет предполагать, что парсер SGML используется для« классического HTML »».[15] Хотя синтаксис HTML очень похож на синтаксис SGML со стандартным ссылка конкретный синтаксис, HTML5 отказывается от любых попыток определить HTML как приложение SGML, явно определяя свои собственные правила синтаксического анализа,[16] которые более точно соответствуют существующим реализациям и документам. Однако он определяет альтернативу XHTML сериализация, которая соответствует XML и, следовательно, SGML.[17]

OED

Второе издание Оксфордский словарь английского языка (OED) полностью размечен языком разметки на основе SGML с использованием LEXX Текстовый редактор.[18]

Третье издание размечено как XML.

Другие

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

Некоторые современные языки программирования поддерживают теги как примитивные типы токенов или теперь поддерживают Unicode и регулярное выражение сопоставление с образцом. Примером может служить Язык программирования Scala.

Приложения

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

  • Инициатива кодирования текста (TEI) - это академический консорциум, который проектирует, поддерживает и разрабатывает технические стандарты для приложений представления текста в цифровом формате.
  • DocBook это язык разметки, изначально созданный как приложение SGML, предназначенный для создания технической документации; DocBook в настоящее время представляет собой приложение XML.
  • CALS (Непрерывное получение и поддержка жизненного цикла) - это инициатива Министерства обороны США по электронному захвату военных документов и связыванию соответствующих данных и информации.
  • HyTime определяет набор типов элементов, ориентированных на гипертекст, которые позволяют авторам документов SGML создавать гипертекстовые и мультимедийные презентации.
  • ЭДГАР (Электронный сбор, анализ и извлечение данных) система обеспечивает автоматический сбор, проверку, индексирование, принятие и пересылку представлений компаниями и другими лицами, которые по закону обязаны подавать данные и информационные формы в Комиссию по ценным бумагам и биржам США ( SEC).
  • LinuxDoc. Документация для пакетов Linux использовала LinuxDoc SGML DTD и Docbook XML DTD.
  • AAP DTD это определение типа документа за научный документы, определенные Ассоциация американских издателей.
  • ISO 12083, преемник AAP DTP, является международным стандартом SGML для обмена документами между авторами и издателями.
  • SGMLguid было ранним определением типа документа SGML, созданным, разработанным и используемым в ЦЕРН.

Реализации с открытым исходным кодом

Существенный Открытый исходный код реализации SGML включают:

  • ASP-SGML
  • ARC-SGML, пользователем Standard Generalized Markup Language Users ', 1991, язык C
  • SGMLS, Джеймс Кларк, 1993, язык Си
  • Проект ЯО, Институт технологии Юань-цзе, Тайвань, совместно с Чарльзом Гольдфарбом, 1994 г., объект
  • SP Джеймс Кларк, язык C ++

SP и Jade, соответствующие процессоры DSSSL, обслуживаются OpenJade project и являются общими частями дистрибутивов Linux. Общий архив программного обеспечения и материалов SGML находится по адресу СУНЕТ. Исходный класс синтаксического анализатора HTML в реализации Java Sun System представляет собой синтаксический анализатор SGML с ограниченными возможностями, использующий терминологию и концепции SGML.

Смотрите также

Рекомендации

  1. ^ а б ISO. «JTC 1 / SC 34 - Описание документов и языки обработки». ISO. Получено 2009-12-25.
  2. ^ ISO JTC1 / SC34. «JTC 1 / SC 34 - Языки описания и обработки документов». Получено 2009-12-25.
  3. ^ ISO / IEC 10744  – Hytime
  4. ^ «ISO / IEC TR 9573» (PDF). ISO. 1991. Получено 5 декабря 2017.
  5. ^ Гольдфарб, Чарльз Ф. (1996). «Корни SGML - личное воспоминание». Получено 7 июля, 2007.
  6. ^ Гольдфарб, Чарльз Ф. (1990). Справочник SGML. ISBN  9780198537373.
  7. ^ Термины и определения проекта ISO 8879
  8. ^ Волер, Уэйн (21 июля 1998 г.). «Декларации SGML». Получено 17 августа, 2009.
  9. ^ Эгмонд (декабрь 1989 г.). «Реализация синтаксического анализатора Amsterdam SGML» (PDF).
  10. ^ Кэрролл, Джереми Дж. (26 ноября 2001 г.). «Сопоставление RDF и XML» (PDF). Hewlett Packard. Получено 9 октября, 2009.
  11. ^ "SGML: Grammar Productions".
  12. ^ "Re: Другие проблемы с пробелами были Re: Правила с пробелами (v2)".
  13. ^ Брюггеманн-Кляйн. "Инструменты и методы построения компиляторов для синтаксических анализаторов SGML: трудности и решения".
  14. ^ «Соответствие HTML 4–4: требования и рекомендации». Получено 2009-12-30.
  15. ^ Лилли, Крис; Бернерс-Ли, Тим (6 февраля 2009 г.). «Устав рабочей группы HTML». Получено 19 апреля, 2007.
  16. ^ «HTML5 - Анализ HTML-документов». Консорциум World Wide Web. 28 октября 2014 г.. Получено 29 июня, 2015.
  17. ^ Дубость, Карл (15 января 2008 г.). «HTML 5, один словарь, две сериализации». Блог вопросов и ответов. W3C. Получено 25 февраля, 2009.
  18. ^ Коулишоу, М.Ф. (1987). «LEXX - программируемый структурированный редактор». Журнал исследований и разработок IBM. IBM. 31 (1): 73. Дои:10.1147 / 311.0073.

внешняя ссылка