Cfdi.Concepto.Complemento (cfdi v4.0.1)

Copy Markdown

cfdi:ComplementoConcepto — contenedor de complementos fiscales anidados dentro de un cfdi:Concepto (ej. iedu:instEducativas).

Cada hijo es un struct de Cfdi.Complementos.* que implementa el comportamiento Cfdi.Complementos.Complemento (expone get_complement/1 con su tag, xmlns y payload). El contenedor nunca inventa el tag o los atributos — delega en el complemento.

Summary

Functions

Añade un complemento (struct que implementa Cfdi.Complementos.Complemento).

Nombre local del tag, sin namespace. Ej: "Emisor".

Prefijo de namespace del tag ("cfdi") o nil si no lleva.

Tag XML completo (con namespace, si lo hay). Ej: "cfdi:Emisor".

Proyecta la struct a mapa.

Types

t()

@type t() :: %Cfdi.Concepto.Complemento{complementos: list() | nil}

Functions

add(c, complemento)

Añade un complemento (struct que implementa Cfdi.Complementos.Complemento).

local_name()

@spec local_name() :: String.t()

Nombre local del tag, sin namespace. Ej: "Emisor".

namespace()

@spec namespace() :: String.t() | nil

Prefijo de namespace del tag ("cfdi") o nil si no lleva.

tag()

@spec tag() :: String.t()

Tag XML completo (con namespace, si lo hay). Ej: "cfdi:Emisor".

to_element(c)

@spec to_element(t()) :: tuple()

to_element(el, kids)

@spec to_element(t(), iodata()) :: tuple()

to_map(el)

@spec to_map(t() | nil) :: map() | nil

Proyecta la struct a mapa.

Opciones:

  • :nstrue (default) incluye prefijo y envuelve bajo "cfdi:Tag"; false devuelve solo los atributos como mapa plano.
  • :wraptrue (default) envuelve bajo la llave del tag; false devuelve solo el cuerpo.