Sobes.tech
Middle

Jaký je vztah mezi SGML, HTML, XML a XHTML?

sobes.tech AI

Odpověď od AI

SGML (Standard Generalized Markup Language) je meta-jazyk značkování, norma ISO 8879. Určuje syntax pro popis jiných značkovacích jazyků, nikoliv sám jazyk značkování pro dokumenty. HTML a XML jsou aplikace (definice) SGML, ale s různými cíli a omezeními.

HTML (HyperText Markup Language) je značkovací jazyk založený na SGML, určený pro tvorbu webových stránek. Má pevně stanovenou sadu tagů a pravidla jejich používání, flexibilnější syntax než XML (například nevyžaduje povinné uzavření všech tagů).

XML (eXtensible Markup Language) je jiný meta-jazyk značkování, potomek SGML, ale výrazně jednodušší a přísnější. Hlavní rozdíl od SGML je v tom, že XML se zaměřuje na přenos strukturovaných dat, nikoliv na prezentaci dokumentu. Na rozdíl od HTML nemá XML pevně stanovenou sadu tagů - určuje je uživatel. Vyžaduje přísné dodržování syntaxe (vždy uzavírat tagy, správně vkládat apod.).

XHTML (eXtensible HyperText Markup Language) je přeformulace HTML 4 ve formě XML aplikace. To znamená, že je to HTML, ale s přísnější syntaxí, podobně jako pravidla XML. Pokusil se spojit výhody HTML (pro webové stránky) a XML (přísnost, rozšiřitelnost), ale v současnosti je do značné míry vytlačen HTML5.

Vztah je tedy následující:

  • SGML je rodič/ základ pro HTML a XML.
  • HTML a XML jsou aplikace SGML (mají syntax podle pravidel SGML).
  • XHTML je verze HTML, přepsaná s dodržením pravidel syntaxe XML.
  • HTML je určeno pro zobrazování dokumentů v prohlížeči, XML pro přenos a ukládání strukturovaných dat.
  • XHTML se snažil spojit zobrazování (HTML) a přísnost (XML).

Stručně lze řici, že řetězec závislosti je: SGML -> HTML, SGML -> XML. A také: HTML + XML syntax -> XHTML.

Příklad struktury:

<!-- Příklad HTML -->
<!DOCTYPE html>
<html>
<head>
    <title>Nadpis</title>
</head>
<body>
    <h1>Pozdrav</h1>
    <p>Toto je odstavec.</p>
</body>
</html>
<!-- Příklad XML -->
<kniha>
    <název>Moje kniha</název>
    <autor>Ivan Ivanov</autor>
    <žánr>Fantazie</žánr>
</kniha>
<!-- Příklad 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>Nadpis</title>
</head>
<body>
    <h1>Pozdrav</h1>
    <p>Toto je odstavec.</p>
</body>
</html>

Všimněte si přísnosti uzavírání tagů v XML a XHTML ve srovnání s HTML.