viernes, 2 de junio de 2017

Generando clases en Java para el CFDI 3.3

Seguramente están enterados de que el Comprobante Fiscal Digital por Intener (CFDI) tiene una nueva versión: la 3.3.

El Servicio de Administración Tributaria (SAT) , nos ha proporcionado la información del Anexo 20 donde se indican los requisitos con los que debe cumplir la versión 3.3.  La información puede ser consultada en la página http://www.sat.gob.mx/informacion_fiscal/factura_electronica/Paginas/Anexo_20_version3.3.aspx.

En la página podemos encontrar los siguientes archivos .XSD:
Para generar las clases de Java será necesario descargar los archivos .xsd y ejecutar el comando XJC incluido en el JDK de java.  Mi recomendación es que se cree un folder llamado src en la misma carpeta donde descargaron los archivos .xsd

Para genear las clases Java del Timbre Fiscal Digital

xjc TimbreFiscalDigitalv11.xsd -p mx.sat.tfd11 -d src\

Para generar las clases del CFDI 3.3 

Primero es necesario generar un archivo que se llame binding.xjb, donde vamos a indicar el número máximo de enumeraciones al momento de generar las clases java, de lo contrario, si no generamos éste archivo, obtendremos un error como este:

[WARNING] El tipo simple "c_CodigoPostal" no se ha asignado a Enum debido al límite de EnumMemberSizeCap. Recuento de facetas: 95,777, límite actual: 256. Puede utilizar el atributo de personalización "typesafeEnumMaxMembers" para ampliar el límite.
  línea 229 de http://www.sat.gob.mx/sitio_internet/cfd/catalogos/catCFDI.xsd
 El contenido del archivo binding.xjb es el siguiente:



Después, simplemente hay que ejecutar siguiente comando para generar los archivos Java del CFDI:


xjc cfdv33.xsd -p mx.sat.cfd33 -b binding.xjb -d src\

Listo ya tenemos nuestras clases Java.

Espero les sea de utilidad.