Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Стандартный обобщенный язык разметки ( 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 ISO / IEC, Подкомитет 34 - Языки описания и обработки документов):

  • SGML (ISO 8879) - Обобщенный язык разметки
    • SGML был переработан в 1998 году в XML , успешный профиль SGML. Полный SGML редко встречается или используется в новых проектах.
  • DSSSL (ISO / IEC 10179) - язык обработки документов и стилизации на основе Scheme .
    • 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 «s обобщенного языка разметки (GML), который Чарльз Гольдфарб , Эдвард Мошер и Раймонд Lorie , разработанный в 1960 - х годах. Гольдфарб, редактор международного стандарта, ввел термин «GML», используя инициалы их фамилий. [5] Гольдфарб также написал основательную работу по синтаксису SGML в «Руководстве по SGML». [6] Синтаксис SGML ближе к формату COCOA . [ требуется пояснение ] Как язык разметки документов, 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 Infoset в документ. Стандарт называет это полностью тегированным . Сохранение целиком отражает требование 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-х годов. Они варьировались от кратких синтаксисов, подобных Wiki, до языков в скобках, подобных RTF, и до языков сопоставления тегов, подобных HTML . SGML сделал это с помощью относительно простого стандартного ссылочного конкретного синтаксиса, дополненного большим количеством дополнительных функций, которые можно было включить в декларации SGML. Не каждый синтаксический анализатор SGML обязательно может обрабатывать каждый документ SGML. Поскольку декларацию системы каждого процессора можно сравнить с декларацией SGML документа, всегда можно узнать, поддерживается ли документ конкретным процессором.

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

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

Конкретный и абстрактный синтаксис [ править ]

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

<QUOTE  TYPE = "example" > обычно что-то вроде <ITALICS> this </ITALICS> </QUOTE>

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

Минимизация разметки [ править ]

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

OMITTAG [ править ]

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

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

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

