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 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:
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.
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:
- Esquema del CFDI versión 3.3
- Esquema del timbre fiscal digital versión 1.1
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.El contenido del archivo binding.xjb es el siguiente:
línea 229 de http://www.sat.gob.mx/sitio_internet/cfd/catalogos/catCFDI.xsd
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.
Este proyecto usa estas clases con binding
ResponderEliminarhttps://github.com/estepuma/cfdi33-core
Hola, el problema que tengo es que no se generan las clases de colonia, codigo postal. El xjc se ejecuta sin errores se generan algunas clases pero no todas. El archivo de binding lo está tomando en cuenta porque no muestra errores avisando que el enum supera el máximo permitido. Será algún problema relativo al schemaLocation definido en el binding? No sé si tendrás alguna sugerencia. Gracias!
ResponderEliminarLa linea que pones así:
ResponderEliminarxjc cfdv33.xsd -p mx.sat.cfd33 -b bindinds.xjb -d src\
Debe ser así:
xjc cfdv33.xsd -p mx.sat.cfd33 -b binding.xjb -d src\
Me funciono de maravilla gracias
Excelente, gracias por la retroalimentación. Saludos.
Eliminarpuedes compartir las clases de java generadas.
EliminarMe podrian decir donde ejecuto ese comando por favor
ResponderEliminaruna duda con estas clases mi xml queda sin el prefijo cfdi: ¿como es posible agregarlo ?
ResponderEliminaralguien que pueda compartir las clases, a mí tmb me faltan algunas clases al correr el comando!
ResponderEliminar