Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-10-2024
[email protected] frrr@grupo3rs.c is offline
Miembro
 
Registrado: mar 2024
Posts: 116
Poder: 3
frrr@grupo3rs.c Va por buen camino
Cita:
Empezado por CarlosArjonomia Ver Mensaje
Yo lo guardo absolutamente todo en cada registro de facturación. XML enviado, XML recibido, desgloso parámetros del XML recibido y los comparo con los del XML enviado, además de todos los parámetros y estados de la transacción desglosados. Toda comprobación es poca con los de la AEAT.

Mi aplicación es de escritorio con base de datos local. Pues también envío mediante API todo lo anterior a una base de datos ubicada en un servidor para tener yo toda la información por si acaso.
Podrías indicar que método usas para desglosar parámetros del XML recibido de AEAT
  #2  
Antiguo 25-10-2024
CarlosArjonomia CarlosArjonomia is offline
Miembro
 
Registrado: abr 2021
Posts: 294
Poder: 6
CarlosArjonomia Va por buen camino
Cita:
Empezado por [email protected] Ver Mensaje
Podrías indicar que método usas para desglosar parámetros del XML recibido de AEAT
Soy de VB 6.0 (Carca) y utilizo xmlDoc = New MSXML2.DOMDocument60, aconsejo usar el chatgpt para muchas dudas. Si le indicas buenos prompts te resuelve en el 90% de dudas.
  #3  
Antiguo 25-10-2024
Logan05 Logan05 is offline
Miembro
 
Registrado: jun 2024
Posts: 105
Poder: 3
Logan05 Va por buen camino
Cita:
Empezado por CarlosArjonomia Ver Mensaje
Soy de VB 6.0 (Carca) y utilizo xmlDoc = New MSXML2.DOMDocument60, aconsejo usar el chatgpt para muchas dudas. Si le indicas buenos prompts te resuelve en el 90% de dudas.
Ole, no soy el único

yo de momento voy muy atrasado, sólo he conseguido el hash y el qr, ahora estoy haciendo mis primeros pinitos (cuando me dejan un rato) con los envíos con MSXML2.DOMDocument60 precisamente.
  #4  
Antiguo 25-10-2024
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Acaban de publicar esto (25/20/2024 14:06):

VERI*FACTU - Actualización esquemas XSD de sistemas VERI*FACTU
----------------------------------------------------------------------------------------------------------
A peticiones de varias empresas desarrolladoras y habiéndose estudiado por parte del DIT-AEAT, se ha modificado levemente la estructura de los esquemas XSD, entendiéndose la necesidad de generar y realizar validaciones registros de facturación de forma independientemente, sin necesidad de incluirlos en un envío para ello. El esquema actual no permitía dicha posibilidad.
El cambio supone tan solo un cambio en el namespace de alguno de los nodos XML que forman parte de los esquemas (Cabecera, RegistroAlta y RegistroAnulacion). Con el cambio realizado los esquemas dan cabida a este requisito y son más fácilmente comprensibles.
También se incluye un cambio en la respuesta de las remisiones en el formato del campo TimestampPresentacion, añadiendo el huso horario de los servidores de la AEAT.
Estos cambios no afectan a la información necesaria para la remisión de registros de facturación, pero puede requerir de algún ajuste en los sistemas informáticos de facturación para poder seguir operando con el sistema VERI*FACTU.


La url es esta, que con el sistema de publicación que tienen, los ficheros estarán por ahí...
https://www.agenciatributaria.es/AEA...ERI_FACTU.html


Actualizo el mensaje#1
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
  #5  
Antiguo 25-10-2024
CarlosArjonomia CarlosArjonomia is offline
Miembro
 
Registrado: abr 2021
Posts: 294
Poder: 6
CarlosArjonomia Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Acaban de publicar esto (25/20/2024 14:06):

