# Documentacion por feature
Cada feature tiene su propio archivo. Este documento es el indice para navegar
la documentacion funcional de la libreria.
`Feature` aqui significa area funcional de la libreria, no un flag de
`Cargo.toml [features]`. La crate no expone feature flags publicos todavia.
| Entender el arbol XML, nombres, namespaces y errores | [core.md](core.md) | `src/core/*` |
| Crear XML con API Rust explicita | [builder.md](builder.md) | `src/builder/mod.rs` |
| Partir XML grande en componentes reutilizables | [component.md](component.md) | `src/component/mod.rs` |
| Escribir XML con sintaxis tipo tags | [macros.md](macros.md) | `src/macros/mod.rs`, `crates/xdoc-macros/*` |
| Convertir `Document` a XML string | [writer.md](writer.md) | `src/writer/mod.rs` |
| Leer XML externo con limites seguros | [parser.md](parser.md) | `src/parser/mod.rs` |
| Consultar nodos, atributos y textos | [query.md](query.md) | `src/query/mod.rs` |
| Convertir un XML en otro XML | [transform.md](transform.md) | `src/transform/mod.rs` |
| Validar estructura con contratos propios | [schema.md](schema.md) | `src/schema/mod.rs` |
| Configurar limites y politicas seguras | [security.md](security.md) | `src/security/mod.rs` |
| Canonicalizar, firmar o verificar XML | [signature.md](signature.md) | `src/signature/*` |
| Crear fixtures, goldens y roundtrip tests | [testing.md](testing.md) | `src/testing/mod.rs`, `tests/*`, `fuzz/*` |
| Usar comandos desde terminal | [cli.md](cli.md) | `crates/xdoc-cli/src/main.rs` |
## Rutas de aprendizaje
Construccion declarativa:
1. [builder.md](builder.md)
2. [component.md](component.md)
3. [macros.md](macros.md)
4. [writer.md](writer.md)
XML existente:
1. [parser.md](parser.md)
2. [query.md](query.md)
3. [schema.md](schema.md)
4. [transform.md](transform.md)
Firma:
1. [writer.md](writer.md)
2. [parser.md](parser.md)
3. [query.md](query.md)
4. [signature.md](signature.md)
Pruebas y herramientas:
1. [testing.md](testing.md)
2. [cli.md](cli.md)
3. [files.md](files.md)
## Relacion entre features
```text
core
|
+-- builder -- component -- macros
|
+-- writer
|
+-- parser
|
+-- query -- schema
| \-- transform
|
+-- signature
|
+-- testing
```
Regla de diseno: las features del motor no conocen dominios. Las reglas de
negocio viven fuera de `xdoc` y usan estas piezas por configuracion.