me encuentro con un problema en un fichero XML con el que me responde el webservice de SII de hacienda.
El siguiente código guarda un XML en la variable cCadena y al convertirla en XML con la clase TXMLDocument me da un mensaje con el oXML:nError = 4 en la línea 16.
- Code: Select all Expand view
- #include "FiveWin.ch"
#include "hbxml.ch"
local oXML, cCadena
cCadena := '<?xml version="1.0" encoding="UTF-8"?>' + CRLF + ;
'<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">' + CRLF + ;
' <env:Header/>' + CRLF + ;
' <env:Body Id="Body">' + CRLF + ;
' <siiLRRC:RespuestaConsultaLRFactInformadasCliente ' + ;
'xmlns:siiLRRC="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/RespuestaConsultaLR.xsd" ' + ;
'xmlns:sii="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">' + CRLF + ;
' <sii:Cabecera>' + CRLF + ;
' <sii:IDVersionSii>1.1</sii:IDVersionSii>' + CRLF + ;
' </sii:Cabecera>' + CRLF + ;
' <siiLRRC:IndicadorPaginacion>N</siiLRRC:IndicadorPaginacion>' + CRLF + ;
' <siiLRRC:ResultadoConsulta>ConDatos</siiLRRC:ResultadoConsulta>' + CRLF + ;
' <siiLRRC:RegistroRespuestaConsultaLRFactInformadasCliente>' + CRLF + ;
' <siiLRRC:PeriodoLiquidacion>' + CRLF + ;
' <siiLRRC:Ejercicio>2018</siiLRRC:Ejercicio>' + CRLF + ;
' <siiLRRC:Periodo>08</siiLRRC:Periodo>' + CRLF + ;
' </siiLRRC:PeriodoLiquidacion>' + CRLF + ;
' <siiLRRC:FacturaSimplificadaArticulos7.2_7.3>N</siiLRRC:FacturaSimplificadaArticulos7.2_7.3>' + CRLF + ;
' </siiLRRC:RegistroRespuestaConsultaLRFactInformadasCliente>' + CRLF + ;
' </siiLRRC:RespuestaConsultaLRFactInformadasCliente>' + CRLF + ;
' </env:Body>' + CRLF + ;
'</env:Envelope>'
oXML := TXmlDocument ():new (cCadena)
if oXML:nError # 0
? 'Status', oXML:nStatus, 'Error', oXML:nError, 'Linea', oXML:nLine
endif
? oXML:ToString ( HBXML_STYLE_INDENT + HBXML_STYLE_THREESPACES )
La etiqueta que da el error es <siiLRRC:FacturaSimplificadaArticulos7.2_7.3>, la he omitido en otra prueba y el oXML se construye sin error.
En el archivo hbxml.ch he consultado que el nError = 4 corresponde con HBXML_ERROR_INVNODE, que interpreto que es un nodo inválido, pero no sé el motivo.
He probado a abrir el XML con distintos editores y no me indican ningún error, así que recurro al foro para ver si me dan una ayuda sobre el por qué no se genera bien oXML.
Gracias.