VERI*FACTU - Actualización esquemas XSD de sistemas VERI*FACTU
----------------------------------------------------------------------------------------------------------
A peticiones de varias empresas desarrolladoras y habiéndose estudiado por parte del DIT-AEAT, se ha modificado levemente la estructura de los esquemas XSD, entendiéndose la necesidad de generar y realizar validaciones registros de facturación de forma independientemente, sin necesidad de incluirlos en un envío para ello. El esquema actual no permitía dicha posibilidad.
El cambio supone tan solo un cambio en el namespace de alguno de los nodos XML que forman parte de los esquemas (Cabecera, RegistroAlta y RegistroAnulacion). Con el cambio realizado los esquemas dan cabida a este requisito y son más fácilmente comprensibles.
También se incluye un cambio en la respuesta de las remisiones en el formato del campo TimestampPresentacion, añadiendo el huso horario de los servidores de la AEAT.
Estos cambios no afectan a la información necesaria para la remisión de registros de facturación, pero puede requerir de algún ajuste en los sistemas informáticos de facturación para poder seguir operando con el sistema VERI*FACTU.


La url es esta, que con el sistema de publicación que tienen, los ficheros estarán por ahí...
https://www.agenciatributaria.es/AEA...ERI_FACTU.html


Actualizo el mensaje#1
Entiendo que los namespaces de los esquemas tienen que ser dinámicos y no ponerlos de forma estática al generar el xml. Espero que no se les ocurra cambiar "Correcto" por "Escorrecto" en el nodo "EstadoRegistro" por ejemplo.
  #6  
Antiguo 25-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Acaban de publicar esto (25/20/2024 14:06):

VERI*FACTU - Actualización esquemas XSD de sistemas VERI*FACTU
----------------------------------------------------------------------------------------------------------
A peticiones de varias empresas desarrolladoras y habiéndose estudiado por parte del DIT-AEAT, se ha modificado levemente la estructura de los esquemas XSD, entendiéndose la necesidad de generar y realizar validaciones registros de facturación de forma independientemente, sin necesidad de incluirlos en un envío para ello. El esquema actual no permitía dicha posibilidad.
El cambio supone tan solo un cambio en el namespace de alguno de los nodos XML que forman parte de los esquemas (Cabecera, RegistroAlta y RegistroAnulacion). Con el cambio realizado los esquemas dan cabida a este requisito y son más fácilmente comprensibles.
También se incluye un cambio en la respuesta de las remisiones en el formato del campo TimestampPresentacion, añadiendo el huso horario de los servidores de la AEAT.
Estos cambios no afectan a la información necesaria para la remisión de registros de facturación, pero puede requerir de algún ajuste en los sistemas informáticos de facturación para poder seguir operando con el sistema VERI*FACTU.


La url es esta, que con el sistema de publicación que tienen, los ficheros estarán por ahí...
https://www.agenciatributaria.es/AEA...ERI_FACTU.html


Actualizo el mensaje#1
Si alguno puede traducir donde se produce el cambio, a nivel del xml, se lo agradeceria, ya que yo genero los xlm a pelo y me cuesta muchisimo leer el xsd
  #7  
Antiguo 25-10-2024
novatico novatico is offline
Miembro
 
Registrado: dic 2022
Posts: 372
Poder: 4
novatico Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Si alguno puede traducir donde se produce el cambio, a nivel del xml, se lo agradeceria, ya que yo genero los xlm a pelo y me cuesta muchisimo leer el xsd
Si, lo que han cambiado es que, en algunos nodos pasa de "sum" a "sum1" y viceversa.
Por ejemplo:
- la cabecera antes era "<sum1:Cabecera>" uy ahora es "<sum:Cabecera>"
- "RegistroAlta" justo al reves,

y sigo mirando.

Uno más:
- "<sum:RegistroAnulacion>" pasa a "<sum1:RegistroAnulacion>"
  #8  
Antiguo 25-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por novatico Ver Mensaje
Si, lo que han cambiado es que, en algunos nodos pasa de "sum" a "sum1" y viceversa.
Por ejemplo:
- la cabecera antes era "<sum1:Cabecera>" uy ahora es "<sum:Cabecera>"
- "RegistroAlta" justo al reves,

y sigo mirando.

Uno más:
- "<sum:RegistroAnulacion>" pasa a "<sum1:RegistroAnulacion>"
Ok muchas Gracias
Pero aún no lo deben haber actualizado, por que me da error.
  #9  
Antiguo 25-10-2024
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 863
Poder: 3
bmfranky Va por buen camino
cambios.

