Creación de cadena original CFDI 3.3 con java
Pasos para creación de la cadena original del CFDI 3.3:
1. Tener anotadas las clases con javax, como en el blog.
2. Obtener el archivo cadenaoriginal_3_3.xslt del SAT.
3. Generar la cadena original con el siguiente código:
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.util.JAXBSource;
import javax.xml.transform.Result;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
...
JAXBContext jaxBContext = JAXBContext.newInstance("mx.gob.sat.v33"); //El paquete donde se encuentra la clase Comprobante
StreamSource ss = new StreamSource(getClass().getResourceAsStream("/xslt33/cadenaoriginal_3_3.xslt")); //La ruta donde se encuentra el archivo xslt
TransformerFactory transformerFactory = TransformerFactory.newInstance();
transformerFactory.setURIResolver(new URIResolverImpl());
Transformer transformer = transformerFactory.newTransformer(ss);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Result out = new StreamResult(baos);
JAXBSource in = new JAXBSource(jaxBContext, comprobante);
transformer.transform(in, out);
byte[] cadenaOriginalArray = baos.toByteArray();
String cadOrig = new String(cadOrigBytes, "UTF-8");
logger.debug("Cadena Original:" + cadOrigEncod);
...
Las dependencias del archivo cadenaoriginal_3_3.xslt yo las tengo locales, es decir, modifiqué las rutas para que en lugar de ser http fueran rutas locales relativas, por ejemplo:
<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/EstadoDeCuentaCombustible/ecc11.xslt"/>
...
Lo modifiqué así:
<xsl:include href="/xslt33/EstadoDeCuentaCombustible/ecc11.xslt"/>
...
Espero les sirva
- estepuma's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios recientes
hace 1 día 19 horas
hace 1 día 19 horas
hace 1 día 5 horas
hace 45 semanas 9 horas
hace 2 años 4 semanas
hace 2 años 8 semanas
hace 2 años 16 semanas
hace 2 años 24 semanas
hace 2 años 26 semanas
hace 2 años 28 semanas