Cfdi.Transform.CadenaEngine
(cfdi_transform v4.0.1)
Copy Markdown
Motor de generación de cadena original. Espejo de
cadena-engine.ts.
Recibe el XML del CFDI y un template_registry parseado por
Cfdi.Transform.XsltParser, y produce la cadena |...|...||.
Summary
Functions
Genera la cadena original a partir del contenido XML y un registro de
plantillas. Devuelve {:ok, cadena} o un {:error, _}.
Colapsa whitespace (\s+ → ) y hace trim. Equivale a normalize-space()
de XSLT, que es lo que usan las plantillas Requerido y Opcional.
Equivalente a Opcional(valor): vacío si nil, sino | + normalize-space.
Procesa un nodo aplicando la plantilla correspondiente a su nombre completo (con prefijo). Devuelve iodata.
Equivalente a Requerido(valor): prefija | + normalize-space.
Resuelve un select con segmentos prefix:Element separados por /.
Devuelve la lista de nodos coincidentes (paridad con resolveSelect de Node).
Functions
@spec generate_cadena_original(String.t(), Cfdi.Transform.Types.template_registry()) :: {:ok, String.t()} | {:error, term()}
Genera la cadena original a partir del contenido XML y un registro de
plantillas. Devuelve {:ok, cadena} o un {:error, _}.
Colapsa whitespace (\s+ → ) y hace trim. Equivale a normalize-space()
de XSLT, que es lo que usan las plantillas Requerido y Opcional.
Equivalente a Opcional(valor): vacío si nil, sino | + normalize-space.
@spec process_node(term(), Cfdi.Transform.Types.template_registry()) :: iodata()
Procesa un nodo aplicando la plantilla correspondiente a su nombre completo (con prefijo). Devuelve iodata.
Equivalente a Requerido(valor): prefija | + normalize-space.
Resuelve un select con segmentos prefix:Element separados por /.
Devuelve la lista de nodos coincidentes (paridad con resolveSelect de Node).