An cambiado algunas chorradas, por ejemplo antes Se llamaba -> ahora.

Cabecera -> CabeceraType
CabeceraRemisionVoluntaria -> CabeceraTypeRemisionVoluntaria
CabeceraRemisionRequerimiento -> CabeceraTypeRemisionRequerimiento.
Han cambiado los namespaces generados en la importacion.


Xml Generado y enviado.
Cita:
<?xml version="1.0" encoding="utf-16"?>
<RegFactuSistemaFacturacion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<ObligadoEmision xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<NombreRazon>OBLIGADO</NombreRazon>
<NIF>XXNIFXX</NIF>
</ObligadoEmision>
<RemisionVoluntaria xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<FechaFinVeriFactu />
<Incidencia>N</Incidencia>
</RemisionVoluntaria>
</Cabecera>
<RegistroFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<RegistroAlta xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDVersion>1.0</IDVersion>
<IDFactura>
<IDEmisorFactura>XXNIFXX</IDEmisorFactura>
<NumSerieFactura>VC1-24-100011</NumSerieFactura>
<FechaExpedicionFactura>25/10/2024</FechaExpedicionFactura>
</IDFactura>
<NombreRazonEmisor>OBLIGADO</NombreRazonEmisor>
<TipoFactura>F2</TipoFactura>
<FechaOperacion>25-10-2024</FechaOperacion>
<DescripcionOperacion>Venta de materiales servidos cliente contado.</DescripcionOperacion>
<Desglose>
<DetalleDesglose>
<ClaveRegimen>01</ClaveRegimen>
<CalificacionOperacion>S1</CalificacionOperacion>
<TipoImpositivo>21.00</TipoImpositivo>
<BaseImponibleOimporteNoSujeto>12.23</BaseImponibleOimporteNoSujeto>
<CuotaRepercutida>2.57</CuotaRepercutida>
</DetalleDesglose>
</Desglose>
<CuotaTotal>2.57</CuotaTotal>
<ImporteTotal>14.80</ImporteTotal>
<Encadenamiento>
<RegistroAnterior>
<IDEmisorFactura>XXNIFXX</IDEmisorFactura>
<NumSerieFactura>VC1-24-100010</NumSerieFactura>
<FechaExpedicionFactura>22-10-2024</FechaExpedicionFactura>
<Huella>FF2116821784D657D18CAF5EE5FD3B61E480EBE3187415DFB8E4F52A335692D3</Huella>
</RegistroAnterior>
</Encadenamiento>
<SistemaInformatico>
<NombreRazon>Yo mismo</NombreRazon>
<NIF>Mi Nif</NIF>
<NombreSistemaInformatico>Facturas Taller 2024</NombreSistemaInformatico>
<IdSistemaInformatico>A1</IdSistemaInformatico>
<Version>5.1.531.1509</Version>
<NumeroInstalacion>001</NumeroInstalacion>
<TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu>
<TipoUsoPosibleMultiOT>N</TipoUsoPosibleMultiOT>
<IndicadorMultiplesOT>N</IndicadorMultiplesOT>
</SistemaInformatico>
<FechaHoraHusoGenRegistro>2024-10-25T16:10:58+02:00</FechaHoraHusoGenRegistro>
<TipoHuella>01</TipoHuella>
<Huella>402CCF9B22FDB0F599C80AA3D5B677423B63060D3E76DAF34E48D5D44A56662C</Huella>
</RegistroAlta>
</RegistroFactura>
</RegFactuSistemaFacturacion>
Da Ko, con el nuevo dice que justamente no se ha encontrado la cabecera en el envio...
Cita:
Codigo[4102].El XML no cumple el esquema. Falta informar campo obligatorio.: Cabecera
Hbra que esperarse un par de dias a ver si actualizan?
  #10  
Antiguo 25-10-2024
novatico novatico is offline
Miembro
 
Registrado: dic 2022
Posts: 372
Poder: 4
novatico Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Si alguno puede traducir donde se produce el cambio, a nivel del xml, se lo agradeceria, ya que yo genero los xlm a pelo y me cuesta muchisimo leer el xsd
Yo trabajo igual que tú, genero el XML "a pelo".
Para ayudarme, cada vez que publican cambios en la estructura, me descargo el "wsdl" y los "xsd", en una carpeta nueva y vacía cada vez, y usando "SoapUI", tal como explicó algún compañero en este mismo foro, se puede generar un "xml" a modo de plantilla, lo que permite revisar más facilmente.
  #11  
Antiguo 25-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por novatico Ver Mensaje
Yo trabajo igual que tú, genero el XML "a pelo".
Para ayudarme, cada vez que publican cambios en la estructura, me descargo el "wsdl" y los "xsd", en una carpeta nueva y vacía cada vez, y usando "SoapUI", tal como explicó algún compañero en este mismo foro, se puede generar un "xml" a modo de plantilla, lo que permite revisar más facilmente.
Llevas razón , desde el inicio del hilo
ll han dicho varias veces. Me tengo que instalar la herramienta y aun no la he puesto
  #12  
Antiguo 28-10-2024
antoine0 antoine0 is offline
Miembro
 
Registrado: oct 2021
Posts: 260
Poder: 5
antoine0 Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Si alguno puede traducir donde se produce el cambio, a nivel del xml, se lo agradeceria, ya que yo genero los xlm a pelo y me cuesta muchisimo leer el xsd
Hago dos cosas a cada cambio de XSD:
  1. Comparo con la versión anterior; lo hago con la herramienta diff (de Unix) pero es solo por costumbre, cualquiera herramienta valga. Por ejemplo, ponerlos en un sistema de control de versión lo hace de manera automática.
  2. Paso el XSD por una transformación en formato HTML, que me resulta muchísimo más sencillo de leer

Hay que pasar todos los esquemas involucrados en un determinado WSDL, y dejar los HTML en el mismo repertorio.

La transformación que uso está derivada de una que encontró hace años (y tiene aún más años) y que creo es de uso libre.

Código:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Stylesheet for NHSiS Schemas - David Brazier 17/11/00
     Work in progress, free for use as-is.
     (C) Common Services Agency 2000
 Modifications (C) 2017-2024 Antoine Leca (free to use) -->
<xsl:stylesheet version="1.0"
		xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
		xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsl:output encoding="UTF-8"/>
<xsl:strip-space elements="*"/>

	<xsl:template match="xsd:schema">
		<html>
			<head>
				<title>Schema: <xsl:value-of select="@targetNamespace"/>
				</title>
			</head>
			<style>
   table { border-collapse: collapse }
   td { vertical-align: top }
   </style>
			<!-- for testing:
   td { border: 1px solid blue; vertical-align: top }
-->
			<body>
				<h3>Schema: <xsl:value-of select="@targetNamespace"/></h3>
				<p>Version: <xsl:value-of select="@version"/>
				</p>
				<xsl:apply-templates/>
			</body>
		</html>
	</xsl:template>
	<xsl:template match="xsd:import">
		<hr/>
		<i>Import Schema <xsl:value-of select="@namespace"/> from 
		<a>
			<xsl:attribute name="href">
				<xsl:value-of select="@schemaLocation"/>.html
			</xsl:attribute>
			{<xsl:value-of select="@schemaLocation"/>}
		</a>
		</i>
	</xsl:template>

	<xsl:template match="xsd:element">
		<xsl:if test="..=/">
			<hr/>
		</xsl:if>
		<table>
			<tr>
				<td colspan="2">
					<b>
						<xsl:value-of select="@name"/>
					</b>
					 
					<xsl:if test="@type">
					: <a>
<!--
	<xsl:variable name="prefix" select="substring-before(name(), concat(':', local-name()) )"/>
 -->
						<xsl:variable name="prefix" select="substring-before(@type,':')"/>

						<xsl:variable name="ns" select="namespace::*[name()=$prefix]"/>
<!--
bug if name(.) contains a namespace... (= if #default namespace is NOT xsd)
Could check that namespace::*[name()=''] == "http://www.w3.org/2001/XMLSchema"
BUGBUG following does not work (double declaration?)
						<xsl:choose>
							<xsl:when test="contains(name(), ':')">
								<xsl:variable name="ns0" select="namespace::*[substring-after(name(.),':')=$prefix]"/>
							</xsl:when>
							<xsl:otherwise>
								<xsl:variable name="ns" select="namespace::*[name()=$prefix]"/>
							</xsl:otherwise>
						</xsl:choose>
 -->
						<xsl:choose>
							<xsl:when test="@type = 'string' or @type = 'double' ">
								<b><xsl:value-of select="@type"/></b>
							</xsl:when>
							<xsl:when test="not($prefix)">
								<xsl:attribute name="href">#<xsl:value-of select="@type"/></xsl:attribute>
								<b>!<xsl:value-of select="@type"/>!</b>
							</xsl:when>
							<xsl:when test="$ns=/xsd:schema/@targetNamespace">
								<xsl:attribute name="href">#<xsl:value-of select="substring-after(@type,':')"/></xsl:attribute>
							</xsl:when>
							<xsl:when test="/xsd:schema/xsd:import[@namespace=$ns]">
								<xsl:attribute name="href"><xsl:value-of select="/xsd:schema/xsd:import[@namespace=$ns]/@schemaLocation"/>.html#<xsl:value-of select="substring-after(@type,':')"/></xsl:attribute>
								{<xsl:value-of select="/xsd:schema/xsd:import[@namespace=$ns]/@schemaLocation"/>}
							</xsl:when>
						</xsl:choose>
						<xsl:value-of select="substring-after(@type,':')"/>
					</a>
					</xsl:if>
					(<xsl:choose>
						<xsl:when test="@minOccurs"><xsl:value-of select="@minOccurs"/></xsl:when>
						<xsl:otherwise>1</xsl:otherwise>
					</xsl:choose>-<xsl:choose>
						<xsl:when test="@maxOccurs"><xsl:value-of select="@maxOccurs"/></xsl:when>
						<xsl:otherwise>1</xsl:otherwise>
					</xsl:choose>)
				</td>
			</tr>
			<tr>
				<td width="25"/>
				<td>
					<xsl:apply-templates select="*"/>
				</td>
			</tr>
		</table>
	</xsl:template>

	<xsl:template match="xsd:simpleType">
		<xsl:if test="..=/">
			<hr/>
		</xsl:if>
		<table>
			<xsl:attribute name="id">
				<xsl:value-of select="@name"/>
			</xsl:attribute>
			<tr>
				<td colspan="2">
					<i>type </i><b>
						<xsl:value-of select="@name"/>
					</b>:
					 <xsl:value-of select="@type"/>
				</td>
			</tr>
			<tr>
				<td width="25"/>
				<td>
					<xsl:apply-templates select="*"/>
				</td>
			</tr>
		</table>
	</xsl:template>
	<xsl:template match="xsd:complexType">
		<xsl:if test="..=/">
			<hr/>
		</xsl:if>
		<table>
			<xsl:if test="@name">
			<xsl:attribute name="id">
				<xsl:value-of select="@name"/>
			</xsl:attribute>
			<tr>
				<td colspan="2">
					<i>type </i><b>
						<xsl:value-of select="@name"/>
					</b>:
					 <xsl:value-of select="@type"/>
				</td>
			</tr>
			</xsl:if><!-- test="@name" -->
			<tr>
				<td width="25"/>
				<td>
					<xsl:apply-templates select="*"/>
				</td>
			</tr>
		</table>
	</xsl:template>
	<xsl:template match="xsd:sequence">
		<xsl:if test="..=/">
			<hr/>
		</xsl:if>
		<table>
			<tr>
				<td width="25" style="border-right: 1px solid black"/>
				<td>
					<xsl:apply-templates select="*"/>
				</td>
			</tr>
		</table>
	</xsl:template>
	<xsl:template match="xsd:choice">
		<xsl:if test="..=/">
			<hr/>
		</xsl:if>
		<table>
			<tr>
				<td width="25" style="vertical-align: middle; border-right: double black">
				choice
				</td>
				<td>
					<xsl:apply-templates select="*"/>
				</td>
			</tr>
		</table>
	</xsl:template>
	<xsl:template match="xsd:extension">
		<i>extends </i> 
		<xsl:variable name="prefix" select="substring-before(@base,':')"/>
		<xsl:variable name="ns" select="namespace::*[name()=$prefix]"/>
		<a>
		<xsl:choose>
			<xsl:when test="@base = 'string' or @base = 'double' ">
			<!-- bug: missing @href; can we simply drop it? -->
				<b><xsl:value-of select="@base"/></b>
			</xsl:when>
			<xsl:when test="not($prefix)">
				<xsl:attribute name="href">#<xsl:value-of select="@base"/></xsl:attribute>
				<xsl:value-of select="@base"/>
			</xsl:when>
			<xsl:when test="$ns=/xsd:schema/@targetNamespace">
				<xsl:attribute name="href">#<xsl:value-of select="substring-after(@base,':')"/></xsl:attribute>
				<xsl:value-of select="substring-after(@base,':')"/>
			</xsl:when>
			<xsl:when test="/xsd:schema/xsd:import[@namespace=$ns]">
				<xsl:attribute name="href"><xsl:value-of select="/xsd:schema/xsd:import[@namespace=$ns]/@schemaLocation"/>.html#<xsl:value-of select="substring-after(@base,':')"/></xsl:attribute>
				{<xsl:value-of select="/xsd:schema/xsd:import[@namespace=$ns]/@schemaLocation"/>}
				<xsl:value-of select="substring-after(@base,':')"/>
			</xsl:when>
		</xsl:choose>
		</a>
		<xsl:apply-templates select="*"/>
	</xsl:template>

	<xsl:template match="xsd:restriction">
		<xsl:choose>
			<xsl:when test="contains(@base, ':')">
				<xsl:variable name="prefix" select="substring-before(@base,':')"/>
				<xsl:variable name="ns" select="namespace::*[name()=$prefix]"/>
		<i>is new </i> 
		<a>
				<xsl:choose>
					<xsl:when test="@base = 'string' or @base = 'double' ">
						<b><xsl:value-of select="@base"/></b>
					</xsl:when>
					<xsl:when test="not($prefix)">
						<xsl:attribute name="href">#<xsl:value-of select="@base"/></xsl:attribute>
						<xsl:value-of select="@base"/>
					</xsl:when>
					<xsl:when test="$ns=/xsd:schema/@targetNamespace">
						<xsl:attribute name="href">#<xsl:value-of select="substring-after(@base,':')"/></xsl:attribute>
						<xsl:value-of select="substring-after(@base,':')"/>
					</xsl:when>
					<xsl:when test="/xsd:schema/xsd:import[@namespace=$ns]">
						<xsl:attribute name="href"><xsl:value-of select="/xsd:schema/xsd:import[@namespace=$ns]/@schemaLocation"/>.html#<xsl:value-of select="substring-after(@base,':')"/></xsl:attribute>
						{<xsl:value-of select="/xsd:schema/xsd:import[@namespace=$ns]/@schemaLocation"/>}
						<xsl:value-of select="substring-after(@base,':')"/>
					</xsl:when>
				</xsl:choose>
		</a>  
			</xsl:when>
			<xsl:when test="./xsd:enumeration">
			<!-- nothing -->
			</xsl:when>
			<xsl:otherwise>
				<i>&lt;<xsl:value-of select="@base"/>&gt;</i>  
			</xsl:otherwise>
		</xsl:choose>
		<xsl:apply-templates select="*"/>
	</xsl:template>
	<xsl:template match="xsd:length">
		[<xsl:value-of select="@value"/>]
	</xsl:template>
	<xsl:template match="xsd:minLength">
		[<xsl:value-of select="@value"/> ..
	</xsl:template>
	<xsl:template match="xsd:maxLength">
		<!-- add [0.. if there are no minLength -->
		<xsl:if test="not(../xsd:minLength)">[0..</xsl:if>
		<xsl:value-of select="@value"/>]
	</xsl:template>
	<xsl:template match="xsd:enumeration">
		"<xsl:value-of select="@value"/>"
		<xsl:apply-templates select="*"/>
	</xsl:template>
	<xsl:template match="xsd:pattern">
		<i> like </i>/<xsl:value-of select="@value"/>/
		<xsl:apply-templates select="*"/>
	</xsl:template>
	<xsl:template match="xsd:annotation">
		<xsl:for-each select="xsd:documentation">
			<small>
				<xsl:value-of select="."/>
			</small>
			<br/>
		</xsl:for-each>
		<xsl:for-each select="xsd:appinfo">
			<small>
				<i>
					<xsl:value-of select="."/>
				</i>
			</small>
			<br/>
		</xsl:for-each>
	</xsl:template>
</xsl:stylesheet>
Si los moderadores lo consideran oportuno, se puede recortar el código, ponerlo análisis de sintaxis XML, o mover este post a otro hilo más adecuado.
Archivos Adjuntos
Tipo de Archivo: zip xsd2html.zip (1,8 KB, 17 visitas)
  #13  
Antiguo 25-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por CarlosArjonomia Ver Mensaje
Soy de VB 6.0 (Carca) y utilizo xmlDoc = New MSXML2.DOMDocument60, aconsejo usar el chatgpt para muchas dudas. Si le indicas buenos prompts te resuelve en el 90% de dudas.
Vaya, estuve intentando usarlo y no lo consegui hacer funcionar, si alguna vez puedes poner alguna funcion de envio de ejemplo te lo agradeceria.
Actualmente envio con curl y funciona bien, pero lo mejor es integrarlo.
  #14  
Antiguo 25-10-2024
CarlosArjonomia CarlosArjonomia is offline
Miembro
 
Registrado: abr 2021
Posts: 294
Poder: 6
CarlosArjonomia Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Vaya, estuve intentando usarlo y no lo consegui hacer funcionar, si alguna vez puedes poner alguna funcion de envio de ejemplo te lo agradeceria.
Actualmente envio con curl y funciona bien, pero lo mejor es integrarlo.
2. Agregar Referencia a MSXML en Visual Basic 6.0:

Ve a Project > References.
Selecciona "Microsoft XML, v6.0" (o una versión compatible si no tienes la 6.0).


Código:
Dim xmlDoc As MSXML2.DOMDocument60
Dim csvNode As MSXML2.IXMLDOMNode
Dim csvValue As String

' Cargar el XML en un objeto DOMDocument
Set xmlDoc = New MSXML2.DOMDocument60
xmlDoc.async = False

' Asegúrate de que el XML se cargue correctamente
If xmlDoc.loadXML(yourXmlString) Then
    ' Buscar el nodo <tikR:CSV> usando su XPath
    ' Asegúrate de incluir el namespace si es necesario
    xmlDoc.setProperty "SelectionNamespaces", "xmlns:tikR='https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/RespuestaSuministro.xsd'"
    Set csvNode = xmlDoc.selectSingleNode("//tikR:CSV")
    
    ' Verificar si el nodo <tikR:CSV> fue encontrado
    If Not csvNode Is Nothing Then
        ' Obtener el valor del nodo <tikR:CSV>
        csvValue = csvNode.Text
        MsgBox "El valor del CSV es: " & csvValue
    Else
        MsgBox "No se encontró el nodo <tikR:CSV>."
    End If
Else
    MsgBox "Error al cargar el XML."
End If
El envío lo hago mediante:
Código:
Set httpRequest = CreateObject("WinHTTP.WinHTTPRequest.5.1")
Si el moderador considera que no hay que poner códigos que no sean DELPHI, me lo indica.

Última edición por Neftali [Germán.Estévez] fecha: 28-10-2024 a las 09:46:11.
  #15  
Antiguo 25-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por CarlosArjonomia Ver Mensaje
2. Agregar Referencia a MSXML en Visual Basic 6.0:

Ve a Project > References.
Selecciona "Microsoft XML, v6.0" (o una versión compatible si no tienes la 6.0).


Dim xmlDoc As MSXML2.DOMDocument60
Dim csvNode As MSXML2.IXMLDOMNode
Dim csvValue As String

' Cargar el XML en un objeto DOMDocument
Set xmlDoc = New MSXML2.DOMDocument60
xmlDoc.async = False

' Asegúrate de que el XML se cargue correctamente
If xmlDoc.loadXML(yourXmlString) Then
' Buscar el nodo <tikR:CSV> usando su XPath
' Asegúrate de incluir el namespace si es necesario
xmlDoc.setProperty "SelectionNamespaces", "xmlns:tikR='https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/RespuestaSuministro.xsd'"
Set csvNode = xmlDoc.selectSingleNode("//tikR:CSV")

' Verificar si el nodo <tikR:CSV> fue encontrado
If Not csvNode Is Nothing Then
' Obtener el valor del nodo <tikR:CSV>
csvValue = csvNode.Text
MsgBox "El valor del CSV es: " & csvValue
Else
MsgBox "No se encontró el nodo <tikR:CSV>."
End If
Else
MsgBox "Error al cargar el XML."
End If

El envío lo hago mediante:

Set httpRequest = CreateObject("WinHTTP.WinHTTPRequest.5.1")

Si el moderador considera que no hay que poner códigos que no sean DELPHI, me lo indica.
gracias gracias, lo probaré.

Esperemos que sí. El moderador ha sido flexible, los de vb también aportamos.
  #16  
Antiguo 28-10-2024
Avatar de thinkows
thinkows thinkows is offline
Miembro
 
Registrado: mar 2020
Ubicación: Sabadell
Posts: 105
Poder: 7
thinkows Va por buen camino
vb6

Cita:
Empezado por ermendalenda Ver Mensaje
Vaya, estuve intentando usarlo y no lo consegui hacer funcionar, si alguna vez puedes poner alguna funcion de envio de ejemplo te lo agradeceria.
Actualmente envio con curl y funciona bien, pero lo mejor es integrarlo.
Yo también desarrollo en vb6 y utilizo librerías CHILCKAT para construcción de xml, envío y desgranado de la respuesta, la verdad és que van de fabula por 299$ con 1 año de actualizaciones.
Se pueden utilizar para otros lenguajes y la documentación es muy buena.

Dejo enlaces aquí :

https://www.chilkatsoft.com/readme.asp

https://www.chilkatsoft.com/purchase

Saludos,
  #17  
Antiguo 28-10-2024
Avatar de thinkows
thinkows thinkows is offline
Miembro
 
Registrado: mar 2020
Ubicación: Sabadell
Posts: 105
Poder: 7
thinkows Va por buen camino
Informador Verifactu

Han colgado esto :


https://www2.agenciatributaria.gob.e...madorVerifactu
  #18  
Antiguo 25-10-2024
Becario127 Becario127 is offline
Miembro
 
Registrado: oct 2024
Posts: 26
Poder: 0
Becario127 Va por buen camino
Question

Hola Buenas Tardes,

He visto que en las facturas electrónicas de ejemplo que comparte la AEAT, existe un campo que dice TipoHuella, y quería saber si es algo importante o si alguien sabe algo sobre esto.

Un saludo.
  #19  
Antiguo 25-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por Becario127 Ver Mensaje
Hola Buenas Tardes,

He visto que en las facturas electrónicas de ejemplo que comparte la AEAT, existe un campo que dice TipoHuella, y quería saber si es algo importante o si alguien sabe algo sobre esto.

Un saludo.
Hola Becario, recuerda que esto no es factura electrónica, es VERIFACTU. que es un tipo de reporte de facturas a hacienda. La factura electronica es el intercambio de facturas entre el emisor (El que vende) y receptor (ek que paga).

El TipoHuella es una variable que indica con que tipo de hash estamos calculando el string, ya que hay multiples de tipos de hash, de momento es una tonteria que lo pongan por que solo dan la opcion del tipo SHA256, pero intuyo que en unos años va a haber cambios con estos algoritmos y habrá que calcular con otro tipo de hash, ya que vendrán los ordenadores cuanticos, que previsiblemente, dejaran esos hashes en bragas. de momento no se me ocurre otro motivo de que haya que informar que tipo de huella vas a poner.

Por cierto Becario, si necesitas mas ayuda para el proyecto fin de carrera nos dices. XD.
Saludos
Tema Cerrado


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Hijo de Informáticos gluglu Humor 3 13-03-2007 11:05:35
Adictos informaticos ... Trigger Humor 2 11-10-2004 12:18:32
Nosotros los Informáticos Trigger Humor 1 10-10-2004 14:58:09
Patrón de los Informáticos. obiwuan Varios 20 10-09-2003 14:44:54
Chistes Informaticos jhonny Humor 2 11-08-2003 21:59:09


La franja horaria es GMT +2. Ahora son las 13:10:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi