Sobes.tech
Middle

Care este legătura dintre SGML, HTML, XML și XHTML?

sobes.tech AI

Răspuns de la AI

SGML (Limbajul de Marcare Generalizat Standard) este un meta-limbaj de marcare, standard ISO 8879. Definește sintaxa pentru descrierea altor limbi de marcare, dar nu este o limbă de marcare pentru documente în sine. HTML și XML sunt aplicații (definiții) ale SGML, dar cu scopuri și restricții diferite.

HTML (Limbajul de Marcare pentru Hipertexte) este un limbaj de marcare bazat pe SGML, destinat creării paginilor web. Are un set fix de etichete și reguli pentru utilizarea lor, cu reguli de sintaxă mai flexibile comparativ cu XML (de exemplu, nu necesită închiderea obligatorie a tuturor etichetelor).

XML (Limbajul de Marcare Extensibil) este un alt meta-limbaj de marcare, descendent din SGML, dar mult mai simplu și mai strict. Diferența principală față de SGML este că XML se concentrează pe transmiterea datelor structurate, nu pe prezentarea documentului. Spre deosebire de HTML, XML nu are un set fix de etichete - acestea sunt definite de utilizator. Necesită respectarea strictă a sintaxei (închiderea întotdeauna a etichetelor, înglobarea corectă etc.).

XHTML (Limbajul de Marcare HyperText Extensibil) este o reformulare a HTML 4 sub forma unei aplicații XML. Adică, este HTML, dar cu o sintaxă mai strictă, similară cu regulile XML. A încercat să combine avantajele HTML (pentru pagini web) și XML (rigurozitate, extensibilitate), dar a fost în mare parte înlocuit de HTML5.

Astfel, relația este următoarea:

  • SGML este părintele/baza pentru HTML și XML.
  • HTML și XML sunt aplicații ale SGML (au o sintaxă definită de regulile SGML).
  • XHTML este o versiune a HTML rescrisă respectând regulile sintaxei XML.
  • HTML a fost creat pentru afișarea documentelor în browser, XML pentru transmiterea și stocarea datelor structurate.
  • XHTML a încercat să unească afișarea (HTML) cu rigurozitatea (XML).

Pe scurt, lanțul de dependență este: SGML -> HTML, SGML -> XML. Și, de asemenea: HTML + sintaxă XML -> XHTML.

Exemplu de structură:

<!-- Exemplu HTML -->
<!DOCTYPE html>
<html>
<head>
    <title>Titlu</title>
</head>
<body>
    <h1>Salut</h1>
    <p>Acesta este un paragraf.</p>
</body>
</html>
<!-- Exemplu XML -->
<carte>
    <titlu>Cartea mea</titlu>
    <autor>Ion Popescu</autor>
    <gen>Ficțiune științifico-fantastică</gen>
</carte>
<!-- Exemplu 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="ro" lang="ro">
<head>
    <title>Titlu</title>
</head>
<body>
    <h1>Salut</h1>
    <p>Acesta este un paragraf.</p>
</body>
</html>

Acordați atenție stricteței în închiderea etichetelor în XML și XHTML comparativ cu HTML.