Qual é a relação entre SGML, HTML, XML e XHTML?
sobes.tech IA
Resposta da IA
SGML (Língua de Marcação Generalizada Padrão) é uma meta-língua de marcação, padrão ISO 8879. Define a sintaxe para descrever outras línguas de marcação, mas não é uma linguagem de marcação para documentos em si. HTML e XML são aplicações (definições) de SGML, mas com objetivos e restrições diferentes.
HTML (Linguagem de Marcação de Hipertexto) é uma linguagem de marcação baseada em SGML, destinada à criação de páginas web. Possui um conjunto fixo de tags e regras para seu uso, com regras de sintaxe mais flexíveis em comparação com XML (por exemplo, não requer o fecho obrigatório de todas as tags).
XML (Linguagem de Marcação Extensível) é outro meta-língua de marcação, descendente de SGML, mas muito mais simples e rígido. A principal diferença em relação ao SGML é que o XML foca na transmissão de dados estruturados, não na apresentação do documento. Ao contrário do HTML, o XML não possui um conjunto fixo de tags - elas são definidas pelo utilizador. Requer uma estrita conformidade com a sintaxe (fechar sempre as tags, aninhar corretamente, etc.).
XHTML (Linguagem de Marcação de Hipertexto Extensível) é uma reformulação do HTML 4 na forma de aplicação XML. Ou seja, é HTML, mas com uma sintaxe mais rigorosa, semelhante às regras do XML. Tentou unir as vantagens do HTML (para páginas web) e do XML (rigor, extensibilidade), mas atualmente foi em grande parte substituído pelo HTML5.
Assim, a relação é a seguinte:
- O SGML é o pai/base do HTML e do XML.
- HTML e XML são aplicações do SGML (têm uma sintaxe definida pelas regras do SGML).
- XHTML é uma versão do HTML reescrita seguindo as regras sintáticas do XML.
- O HTML foi criado para exibir documentos nos navegadores, o XML para transmitir e armazenar dados estruturados.
- O XHTML tentou unir a exibição (HTML) com a rigidez (XML).
Resumindo, a cadeia de dependência é: SGML -> HTML, SGML -> XML. E também: HTML + sintaxe XML -> XHTML.
Exemplo de estrutura:
<!-- Exemplo HTML -->
<!DOCTYPE html>
<html>
<head>
<title>Título</title>
</head>
<body>
<h1>Saudação</h1>
<p>Isto é um parágrafo.</p>
</body>
</html>
<!-- Exemplo XML -->
<livro>
<título>O meu livro</título>
<autor>João Silva</autor>
<gênero>Ciencia-ficção</gênero>
</livro>
<!-- Exemplo 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>Título</title>
</head>
<body>
<h1>Saudação</h1>
<p>Isto é um parágrafo.</p>
</body>
</html>
Preste atenção à rigidez do fecho das tags em XML e XHTML em comparação com HTML.