xdoc-rs 0.1.1

Declarative XML engine for Rust
Documentation
# 004 - Core Document Tree

## Context

El core debe representar XML como arbol tipado usando IDs de nodos. Esta tarea no incluye parsing ni serializacion.

Fuente: `plan_libreria_xml_generica_rust.md`, secciones "`xdoc-core`", "Decisiones importantes" y "Fase 1 - XML Core". Adaptacion local: implementar en `src/core/`.

## Dependencies

[x] 003 - Core Names Namespaces And Errors.

## Instructions

[x] Implementar `Document`.
[x] Implementar `NodeId`.
[x] Implementar `Node`.
[x] Implementar `NodeKind`.
[x] Implementar `ElementData`.
[x] Implementar `Attribute`.
[x] Implementar nodos `Text`, `Comment`, `CData` y `ProcessingInstruction`.
[x] Implementar navegacion padre/hijo.
[x] Implementar `XmlPath` interno.
[x] Evitar referencias directas entre nodos; usar `NodeId`.

## Checklist

[x] `Document::new()` crea documento vacio.
[x] `Document` puede tener root opcional.
[x] Se puede agregar un elemento root.
[x] Se puede agregar hijo a un elemento.
[x] Se puede obtener padre de un nodo.
[x] Se puede listar hijos de un nodo.
[x] Se puede agregar atributo a un elemento.
[x] Se puede agregar texto.
[x] Se puede agregar comentario.
[x] Se puede agregar CDATA.
[x] Se puede agregar processing instruction.
[x] `XmlPath` identifica ubicacion logica de nodos.
[x] Se rechaza agregar segundo root si el documento ya tiene root.
[x] Se rechaza usar `NodeId` inexistente.

## Verification

Ejecutar:

```bash
cargo test document
cargo test node
cargo test navigation
cargo test xml_path
cargo test core
```

Criterio medible:

[x] Tests cubren creacion de arbol con minimo 3 niveles.
[x] Tests cubren navegacion padre/hijo.
[x] Tests cubren atributos y namespaces en elementos.
[x] Tests cubren errores por `NodeId` invalido.

## Acceptance Criteria

[x] Se puede crear un arbol XML completo en memoria.
[x] El core no sabe como parsear ni serializar.
[x] `src/core/` no depende de ningun modulo superior.

## Worklog

[x] Completado el 2026-06-10. Verificado con los comandos de la tarea y la verificacion minima global.