anchor.diff:  
     { TRemodelRequest }
   
  +  TOnHandleChildNode = procedure(AChildNode: TDOMNode) of object;
  +
     TRemodelRequest = class
     private
       FXMLDocument: TXMLDocument;
     protected
  -    procedure RemoveEmptyElements(AChildNode: TDOMNode); overload;
  -    procedure RemoveEmptyElements; overload;
  +    procedure AlterChildNodeNamespaceProc(AChildnode: tDOMNode);
  +    procedure RemoveEmptyChildNodeProc(AChildNode: TDOMNode); overload;
  +    procedure LoopChildNodes(AHandleChildNodeProc: TOnHandleChildNode); overload;
  +    procedure RemoveEmptyChildNodes;
       procedure AlterNamespace;
   
       procedure GetXMLByStream(AStream: TStream);
  
positive.code: 
  procedure TRemodelRequest.SetXMLToStream(AStream: TStream);
  begin
    WriteXML(FXMLDocument, AStream);
  end;
  
  
negative.code: begin
    GetXMLByStream(ARequest);
  
    RemoveEmptyChildNodes;
    AlterNamespace;
  
    SetXMLToStream(ARequest);
  end;
  
  procedure TRemodelRequest.AlterChildNodeNamespaceProc(AChildnode: TDOMNode);
  var
    anz: integer;
  begin
    if Assigned(AChildNode) then
    begin
      if AChildNode.HasChildNodes then
        for anz := AChildNode.ChildNodes.Count-1 downto 0 do
          AlterChildNodeNamespaceProc(AChildNode.ChildNodes.Item[anz]);
  
      { TODO -oAlfred Gerke -cremodel : Hier muss tns: wenn vorhanden entfernt werden }
    end;
  end;
  
  procedure TRemodelRequest.RemoveEmptyChildNodeProc(AChildNode: TDOMNode);
  var
    anz: integer;
  begin
    if Assigned(AChildNode) then
    begin
      if AChildNode.HasChildNodes then
        for anz := AChildNode.ChildNodes.Count-1 downto 0 do
          RemoveEmptyChildNodeProc(AChildNode.ChildNodes.Item[anz]);
  
      if (Trim(AChildNode.TextContent) = EmptyStr) then
         AChildNode.ParentNode.RemoveChild(AChildNode);
    end;
  end;
  
  procedure TRemodelRequest.LoopChildNodes(AHandleChildNodeProc: TOnHandleChildNode);
  var
    anz: integer;
    child_node: TDOMNode;
  