1º DAW · DAM

Fundamentos de Lenguajes de Marcas

Módulo: Lenguajes de Marcas y Sistemas de Gestión de la Información (LMSGI) · C.F.G.S. Informática · Sesión de 2 horas. Clasificación, historia y fundamentos de XML, HTML, JSON y YAML.

🎯 Objetivos de la sesión

  1. Comprender qué es un lenguaje de marcas y sus tipos.
  2. Conocer la evolución histórica: GML → SGML → HTML → XML → JSON/YAML.
  3. Distinguir lenguajes descriptivos (semánticos) frente a procedimentales.
  4. Escribir documentos XML bien formados: elementos, atributos, comentarios, entidades.
  5. Conocer el ecosistema XML (DTD, XSD, XSLT) y alternativas modernas.
HORA 1

¿Qué es un lenguaje de marcas?

1.1 — Definición

Un lenguaje de marcas (markup language) es un sistema de anotaciones que se inserta en un texto para dar estructura y significado a su contenido, separando la información de la forma en que se presenta o procesa.

La idea central: "marca" = etiqueta que envuelve o señala una parte del documento. El texto plano se convierte en datos estructurados legibles por máquinas.

Legible por humanos y máquinas Texto plano (.xml, .html, .json) Plataformas independientes Almacenamiento + intercambio de datos

1.2 — Tipos de lenguajes de marcas

TipoQué describeEjemplos
ProcedimentalesCÓMO se presenta: indican instrucciones de formato al procesador.TEX, troff, RTF (históricos)
Descriptivos / semánticosQUÉ es cada parte del contenido: estructura y significado, no apariencia.XML, HTML, SGML, JSON, YAML
<!-- Procedural: "pon en negrita" -->
Texto importante

<!-- Descriptivo: "esto es un título de nivel 1" -->
<h1>Factura 2026/09</h1>
Idea clave: HTML/XML etiquetan qué significa cada dato; la apariencia visual se delega a otro sistema (CSS, XSLT, motores de renderizado).

1.3 — Línea histórica

Ojo con el examen: HTML y XML nacieron de SGML. HTML fue pensado para visualizar documentos; XML para describir datos. Por eso XML exige mucha más rigurosidad sintáctica.

1.4 — Comparativa rápida de los grandes

Propósito¿Etiquetas predefinidas?Rigidez sintáctica
HTMLPresentar páginas webSí, vocabulario fijo (<p>, <a>…)Permisiva (los navegadores "arreglan" errores)
XMLAlmacenar/intercambiar datosNo: tú defines tus propias etiquetasEstricta: debe estar bien formado
JSONDatos en objetos/arreglosSintaxis {}, []Estricta
YAMLConfiguración legibleSintaxis indentaciónMuy estricta con sangrías
HORA 2

XML en profundidad: reglas y ecosistema

2.1 — Documento XML bien formado

Un documento XML es bien formado si cumple estas reglas sintácticas:

  1. Prolog: comienza opcionalmente con <?xml version="1.0" encoding="UTF-8"?>.
  2. Un único elemento raíz que contiene a todos los demás.
  3. Toda etiqueta que se abre se cierra: <aula>...</aula>. O bien son vacías: <imagen ruta="foto.png"/>.
  4. Las etiquetas se anidan correctamente (no se cruzan): <b><i>x</i></b> ✅, <b><i>x</b></i> ❌.
  5. Los nombres distinguen mayúsculas/minúsculas: <Aula><aula>.
  6. Los valores de atributos van entre comillas.
  7. Los caracteres especiales se escapan con entidades: &lt; < · &gt; > · &amp; & · &quot; " · &apos; '

2.2 — Elementos vs. atributos

<?xml version="1.0" encoding="UTF-8"?>
<biblioteca>
  <libro id="L-001" disponible="true">
    <titulo>Fundamentos de XML</titulo>
    <autor>Ana García</autor>
    <precio moneda="EUR">24.50</precio>
  </libro>
</biblioteca>

Elemento: contenedor de datos (puede repetirse y anidarse).
Atributo: dato simple en la etiqueta de apertura (metadato, identificador, unidad…).

2.3 — Validación: DTD y XML Schema (XSD)

  • Bien formado → respeta la sintaxis XML. (Basta con cualquier parseador.)
  • Válido → además respeta un esquema que define qué elementos, atributos y tipos de datos se permiten.

DTD (Document Type Definition): sintaxis propia, valida estructura pero no tipos de datos. XSD (XML Schema Definition): sintaxis XML, valida estructura y tipos (int, date, decimal, enumeraciones…).

2.4 — Tecnologías del ecosistema XML

TecnologíaFunción
XPathLenguaje de rutas para seleccionar nodos: /biblioteca/libro/titulo
XSLTTransforma XML a otro XML, HTML o texto (diseño declarativo con plantillas).
DOMModelo de objetos del documento; carga el árbol completo en memoria.
SAXAnálisis secuencial por eventos; eficiente con documentos grandes.
NamespacesEvitan colisiones de nombres: <xhtml:table> vs <libros:table>

2.5 — XML vs. JSON vs. YAML

/* XML */            /* JSON */            # YAML
<alumno>           {                     alumno:
  <nombre>Lucía</nombre>   "nombre":"Lucía",    nombre: Lucía
  <nota>8.5</nota>         "nota":8.5           nota: 8.5
</alumno>         }                     asignaturas:
                                            - LMSGI
                                            - BD
CriterioXMLJSONYAML
VerbosoMuchoMedioPoco
Autodescriptivo / comentariosSí / SíMedio / NoSí / Sí
Validación con esquemaDTD, XSDJSON SchemaJSON Schema
Uso típicoFacturación (Facturae), SVG, doc. técnicaAPIs REST, AJAXConfiguración (Docker, K8s, pipelines)

💻 Práctica de aula (últimos 20 min)

Ejercicio 1 (5 min): ¿Cuál de estos fragmentos XML está bien formado? Corrige los errores:
<raiz>
  <item id=1>Dato & mas</item>
  <item>Otro dato
</raiz>
Ver solución

Errores: atributo sin comillas; & sin escapar (&amp;); etiqueta <item> sin cerrar. Correcto:
<item id="1">Dato &amp; mas</item><item>Otro dato</item>

Ejercicio 2 (10 min): Modela en XML una factura con: número, fecha, cliente (nombre, NIF) y 2–3 líneas (descripción, cantidad, precio). Debe ser bien formado.
Ejercicio 3 (5 min): Convierte tu factura XML a JSON. ¿Qué estructuras de JSON equivalen a elementos repetidos y atributos?

📌 Resumen de la sesión

  • Los lenguajes de marcas estructuran y dan significado a la información; los descriptivos (XML, HTML) dominan hoy sobre los procedimentales.
  • Evolución: GML → SGML → HTML y XML → JSON/YAML.
  • XML exige documentos bien formados (raíz única, etiquetas cerradas, entidades) y opcionalmente válidos frente a DTD/XSD.
  • El ecosistema XML: XPath, XSLT, DOM/SAX, Namespaces.
  • JSON y YAML triunfan en APIs y configuración por su ligereza; XML sigue siendo estándar en documentación y facturación electrónica.

Próxima sesión: HTML5 y CSS — anatomía de una página web semántica.