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.