# 008e - Macro Basic Builder Codegen
## Context
Generar codigo Rust desde el AST de `xml!` hacia el builder y el tipo puente de salida. Esta tarea cubre el MVP basico sin componentes avanzados.
Fuente: `plan_libreria_xml_generica_rust.md`, secciones "`xdoc-macro`" y "Diseno interno".
## Dependencies
[x] 008c - Macro Output Bridge.
[x] 008d - Macro Parser And AST.
## Instructions
[x] Generar llamadas a `xdoc::builder` desde elementos XML.
[x] Soportar `<Root/>`.
[x] Soportar `<Root><Child>text</Child></Root>`.
[x] Soportar texto literal.
[x] Soportar texto por expresion `{ expr }`.
[x] Soportar atributos literales.
[x] Soportar atributos por expresion.
[x] Soportar fragments interpolados como children.
[x] Propagar errores como `XmlResult`.
[x] Agregar tests de uso valido de `xml!`.
[x] Confirmar interoperabilidad con `src/writer/`.
## Checklist
[x] `xml! { <Root/> }` compila.
[x] XML nested basico compila.
[x] Texto literal se serializa correctamente.
[x] Texto por expresion se serializa correctamente.
[x] Atributo literal se serializa correctamente.
[x] Atributo por expresion se serializa correctamente.
[x] Fragment interpolado se compone como child.
[x] El codigo generado usa builder.
[x] La macro no construye nodos del core manualmente.
## Verification
Ejecutar:
```bash
cargo test xml_macro_basic
cargo test macros
cargo test writer
cargo fmt --all -- --check
cargo check
```
Criterio medible:
[x] Minimo 5 tests validos de `xml!` basico.
[x] Un test confirma interpolacion de variable Rust.
[x] Un test confirma salida serializada con writer.
## Acceptance Criteria
[x] La macro ya permite construir XML generico simple.
[x] La macro sigue usando builder como fuente de verdad.
[x] Quedan fuera de esta tarea componentes avanzados y namespaces completos.
## Worklog
[x] Completado el 2026-06-11. Se agrego codegen basico en `xdoc-macros`, `xml!` genera `XmlTemplate` via builder para elementos, texto, atributos e interpolaciones, y se mantienen fuera comments/namespaces/componentes para `008f`/`008g`.