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.