Sobes.tech
Middle

Каква е връзката между SGML, HTML, XML и XHTML?

sobes.tech AI

Отговор от 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>Поздрав</h1>
    <p>Това е параграф.</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.