Problema creando fichero XML con VBA

Por fin voy consiguiendo generar mediante VBA y DOM el dichoso fichero bancario de transferencias "SEPA", pero me he tropezado con un asunto del que no soy capaz de salir. Adjunto os remito las primeras líneas de código seguidas de las primeras líneas del fichero XML que se genera:

 Dim xmlDom As MSXML2.DOMDocument60 
 Dim xmlspacename As MSXML2.IXMLDOMElement 
 Dim xmlVersion As MSXML2.IXMLDOMProcessingInstruction 
 Dim xslStylesheet As MSXML2.IXMLDOMProcessingInstruction 
 Set xmlDom = New MSXML2.DOMDocument60
 Set xmlVersion = xmlDom.createProcessingInstruction("xml", "version='1.0' encoding= 'UTF-8'")

xmlDom.appendChild xmlVersion

Set xmlspacename = xmlDom.createElement("Document")
xmlDom.appendChild xmlspacename
    XmlDom.documentElement.setAttribute "xmlns", "urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"
    xmlDom.documentElement.setAttribute "xmlns:xsd", "http://www.w3.org/2001/XMLSchema"
    xmlDom.documentElement.setAttribute "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"
   

   
    '****RAIZ DEL MENSAJE
    'Creando elemento raiz [1..1]_0
    Dim xmlrootnode As IXMLDOMElement
    Set xmlrootnode = xmlDom.createElement("CstmrCdtTrfInitn")
    xmlspacename.appendChild xmlrootnode
   

Las primeras líneas del XML que obtengo son:

<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">

<CstmrCdtTrfInitn xmlns="">
 <GrpHdr>
  <MsgId/>

La etiqueta que marco en negrita aparece con el atributo xmlns, y desconozco por qué. Pienso además que no cumplo con el esquema oficial y que el fichero no me va a resultar válido. ¿Alguien me puede decir qué hacer para que la etiqueta aparezca sin el atributo? Es decir, así: <CstmrCdtTrfInitn>

1 Respuesta

Respuesta
2

¿Por qué no pruebas a crear el XML siguiendo las pautas de este ejemplo de Jesús Mansilla (http://www.accessaplicaciones.com/ejemplos.html#m13)? Creo que es algo más sencillo que la forma en la que lo estás haciendo.

Y si no lo consigues, su siguiente ejemplo podría ayudarte a limpiar ese nodo.

Un saludo.


Muchas Gracias. Probaré, o incluso probaré un mix de ambas, ya que tengo todo el fichero generado ya y lleva mucho curro.

Encantado de volver a saludarte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas