<?xml version=“1.0” encoding=“utf-8”?> <xsl:stylesheet version=“1.0” xmlns:xsl=“www.w3.org/1999/XSL/Transform” xmlns:xs=“www.w3.org/2001/XMLSchema” xmlns:fn=“www.w3.org/2005/xpath-functions” xmlns:pago10=“www.sat.gob.mx/Pagos”>
<xsl:template match="pago10:Pagos"> <!--Manejador de Atributos Pagos--> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@Version" /> </xsl:call-template> <!-- Iniciamos el manejo de los elementos hijo en la secuencia --> <xsl:for-each select="./pago10:Pago"> <xsl:apply-templates select="."/> </xsl:for-each> </xsl:template> <xsl:template match="pago10:Pago"> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@FechaPago" /> </xsl:call-template> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@FormaDePagoP" /> </xsl:call-template> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@MonedaP" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@TipoCambioP" /> </xsl:call-template> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@Monto" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@NumOperacion" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@RfcEmisorCtaOrd" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@NomBancoOrdExt" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@CtaOrdenante" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@RfcEmisorCtaBen" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@CtaBeneficiario" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@TipoCadPago" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@CertPago" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@CadPago" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@SelloPago" /> </xsl:call-template> <!-- Iniciamos el tratamiento de los atributos de pago10:DocumentoRelacionado--> <xsl:for-each select="./pago10:DoctoRelacionado"> <xsl:apply-templates select="."/> </xsl:for-each> <xsl:for-each select="./pago10:Impuestos"> <xsl:apply-templates select="."/> </xsl:for-each> </xsl:template> <xsl:template match="pago10:DoctoRelacionado"> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@IdDocumento" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@Serie" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@Folio" /> </xsl:call-template> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@MonedaDR" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@TipoCambioDR" /> </xsl:call-template> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@MetodoDePagoDR" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@NumParcialidad" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@ImpSaldoAnt" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@ImpPagado" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@ImpSaldoInsoluto" /> </xsl:call-template> </xsl:template> <xsl:template match="pago10:Impuestos"> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@TotalImpuestosRetenidos" /> </xsl:call-template> <xsl:call-template name="Opcional"> <xsl:with-param name="valor" select="./@TotalImpuestosTrasladados" /> </xsl:call-template> <xsl:apply-templates select="./pago10:Retenciones"/> <xsl:apply-templates select="./pago10:Traslados"/> </xsl:template> <xsl:template match="pago10:Retenciones"> <xsl:for-each select="./pago10:Retencion"> <xsl:apply-templates select="."/> </xsl:for-each> </xsl:template> <xsl:template match="pago10:Traslados"> <xsl:for-each select="./pago10:Traslado"> <xsl:apply-templates select="."/> </xsl:for-each> </xsl:template> <xsl:template match="pago10:Retencion"> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@Impuesto" /> </xsl:call-template> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@Importe" /> </xsl:call-template> </xsl:template> <xsl:template match="pago10:Traslado"> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@Impuesto" /> </xsl:call-template> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@TipoFactor" /> </xsl:call-template> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@TasaOCuota" /> </xsl:call-template> <xsl:call-template name="Requerido"> <xsl:with-param name="valor" select="./@Importe" /> </xsl:call-template> </xsl:template>
</xsl:stylesheet>