Descobre os módulos Isox.Generated.<Mensagem>.<Versao> já
carregados e despacha o parse pela combinação namespace + MsgDefIdr
(ADR 0002) — os dois precisam concordar, ou é erro.
Summary
Functions
Acha, entre os módulos gerados carregados, o que declara o namespace do
XML; faz o parse com ele e confere que o MsgDefIdr recebido é
exatamente o esperado por aquele módulo.
Todos os módulos gerados que expõem namespace/0 (exclui o Head001,
que não é mensagem). Lê a lista de módulos da aplicação compilada
(Application.spec/2) em vez de :code.all_loaded/0 — este só enxerga
módulo já referenciado em tempo de execução, e nada aqui garante isso.
Namespace do elemento raiz (xmlns do <Envelope>), sem fazer o parse completo.
Functions
@spec decode(binary()) :: {:ok, module(), term()} | {:error, {:unknown_namespace, String.t() | nil}} | {:error, {:msg_def_idr_mismatch, expected: String.t(), received: term()}} | {:error, String.t()}
Acha, entre os módulos gerados carregados, o que declara o namespace do
XML; faz o parse com ele e confere que o MsgDefIdr recebido é
exatamente o esperado por aquele módulo.
@spec generated_modules() :: [module()]
Todos os módulos gerados que expõem namespace/0 (exclui o Head001,
que não é mensagem). Lê a lista de módulos da aplicação compilada
(Application.spec/2) em vez de :code.all_loaded/0 — este só enxerga
módulo já referenciado em tempo de execução, e nada aqui garante isso.
Namespace do elemento raiz (xmlns do <Envelope>), sem fazer o parse completo.