Ver Mensaje Individual
  #2  
Antiguo 16-02-2007
mia mia is offline
Registrado
 
Registrado: jul 2005
Posts: 6
Reputación: 0
mia Va por buen camino
Arreglado

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;
    // Creación de los nodos "hijos" en el mismo namespace
    xmlNode := xmlElement.AddChild('Nodo_1','myNameSpace');  
    xmlNode1 := xmlElement.AddChild('Nodo_2','myNameSpace');
...

Bueno, al siguiente que le pase ya sabe como resolverlo...
saludos...

Última edición por roman fecha: 11-05-2007 a las 19:03:32.
Responder Con Cita