HTML

Несмотря на то, что HTML изначально создавался с на основе опыта работы разработчиков с SGML (ISO 8879:1986), лишь четвертая версия языка является приложением SGML.

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

SGML

Стоит отметить, что SGML сам по себе является крайне общим языком разметки. Так, если созданный его упрощением XML допускает запись элемента foo с текстом bar только как <foo>bar</foo>, в некоторых приложениях SGML такой элемент может быть записан как, e. g., <foo/bar/ или .foo bar (с завершением элемента кодом разрыва строки.)

Именно поэтому приложения SGML предполагают настройку программы разбора и использование определения типа документа (англ. document type description, DTD), описывающего, в частности, какие элементы всегда являются пустыми и не допускают закрывающего тэга.

XML

В отличие от SGML, запись элементов XML всегда использует закрывающий и открывающий тэги, которые, в случае пустого элемента, могут быть объединены в форму <foo />.

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


Local variables:
coding: utf-8
fill-column: 64
ispell-local-dictionary: "russian"
End: