Página 1 de 3

Para usar las XSLT es necesario estar conectado a Internet ?

Publicado: Dom Oct 24, 2010 8:36 pm
por Alex Noria
Hola:

Estoy observando que en cadenaoriginal_2_0.xslt realiza una serie de includes al sitio del sat por ejemplo :

<xsl:include href="http://www.sat.gob.mx/sitio_internet/cf ... ias.xslt"/>

y algunos otros ....

<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/ecc/ecc.xslt"/>
<xsl:include href="http://www.sat.gob.mx/sitio_internet/cf ... cfd.xslt"/>
....

Es necesario estar conectado a Internet ?

Gracias por la ayuda

Re: Para usar las XSLT es necesario estar conectado a Intern

Publicado: Lun Oct 25, 2010 9:23 am
por mauricio
Hola...

Si usas el XSLT original si, puedes descargar cada XSLT al que hace referencia y editarlo para hacer que sea local la búsqueda de este, de este modo ya no necesitas estar conectado a Internet.

Saludos

Re: Para usar las XSLT es necesario estar conectado a Intern

Publicado: Lun Oct 25, 2010 9:35 am
por Alex Noria
Perfecto Mauricio!

Muchas gracias, voy a editarlo para que no dependa de Internet.

Saludos.

Re: Para usar las XSLT es necesario estar conectado a Intern

Publicado: Lun Dic 13, 2010 1:47 pm
por Oscargf
A ver si entendí bien y no meto la pata:
los includes que aparecen son estos:

Código: Seleccionar todo

<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/2/cadenaoriginal_2_0/utilerias.xslt" /> 
  <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/ecc/ecc.xslt" /> 
  <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/psgecfd/psgecfd.xslt" /> 
  <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/donat/donat.xslt" /> 
  <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/divisas/divisas.xslt" /> 
  <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/ecb/ecb.xslt" /> 
  <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/detallista/detallista.xslt" /> 
  <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xslt" /> 
  <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/terceros/terceros.xslt" /> 
guardo los archivos en una carpeta, por ejemplo en c:/1/1a/XSLT

cambio la referencia a los archivos:

Código: Seleccionar todo

   <xsl:include href="c:/1/1a/XSLT/utilerias.xslt" /> 
   <xsl:include href="c:/1/1a/XSLT/ecc.xslt"/>
	<xsl:include href="c:/1/1a/XSLT/psgecfd.xslt"/>
	<xsl:include href="c:/1/1a/XSLT/donat.xslt"/>
	<xsl:include href="c:/1/1a/XSLT/divisas.xslt"/>
	<xsl:include href="c:/1/1a/XSLT/ecb.xslt"/>
	<xsl:include href="c:/1/1a/XSLT/detallista.xslt"/>
	<xsl:include href="c:/1/1a/XSLT/implocal.xslt"/>
	<xsl:include href="c:/1/1a/XSLT/terceros.xslt"/> 
probamos y ... ¡FUNCIONA!

incluso podria eliminar los que no uso (donaciones, estado de cuenta de combustible....)

Muy bueno Mauricio

Re: Para usar las XSLT es necesario estar conectado a Intern

Publicado: Lun Dic 13, 2010 3:24 pm
por alvaro_gzlz
Hola, soy nuevo en este foro y precisamente estaba haciendo lo mismo que tú, edite el XSLT y bajé los archivos a mi PC, al realizar la carga del archivo no me marca ningún error, pero al obtener la cadena original no la obtengo de manera correcta. Tú sabrás porqué tengo éste error?

Re: Para usar las XSLT es necesario estar conectado a Intern

Publicado: Lun Dic 13, 2010 3:52 pm
por Dado
alvaro_gzlz escribió:Hola, soy nuevo en este foro y precisamente estaba haciendo lo mismo que tú, edite el XSLT y bajé los archivos a mi PC, al realizar la carga del archivo no me marca ningún error, pero al obtener la cadena original no la obtengo de manera correcta. Tú sabrás porqué tengo éste error?
Revisa esta entrada

Re: Para usar las XSLT es necesario estar conectado a Intern

Publicado: Lun Dic 13, 2010 4:12 pm
por alvaro_gzlz
Ok, a ver, va de nuevo......

Estoy realizando un programa en VB.Net que genere la factura electrónica. Hasta ahorita ya tengo todo el flujo de la generación del XML, la cadena original y el sellado del mismo. Para obtener la cadena original estoy haciéndolo a través del XSLT que brinda el SAT. El XSLT lo estoy cargando de la sig manera:

Código: Seleccionar todo

            'Se establecen las propiedades del reader
            oPropiedadesReader = New XmlReaderSettings
            oPropiedadesReader.ProhibitDtd = False
            oPropiedadesReader.ValidationType = ValidationType.None
            oPropiedadesReader.CloseInput = True

            'Se establecen las propiedades del XSLT
            oPropiedadesXSLT = New XsltSettings
            oPropiedadesXSLT.EnableDocumentFunction = False
            oPropiedadesXSLT.EnableScript = False

            'Se carga el archivo XSLT

            oLectorXML = XmlReader.Create(New IO.StringReader(IO.File.ReadAllText(sArchivoXSLT)), oPropiedadesReader)
            oDocumentoXSLT.Load(oLectorXML, oPropiedadesXSLT, New Xml.XmlUrlResolver)
