Cfdi.Transform.Types (cfdi_transform v4.0.1)

Copy Markdown

Tipos de datos del motor de cadena original.

Espejo de src/types.ts del paquete @cfdi/transform.

Summary

Types

Regla derivada de <xsl:call-template name="Requerido|Opcional"> con <xsl:with-param select="@AttrName"/>. Indica que se debe extraer el atributo name del nodo actual.

Regla derivada de <xsl:apply-templates> o <xsl:for-each>.

Regla de <xsl:call-template> cuyo select es una ruta a contenido textual (no un atributo). Equivale a xsl:value-of.

Types

attr_rule()

@type attr_rule() :: %{type: :attr, name: String.t(), required: boolean()}

Regla derivada de <xsl:call-template name="Requerido|Opcional"> con <xsl:with-param select="@AttrName"/>. Indica que se debe extraer el atributo name del nodo actual.

child_rule()

@type child_rule() :: %{
  :type => :child,
  :select => String.t(),
  :for_each => boolean(),
  :inline => [attr_rule() | text_rule()],
  :apply_templates => boolean(),
  optional(:condition) => String.t(),
  optional(:wildcard) => boolean(),
  optional(:descendant) => boolean()
}

Regla derivada de <xsl:apply-templates> o <xsl:for-each>.

Campos:

  • :select — expresión XPath simplificada (sin ./).
  • :for_eachtrue si proviene de xsl:for-each.
  • :inline — atributos/textos inline dentro del for-each.
  • :apply_templates — si dentro hay xsl:apply-templates que recurra contra el registro de plantillas.
  • :conditionxsl:if test="..." que envuelve la regla.
  • :wildcardselect="./*" o "*": aplica plantilla a cada hijo elemento.
  • :descendantselect=".//foo": busca en cualquier descendiente.

parsed_template()

@type parsed_template() :: %{match: String.t(), rules: [rule()]}

rule()

@type rule() :: attr_rule() | text_rule() | child_rule()

template_registry()

@type template_registry() :: %{
  templates: %{optional(String.t()) => parsed_template()},
  namespaces: %{optional(String.t()) => String.t()}
}

text_rule()

@type text_rule() :: %{type: :text, select: String.t(), required: boolean()}

Regla de <xsl:call-template> cuyo select es una ruta a contenido textual (no un atributo). Equivale a xsl:value-of.