Jerarquía y anidamiento de elementos en XML

1. Concepto de jerarquía en XML

Un documento XML organiza sus elementos en forma de árbol jerárquico:

  • En la cima está el elemento raíz.
  • Dentro de él, se encuentran elementos hijos.
  • Estos hijos pueden tener nietos, y así sucesivamente.
  • Los elementos que comparten el mismo padre son hermanos.

Esta estructura en árbol hace que XML sea muy intuitivo y potente para representar datos complejos.

2. Definiciones clave

  • Elemento raíz (root element): el único elemento que contiene a todos los demás.
  • Padre: un elemento que contiene a otros elementos dentro de sí.
  • Hijo: un elemento que está contenido dentro de otro.
  • Nieto: un elemento que está contenido dentro de un hijo.
  • Hermanos (siblings): elementos que comparten el mismo padre.

3. Ejemplo básico de jerarquía

<biblioteca>
    <libro>
        <titulo>Don Quijote</titulo>
        <autor>Miguel de Cervantes</autor>
    </libro>
    <libro>
        <titulo>La Odisea</titulo>
        <autor>Homero</autor>
    </libro>
</biblioteca>

Análisis de la jerarquía:

  • <biblioteca> es el elemento raíz.
  • <libro> es hijo de <biblioteca>.
  • <titulo> y <autor> son hijos de <libro> y nietos de <biblioteca>.
  • Los dos <libro> son hermanos porque comparten el mismo padre (<biblioteca>).

4. Representación en forma de árbol

El ejemplo anterior se puede ver así:

biblioteca
  libro
      titulo
      autor
  libro
      titulo
      autor

Esta representación en árbol refleja la estructura jerárquica natural de XML.

5. Reglas de anidamiento correcto

  • Todos los elementos deben cerrarse en orden inverso a su apertura (no se pueden cruzar).

Ejemplo incorrecto (etiquetas cruzadas):

<persona>
    <nombre>Juan
    <apellido>Pérez</nombre>
</apellido>
</persona>

Ejemplo correcto:

<persona>
    <nombre>Juan</nombre>
    <apellido>Pérez</apellido>
</persona>

6. Ejemplo de jerarquía más compleja

<empresa>
    <departamento id="D1">
        <nombre>Ventas</nombre>
        <empleado id="101">
            <nombre>Laura</nombre>
            <puesto>Vendedora</puesto>
        </empleado>
        <empleado id="102">
            <nombre>Carlos</nombre>
            <puesto>Supervisor</puesto>
        </empleado>
    </departamento>
    <departamento id="D2">
        <nombre>TI</nombre>
        <empleado id="201">
            <nombre>Ana</nombre>
            <puesto>Programadora</puesto>
        </empleado>
    </departamento>
</empresa>

Jerarquía:

  • <empresa>: raíz.
  • <departamento>: hijos de <empresa>.
  • <empleado>: hijos de <departamento>.
  • <nombre> y <puesto>: hijos de <empleado> y nietos de <departamento>.
  • Los <departamento> son hermanos entre sí.

7. Ejemplo con atributos + elementos anidados

<universidad>
    <facultad nombre="Ingeniería">
        <carrera nombre="Informática">
            <materia codigo="101">Programación I</materia>
            <materia codigo="102">Bases de Datos</materia>
        </carrera>
        <carrera nombre="Electrónica">
            <materia codigo="201">Circuitos</materia>
        </carrera>
    </facultad>
</universidad>

Estructura en árbol:

universidad
  facultad (nombre=Ingeniería)
       carrera (nombre=Informática)
           materia (codigo=101)
           materia (codigo=102)
       carrera (nombre=Electrónica)
            materia (codigo=201)

8. Buenas prácticas en jerarquía y anidamiento

  • Usar nombres descriptivos en los elementos.
  • Mantener una estructura lógica y coherente (de lo general a lo específico).
  • Evitar anidamientos excesivos que dificulten la lectura.
  • Combinar atributos y elementos de manera adecuada: atributos para propiedades, elementos para datos principales.
  • Mantener un indentado consistente para facilitar la lectura.

9. Ejemplo de mala práctica

<empresa>
    <departamento id="D1" empleado1="Laura,Vendedora" empleado2="Carlos,Supervisor"/>
</empresa>

Aunque es válido técnicamente, es difícil de leer y procesar.

Mejor con elementos anidados:

<empresa>
    <departamento id="D1">
        <empleado>
            <nombre>Laura</nombre>
            <puesto>Vendedora</puesto>
        </empleado>
        <empleado>
            <nombre>Carlos</nombre>
            <puesto>Supervisor</puesto>
        </empleado>
    </departamento>
</empresa>

10. Resumen didáctico

XML organiza sus datos en una jerarquía de elementos en forma de árbol.

Conceptos:

  • Padre: contiene elementos.
  • Hijo: está dentro de otro.
  • Hermano: comparte el mismo padre.

Reglas: no cruzar etiquetas y siempre cerrarlas correctamente.

La jerarquía clara y el buen anidamiento hacen que un XML sea legible, mantenible y fácil de procesar.