Sobes.tech
Middle

Qual è la relazione tra SGML, HTML, XML e XHTML?

sobes.tech AI

Risposta dell'AI

SGML (Standard Generalized Markup Language) è un meta-linguaggio di markup, standard ISO 8879. Definisce la sintassi per descrivere altri linguaggi di markup, ma non è di per sé un linguaggio di markup per documenti. HTML e XML sono applicazioni (definizioni) di SGML, ma con obiettivi e restrizioni diversi.

HTML (HyperText Markup Language) è un linguaggio di markup basato su SGML, progettato per creare pagine web. Ha un insieme fisso di tag e regole per il loro uso, con regole di sintassi più flessibili rispetto a XML (ad esempio, non richiede di chiudere obbligatoriamente tutti i tag).

XML (eXtensible Markup Language) è un altro meta-linguaggio di markup, discendente di SGML, ma molto più semplice e rigido. La principale differenza rispetto a SGML è che XML si concentra sulla trasmissione di dati strutturati, non sulla presentazione del documento. A differenza di HTML, XML non ha un insieme fisso di tag: sono definiti dall'utente. Richiede una rigorosa conformità alla sintassi (chiudere sempre i tag, annidare correttamente, ecc.).

XHTML (eXtensible HyperText Markup Language) è una riformulazione di HTML 4 sotto forma di applicazione XML. È cioè HTML, ma con una sintassi più rigorosa, analoga alle regole di XML. Ha tentato di combinare i vantaggi di HTML (per le pagine web) e di XML (rigore, estensibilità), ma è stato in gran parte sostituito da HTML5.

Quindi, la relazione è la seguente:

  • SGML è il padre/base di HTML e XML.
  • HTML e XML sono applicazioni di SGML (hanno una sintassi definita dalle regole di SGML).
  • XHTML è una versione di HTML riscritta seguendo le regole sintattiche di XML.
  • HTML è stato creato per visualizzare documenti nel browser, XML per trasmettere e archiviare dati strutturati.
  • XHTML ha tentato di unire la visualizzazione (HTML) con la rigore (XML).

In breve, la catena di dipendenza è: SGML -> HTML, SGML -> XML. E anche: HTML + sintassi XML -> XHTML.

Esempio di struttura:

<!-- Esempio HTML -->
<!DOCTYPE html>
<html>
<head>
    <title>Titolo</title>
</head>
<body>
    <h1>Saluto</h1>
    <p>Questo è un paragrafo.</p>
</body>
</html>
<!-- Esempio XML -->
<libro>
    <titolo>Il mio libro</titolo>
    <autore>Mario Rossi</autore>
    <genere>Fantascienza</genere>
</libro>
<!-- Esempio 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="it" lang="it">
<head>
    <title>Titolo</title>
</head>
<body>
    <h1>Saluto</h1>
    <p>Questo è un paragrafo.</p>
</body>
</html>

Fai attenzione alla rigidità della chiusura dei tag in XML e XHTML rispetto a HTML.