Sobes.tech
Middle

¿Cuál es la relación entre SGML, HTML, XML y XHTML?

sobes.tech AI

Respuesta de la IA

SGML (Lenguaje de Marcado Generalizado Estándar) es un meta-lenguaje de marcado, estándar ISO 8879. Define la sintaxis para describir otros lenguajes de marcado, pero no es un lenguaje de marcado para documentos en sí mismo. HTML y XML son aplicaciones (definiciones) de SGML, pero con diferentes objetivos y restricciones.

HTML (Lenguaje de Marcado de Hipertexto) es un lenguaje de marcado basado en SGML, diseñado para crear páginas web. Tiene un conjunto fijo de etiquetas y reglas para su uso, con reglas de sintaxis más flexibles en comparación con XML (por ejemplo, no requiere cerrar todas las etiquetas obligatoriamente).

XML (Lenguaje de Marcado Extensible) es otro meta-lenguaje de marcado, descendiente de SGML, pero mucho más simple y rígido. La principal diferencia con SGML es que XML se centra en la transmisión de datos estructurados, no en la presentación del documento. A diferencia de HTML, XML no tiene un conjunto fijo de etiquetas: las define el usuario. Requiere un cumplimiento estricto de la sintaxis (siempre cerrar etiquetas, anidar correctamente, etc.).

XHTML (Lenguaje de Marcado de Hipertexto Extensible) es una reformulación de HTML 4 en forma de aplicación XML. Es decir, es HTML, pero con una sintaxis más estricta, similar a las reglas de XML. Intentó combinar las ventajas de HTML (para páginas web) y XML (rigor, extensibilidad), pero actualmente ha sido en gran medida reemplazado por HTML5.

Así, la relación es la siguiente:

  • SGML es el padre/base de HTML y XML.
  • HTML y XML son aplicaciones de SGML (tienen una sintaxis definida por las reglas de SGML).
  • XHTML es una versión de HTML reescrita siguiendo las reglas sintácticas de XML.
  • HTML fue creado para mostrar documentos en navegadores, XML para transmitir y almacenar datos estructurados.
  • XHTML intentó unir la visualización (HTML) con la rigidez (XML).

En resumen, la cadena de dependencia es: SGML -> HTML, SGML -> XML. Y también: HTML + sintaxis XML -> XHTML.

Ejemplo de estructura:

<!-- Ejemplo HTML -->
<!DOCTYPE html>
<html>
<head>
    <title>Título</title>
</head>
<body>
    <h1>Saludo</h1>
    <p>Este es un párrafo.</p>
</body>
</html>
<!-- Ejemplo XML -->
<libro>
    <titulo>Mi libro</titulo>
    <autor>Juan Pérez</autor>
    <género>Ciencia ficción</género>
</libro>
<!-- Ejemplo 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>Saludo</h1>
    <p>Este es un párrafo.</p>
</body>
</html>

Preste atención a la estricta cierre de etiquetas en XML y XHTML en comparación con HTML.