Sobes.tech
Middle

Koks ryšys tarp SGML, HTML, XML ir XHTML?

sobes.tech AI

Atsakymas iš AI

SGML (Standard Generalized Markup Language) yra metatekstinis žymėjimo kalba, ISO 8879 standartas. Nustato sintaksę kitų žymėjimo kalbų aprašymui, o ne pats žymėjimo kalba dokumentams. HTML ir XML yra SGML taikymai (apibrėžimai), bet su skirtingais tikslais ir apribojimais.

HTML (HyperText Markup Language) yra SGML pagrįsta žymėjimo kalba, skirta kurti tinklalapius. Turi nustatytą žymų rinkinį ir jų naudojimo taisykles, lankstesnės sintaksės nei XML (pavyzdžiui, nereikalauja uždaryti visų žymų).

XML (eXtensible Markup Language) yra kitas metatekstinis žymėjimo kalba, SGML palikuonis, bet žymiai paprastesnė ir griežtesnė. Pagrindinis skirtumas nuo SGML yra tas, kad XML sutelkiamas į struktūruotų duomenų perdavimą, o ne dokumento pateikimą. Skirtingai nuo HTML, XML neturi nustatyto žymų rinkinio - juos nustato naudotojas. Reikalauja griežto sintaksės laikymosi (visada uždaryti žymas, teisingai įdėti ir t.t.).

XHTML (eXtensible HyperText Markup Language) yra HTML 4 performulavimas kaip XML taikymas. Tai HTML, bet su griežtesne sintakse, panaši į XML taisykles. Buvo bandymas sujungti HTML privalumus (tinklalapiams) ir XML (griežtumas, išplečiamumas), bet šiuo metu jis daugiausia pakeistas HTML5.

Taigi, ryšys yra toks:

  • SGML yra tėvas/pagrindas HTML ir XML.
  • HTML ir XML yra taikymai SGML (turi sintaksę, apibrėžtą pagal SGML taisykles).
  • XHTML yra HTML versija, perrašyta laikantis XML sintaksės taisyklių.
  • HTML sukurtas dokumentų atvaizdavimui naršyklėje, XML - perdavimui ir saugojimui struktūruotų duomenų.
  • XHTML bandė sujungti atvaizdavimą (HTML) ir griežtumą (XML).

Trumpai, priklausomybės grandinė: SGML -> HTML, SGML -> XML. Taip pat: HTML + XML sintaksė -> XHTML.

Pavyzdinė struktūra:

<!-- HTML pavyzdys -->
<!DOCTYPE html>
<html>
<head>
    <title>Pavadinimas</title>
</head>
<body>
    <h1>Sveiki</h1>
    <p>Tai paragrafas.</p>
</body>
</html>
<!-- XML pavyzdys -->
<knyga>
    <pavadinimas>Mano knyga</pavadinimas>
    <autorius>Ivan Ivanov</autorius>
    <žanras>Fantastika</žanras>
</knyga>
<!-- XHTML pavyzdys -->
<!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>Pavadinimas</title>
</head>
<body>
    <h1>Sveiki</h1>
    <p>Tai paragrafas.</p>
</body>
</html>

XML ir XHTML žymių uždarymas yra griežtesnis nei HTML.