Hola de nuevo,
Ya está arreglado. Tenia dos problemas. El primero era establecer los parametros de NameSpace de la forma:
Código Delphi
[-]
xmlElement.SetAttribute('xmlns:xsd','String1');
xmlElement.SetAttribute('xmlns:xsi','String2');
xmlElement.SetAttribute('xmlns','String3');
cuando se deberia hacer así:
Código Delphi
[-]
xmlElement.DeclareNamespace('xsd', 'String1');
xmlElement.DeclareNamespace('xsi', 'String2');
xmlElement.DeclareNamespace('', 'String3');
El siguiente problema era que si se crean nodos "hijos" sobre un elemento (o nodo) de un NameSpace, los nodos hijos se deberian crear en el mismo NameSpace por lo que la creación de los nodos hijos se debería hacer de la siguiente forma:
Código Delphi
[-]
var
xmlDoc: TXMLDocument;
xmlElement,
xmlNode,
xmlNode1 : IXMLNode;
strNameSpace: string;
begin
xmlDoc := TXMLDocument.Create(Self.Owner);
try
xmlDoc.Active := TRUE;
xmlDoc.Version := '1.0';
xmlElement := xmlDoc.CreateNode(xmlTC_FunctionCallRequest);
xmlElement.DeclareNamespace('xsd', 'myXSD');
xmlElement.DeclareNamespace('xsi', 'myXSI');
xmlElement.DeclareNamespace('', 'myNameSpace');
xmlDoc.DocumentElement := xmlElement;
xmlNode := xmlElement.AddChild('Nodo_1','myNameSpace');
xmlNode1 := xmlElement.AddChild('Nodo_2','myNameSpace');
...
Bueno, al siguiente que le pase ya sabe como resolverlo...
saludos...