Cuando la máquina tiene conexión a Internet no tengo problema alguno, pero cuando no la tiene en el método Load marca un error "Error de compilación XSLT". Intenté realizar lo que mencionan en éste post de bajar los archivos XSLT y cambiar las referencias y direccionarlas a mi PC. Con ésto en el método Load no tengo errores, pero al obtener la cadena original de mi documento XML me regresa algo como lo sig.

||
|
2.0
|
s
|
23
|
2010-12-13T12:59:00
|
1212121
|
2010
|
ingreso
|
Pago Inmediato
|
Pago Inmediato
|
7355.74
......


Cuando intento validar mi XML en el validador del SAT me dice que "El sello del comprobante no es válido"
Alguien me puede ayudar? Espero haber sido claro

Re: Para usar las XSLT es necesario estar conectado a Intern

Publicado: Lun Dic 13, 2010 5:39 pm
por Oscargf
Alvaro:
yo creo que si conectado a internet te funciona bien y desconectado no, el problema puede ester en los archivos .xslt que guardaste en tu disco duro o en la referencia a estos.
Revisalos cuidadosamente.
Yo estuve batallando un rato porque en una de las referencias me olvidé un caracter "/" : puse <xsl:include href="c:/1/1a/XSLTdivisas.xslt"/>

Si en tu xml no usas todas las cosas: donaciones (donat), estado de cuenta bancario (ecb), Estado de cuenta de combustible (ecc), prestadores de servicios de CFD ( psgecfd), por cuenta de terceros(terceros) impuesto local (imlocal), ...puedes eliminar las referencias a las que no uses, dejando la de utilerias y alguna que necesites, para probar a ver si asi te sale bien. Si funciona, puedes ir añadiendo de una en una hasta encontrar la que está mal.

saludos

Oscar

Re: Para usar las XSLT es necesario estar conectado a Intern

Publicado: Mar Dic 14, 2010 8:57 am
por smendoza
alvaro_gzlz escribió:Cuando la máquina tiene conexión a Internet no tengo problema alguno, pero cuando no la tiene en el método Load marca un error "Error de compilación XSLT". Intenté realizar lo que mencionan en éste post de bajar los archivos XSLT y cambiar las referencias y direccionarlas a mi PC. Con ésto en el método Load no tengo errores, pero al obtener la cadena original de mi documento XML me regresa algo como lo sig.

||
|
2.0
|
s
|
23
....
Te lo regresa con los saltos de linea???? lo del error de compilacion XSLT a mi me lo marcaba cuando no se podia inluir alguna referencia,,, en mi caso la unica referencia que utilizo es la de utilierias, y las demas las puse como comentarios

Código: Seleccionar todo

<xsl:include href="C:\utilerias.xslt"/>
	<!-- 
		En esta sección se define la inclusión de las demás plantillas de transformación para 
		la generación de las cadenas originales de los complementos fiscales 
	-->
	<!--Aqui comienzan los comentarios
	<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/ecc/ecc.xslt"/>
	<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/psgecfd/psgecfd.xslt"/>
	<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/donat/donat.xslt"/>
	<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/divisas/divisas.xslt"/>
	<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/ecb/ecb.xslt"/>
	<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/detallista/detallista.xslt"/>
	<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xslt"/>
	<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/terceros/terceros.xslt"/>
	y Aqui terminan-->
en mi caso, genero la cadena original mediante xslt de la siguiente manera:

Código: Seleccionar todo

 
        Dim transformador As XslCompiledTransform ' variable que transforma el xml mediante el xstl

        transformador = New XslCompiledTransform ' constructor

        transformador.Load("C:\cadenaoriginal_2_0.xslt") ' carga el xslt desde la ruta en donde se encuentre

        transformador.Transform("C:\reporte.xml", "C:\CadenaOriginal.txt") ' Transforma el archivo xml y lo guarda en un archivo de texto llamado cadenaoriginal.txt

        RichTextBox1.Text = System.IO.File.ReadAllText("C:\CadenaOriginal.txt") 'Carga el txt en un richtextbox

Nunca he tenido problema al generar la cadena original con este metodo :geek:

Saludos!!

Re: Para usar las XSLT es necesario estar conectado a Intern

Publicado: Vie Dic 17, 2010 11:01 am
por alvaro_gzlz
Despues de tanto revisar me he dado cuenta de que mi error está en el XSLT de Utilerias, el archivo estaba mal en las etiquetas donde inserta el '|' por eso me hacía un salto de línea en cada atributo, Espero que a alguien le sirva la información y Gracias a los que me ayudaron :D