Назад к вопросам
Middle
75
questionbank

Какова связь между SGML, HTML, XML и XHTML?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

SGML (Standard Generalized Markup Language) - это мета-язык разметки, стандарт ISO 8879. Определяет синтаксис для описания других языков разметки, а не сам по себе язык разметки для документов. HTML и XML являются приложениями (определениями) SGML, но с разными целями и ограничениями.

HTML (HyperText Markup Language) - это язык разметки, основанный на SGML, предназначенный для создания веб-страниц. Имеет фиксированный набор тегов и правил их использования, более гибкие правила синтаксиса по сравнению с XML (например, не требует обязательного закрытия всех тегов).

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

XHTML (eXtensible HyperText Markup Language) - это переформулировка HTML 4 в виде XML-приложения. То есть это HTML, но с более строгим синтаксисом, аналогичным правилам XML. Был попыткой объединить преимущества HTML (для веб-страниц) и XML (строгость, расширяемость), но к настоящему времени в значительной степени вытеснен HTML5.

Таким образом, связь такова:

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

Коротко можно представить цепочку зависимости: SGML -> HTML, SGML -> XML. А также: HTML + XML синтаксис -> XHTML.

Пример структуры:

<!-- Пример HTML -->
<!DOCTYPE html>
<html>
<head>
    <title>Заголовок</title>
</head>
<body>
    <h1>Приветствие
    <p>Это параграф.
</body>
</html>
<!-- Пример XML -->
<книга>
    <название>Моя книга</название>
    <автор>Иван Иванов</автор>
    <жанр>Фантастика</жанр>
</книга>
<!-- Пример XHTML -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Заголовок</title>
</head>
<body>
    <h1>Приветствие</h1>
    <p>Это параграф.</p>
</body>
</html>

Обратите внимание на строгость закрытия тегов в XML и XHTML по сравнению с HTML.