Página 1 de 1

Definiendo namespace dentro de la addenda

Publicado: Lun Dic 19, 2011 1:57 pm
por condor0086
Teniendo

Código: Seleccionar todo

var CFD : IXMLComprobante;   
...
CFD := GetComprobante(XMLDoc); //ya definido con la estructura del CFD v2.0
...
puedo hacer:

Código: Seleccionar todo

CFD.Addenda.SetAttributeNS( 'xmlns:otro', '', 'http://www.misitio.mx/miNS');
y queda bien esa línea, pero para la segunda línea

Código: Seleccionar todo

CFD.Addenda.SetAttributeNS( 'xsi:schemaLocation', '', 'http://www.misitio.mx/miNS http://www.misitio.mx/miNS/miNS.xsd');
Me manda el error (al ejecutar): "Referencia a un prefijo de espacio de nombres no declarado 'xsi' "

¿Alguien sabe cómo poner correctamente esta parte? (sin irse manualmente a modificar por fuera el texto del XML)

Re: Definiendo namespace dentro de la addenda

Publicado: Lun Dic 19, 2011 2:22 pm
por Dado
Antes de la "segunda linea" ejecuta :

CFD.Addenda.SetAttribute('xmlns:xsi','http://www.w3.org/2001/XMLSchema-instance');

Re: Definiendo namespace dentro de la addenda

Publicado: Lun Dic 19, 2011 2:27 pm
por condor0086
DADO escribió:Antes de la "segunda linea" ejecuta :

CFD.Addenda.SetAttribute('xmlns:xsi','http://www.w3.org/2001/XMLSchema-instance');
Gracias Dado, pero no funciona. El problema es que CFD.Addenda no tiene el proceso "SetAttribute", sólo tiene "SetAttributeNS".

Sin embargo seguí buscando y acabo de encontrar la solución, la dejo por si a alguien más le sirve. La segunda línea para que funcione tiene que ser así:

Código: Seleccionar todo

CFD.Addenda.SetAttributeNS( 'xsi:schemaLocation', 'http://www.w3.org/2001/XMLSchema-instance', 
  'http://www.misitio.mx/miNS http://www.misitio.mx/miNS/miNS.xsd');
Muchas gracias de todas formas, saludos! :)