![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Cita:
|
|
#2
|
|||
|
|||
|
Cita:
|
|
#3
|
|||
|
|||
|
Cita:
![]() 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
|
||||
|
||||
|
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
|
|||
|
|||
|
Cita:
|
|
#6
|
|||
|
|||
|
Cita:
|
|
#7
|
|||
|
|||
|
Cita:
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
|
|||
|
|||
|
Cita:
Pero aún no lo deben haber actualizado, por que me da error. |
|
#9
|
||||
|
||||
|
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:
Cita:
|
|
#10
|
|||
|
|||
|
Cita:
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
|
|||
|
|||
|
Cita:
ll han dicho varias veces. Me tengo que instalar la herramienta y aun no la he puesto |
|
#12
|
|||
|
|||
|
Cita:
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><<xsl:value-of select="@base"/>></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>
|
|
#13
|
|||
|
|||
|
Cita:
Actualmente envio con curl y funciona bien, pero lo mejor es integrarlo. |
|
#14
|
|||
|
|||
|
Cita:
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
Código:
Set httpRequest = CreateObject("WinHTTP.WinHTTPRequest.5.1")
Última edición por Neftali [Germán.Estévez] fecha: 28-10-2024 a las 09:46:11. |
|
#15
|
|||
|
|||
|
Cita:
Esperemos que sí. El moderador ha sido flexible, los de vb también aportamos. |
|
#16
|
||||
|
||||
|
vb6
Cita:
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
|
||||
|
||||
|
Informador Verifactu
|
|
#18
|
|||
|
|||
|
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
|
|||
|
|||
|
Cita:
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 |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|