anchor.diff:      end
     );
   
  -  TMessageBodyWriterRegistry.Instance.RegisterWriter(TObjectWriterOXML,
  +  TMessageBodyWriterRegistry.Instance.RegisterWriter(TWiRLXMLProvider,
       function(AType: TRttiType; const AAttributes: TAttributeArray; AMediaType: TMediaType): Boolean
       begin
         Result := Assigned(AType) and
  
positive.code:   end;
  end;
  
  function TObjectReaderOXML.ReadFrom(AType: TRttiType; AMediaType: TMediaType; ARequest: TWiRLRequest): TValue;
  var
    LObj: TObject;
  begin
    LObj := TRttiHelper.CreateInstance(AType);
    Deserialize(ARequest.Content, LObj);
  end;
  
  { TObjectWriterOXML }
  
  procedure TObjectWriterOXML.WriteTo(const AValue: TValue;
    const AAttributes: TAttributeArray; AMediaType: TMediaType;
    AResponse: TWiRLResponse);
  var
    LStreamWriter: TStreamWriter;
    LSer: TXMLRTTISerializer;
  begin
    LStreamWriter := TStreamWriter.Create(AResponse.ContentStream);
    try
      LSer := TXMLRTTISerializer.Create;
      try
        LSer.UseRoot := False;
        LSer.CollectionStyle := csOXML;
        LSer.ObjectVisibility := [mvPublished];
        LSer.WriterSettings.IndentType := itIndent;
        LSer.InitStream(AResponse.ContentStream);
  
        LSer.WriteObject(AValue.AsObject);
        LSer.ReleaseDocument;
  
negative.code:   Data.DB,
    System.TypInfo,
    WiRL.Core.Utils,
    WiRL.Rtti.Utils,
    WiRL.http.Core;
  
  { TWiRLXMLProvider }
  
  procedure TWiRLXMLProvider.Deserialize(const ADocument: string; AObject: TObject);
  var
    LDeserializer : TXMLRTTIDeserializer;
    LClassName: string;
  