<! ELEMENT  chapter  -  -  ( заголовок ,  раздел +) > <! ELEMENT  title  o  o  ( #PCDATA ) > <!  Раздел  ELEMENT -  -  ( заголовок ,  подраздел +) >

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

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

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

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

<chapter> <title> Введение в SGML </title> <section> <title> Объявление SGML </title> <subsection>...

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

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

<! ELEMENT  image  -  o  EMPTY >

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

SHORTREF [ править ]

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

SHORTTAG [ редактировать ]

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

<QUOTE  TYPE = example > обычно что-то вроде <ITALICS> this < /> </QUOTE>

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

NET [ править ]

Другой особенностью является конструкция NET (Null End Tag):, <ITALICS/this/которая структурно эквивалентна <ITALICS>this</ITALICS>.

Другие особенности [ править ]

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

<QUOTE> </QUOTE>

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

<QUOTE // <! - это не опечатка! ->

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

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

<! ELEMENT  lines  ( line *) > <! ELEMENT  line  O  -  ( #PCDATA ) > <! ENTITY  line-tagc  "</line>" > <! SHORTREF  однострочный  "& # RE; & # RS;"  линия-ВАР > <! USEMAP  одна линия  линия >

(а "& # 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 Infoset больше соответствует языку программированию понятия абстрактного синтаксиса , введенному Джон Маккарти .

Производные [ править ]

XML [ править ]

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

HTML [ править ]

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

В уставе возрождения рабочей группы HTML Консорциума World Wide Web в 2006 г. говорится: «Группа не будет предполагать, что парсер 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.

  • Text Encoding Initiative (TEI) - это академический консорциум, который проектирует, поддерживает и разрабатывает технические стандарты для приложений представления текста в цифровом формате.
  • DocBook - это язык разметки, изначально созданный как приложение SGML, предназначенный для создания технической документации; DocBook в настоящее время представляет собой приложение XML.
  • CALS (Непрерывное получение и поддержка жизненного цикла) - это инициатива Министерства обороны США по электронному захвату военных документов и связыванию связанных данных и информации.
  • HyTime определяет набор типов элементов, ориентированных на гипертекст, которые позволяют авторам документов SGML создавать гипертекстовые и мультимедийные презентации.
  • Система EDGAR (электронный сбор, анализ и извлечение данных) обеспечивает автоматический сбор, проверку, индексирование, принятие и пересылку представлений компаниями и другими лицами, которые по закону обязаны подавать данные и информационные формы в Комиссию по ценным бумагам и биржам США. (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, язык C
  • Проект YAO , Технологический институт Юань-цзе, Тайвань, с Чарльзом Гольдфарбом, 1994 г., объект
  • SP Джеймса Кларка, язык C ++

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

См. Также [ править ]

  • Организация по развитию стандартов структурированной информации (OASIS)
  • S-выражение
  • DSSSL  - язык обработки на основе схемы, похожий на XSL
  • Латекс
  • Список языков разметки общего назначения
  • Язык разметки
  • Объект SGML
  • HyTime
  • Отсутствие тега
  • XML

Ссылки [ править ]

  1. ^ a b ISO. «JTC 1 / SC 34 - Языки описания и обработки документов» . ISO . Проверено 25 декабря 2009 .
  2. ^ ISO JTC1 / SC34. «JTC 1 / SC 34 - Языки описания и обработки документов» . Проверено 25 декабря 2009 .
  3. ^ ISO / IEC 10744  - Hytime
  4. ^ "ISO / IEC TR 9573" (PDF) . ISO . 1991 . Дата обращения 5 декабря 2017 .
  5. ^ Голдфарб, Чарльз Ф. (1996). «Корни SGML - личное воспоминание» . Проверено 7 июля 2007 года .
  6. Goldfarb, Charles F. (1990). Справочник SGML . ISBN 9780198537373.
  7. ^ Термины и определения проекта ISO 8879
  8. ^ Wohler, Уэйн (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: требования и рекомендации» . Проверено 30 декабря 2009 .
  15. ^ Лилли, Крис ; Бернерс-Ли, Тим (6 февраля 2009 г.). «Устав рабочей группы HTML» . Проверено 19 апреля 2007 года .
  16. ^ «HTML5 - Разбор HTML-документов» . Консорциум World Wide Web . 28 октября 2014 . Проверено 29 июня 2015 года .
  17. ^ Dubost, Карл (15 января 2008). «HTML 5, один словарь, две сериализации» . Блог вопросов и ответов . W3C . Проверено 25 февраля 2009 года .
  18. ^ Cowlishaw, MF (1987). «LEXX - программируемый структурированный редактор». Журнал исследований и разработок IBM . IBM . 31 (1): 73. DOI : 10,1147 / rd.311.0073 .

Внешние ссылки [ править ]

  • Обзор ресурсов SGML на веб-сайте W3C.
  • Введение и примеры программной документации на SGML
  • SC34 Committee Records , Институт Чарльза Бэббиджа  - Сборник по развитию SGML и других стандартов, влияющих на развитие текущих инструментов XML; документы включают ранние проекты административных материалов SGML, документацию, документы рабочих групп и стандарты компьютерных языков.
  • Краткое описание синтаксиса SGML, Чарльз Гольдфарб
  • Документ SGML, знакомящий вас с SGML ; Некоторые причины важности SGML
  • Декларация SGML в SGML и HTML Explained, Мартин Брайан (1997) (исходный URL-адрес сломан по адресу http://www.is-oughtt.co.uk/book/sgml-4.htm#Fig4-2 )
  • Декларации SGML Уэйн Волер, IBM Corporation, 1994.
  • ISO 9069: 1988 - Обработка информации - Средства поддержки SGML - Формат обмена документами SGML (SDIF)
  • ISO / IEC 9070: 1991 - Информационные технологии. Средства поддержки SGML. Процедуры регистрации для идентификаторов владельцев общедоступных текстов.