Ir al contenido
Klarfile

KF-XML-DOCTYPE: El XML declara una DTD, y la rechazamos

Este código aparece al comprobar una factura electrónica. Esto es lo que significa, por qué salta y qué hay que cambiar en el archivo.

Por qué aparece este código

El archivo adjunto contiene una declaración <!DOCTYPE>. No leemos ninguna DTD venida de un tercero: unas entidades que se llaman entre sí pueden reventar la memoria del navegador, y una entidad externa obliga a ir a buscar un archivo a otra parte. Ninguna factura Factur-X legítima lleva una.

Cómo corregirlo

Produzca el XML sin declaración de tipo de documento. Si su herramienta añade una, es un ajuste de serialización, no una exigencia del formato.

Qué aspecto tiene en el archivo

Estos dos fragmentos se vuelven a ejecutar en cada entrega contra nuestro propio verificador, sobre una factura completa. El primero dispara este código, el segundo no.

Lo que dispara el código:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rsm:CrossIndustryInvoice SYSTEM "facture.dtd">

Lo que hay que escribir en su lugar:

<?xml version="1.0" encoding="UTF-8"?>

Dónde se juega

Esta comprobación es nuestra, no un código de la norma: no cubrimos bastante de la EN 16931 como para tomar prestados sus números, y un código oficial mal atribuido enviaría a corregir el campo equivocado. Se refiere a XML.

Comprobar mi factura Todos los códigos de rechazo