anchor.diff:    end;
   end;
   
  -function TObjectReaderOXML.ReadFrom(AType: TRttiType; AMediaType: TMediaType; ARequest: TWiRLRequest): TValue;
  +function TWiRLXMLProvider.ReadFrom(AType: TRttiType; AMediaType: TMediaType; AHeaders: IWiRLHeaders;
  +  AContentStream: TStream): TValue;
   var
     LObj: TObject;
   begin
     LObj := TRttiHelper.CreateInstance(AType);
  -  Deserialize(ARequest.Content, LObj);
  +  Deserialize(ContentStreamToString(AMediaType.Charset, AContentStream), LObj);
   end;
   
  -{ TObjectWriterOXML }
  -
  -procedure TObjectWriterOXML.WriteTo(const AValue: TValue;
  -  const AAttributes: TAttributeArray; AMediaType: TMediaType;
  -  AResponse: TWiRLResponse);
  +procedure TWiRLXMLProvider.WriteTo(const AValue: TValue; const AAttributes: TAttributeArray; AMediaType: TMediaType;
  +  AHeaders: IWiRLHeaders; AContentStream: TStream);
   var
     LStreamWriter: TStreamWriter;
     LSer: TXMLRTTISerializer;
   begin
  -  LStreamWriter := TStreamWriter.Create(AResponse.ContentStream);
  +  LStreamWriter := TStreamWriter.Create(AContentStream);
     try
       LSer := TXMLRTTISerializer.Create;
       try
         LSer.UseRoot := False;
         LSer.CollectionStyle := csOXML;
  -      LSer.ObjectVisibility := [mvPublished];
  +      LSer.ObjectVisibility := FConfigurationNeon.Visibility;
         LSer.WriterSettings.IndentType := itIndent;
  -      LSer.InitStream(AResponse.ContentStream);
  +      LSer.InitStream(AContentStream);
   
         LSer.WriteObject(AValue.AsObject);
         LSer.ReleaseDocument;
  
positive.code: end;
  
  initialization
    TMessageBodyReaderRegistry.Instance.RegisterReader(TObjectReaderOXML,
      function(AType: TRttiType; const AAttributes: TAttributeArray; AMediaType: TMediaType): Boolean
      begin
        Result := Assigned(AType) and
  
negative.code:   OXmlUtils,
  
    // WiRL
    WiRL.Core.Attributes,
    WiRL.Core.Declarations,
    WiRL.http.Accept.MediaType,
    WiRL.Core.MessageBodyReader,
    WiRL.Core.MessageBodyWriter,
    WiRL.Core.MessageBody.Classes,
    WiRL.Core.Exceptions,
    WiRL.http.Request,
    WiRL.http.Response,
    WiRL.http.Headers,
    WiRL.Configuration.Neon;
  
  type
    [Consumes(TMediaType.APPLICATION_XML)]
    [Produces(TMediaType.APPLICATION_XML)]
    TWiRLXMLProvider = class(TMessageBodyProvider)
    private
      [Context] FConfigurationNeon: TWiRLConfigurationNeon;
    private
      procedure Deserialize(const ADocument: string; AObject: TObject);
    public
      function ReadFrom(AType: TRttiType; AMediaType: TMediaType;
        AHeaders: IWiRLHeaders; AContentStream: TStream): TValue; override;
  
      procedure WriteTo(const AValue: TValue; const AAttributes: TAttributeArray;
        AMediaType: TMediaType; AHeaders: IWiRLHeaders; AContentStream: TStream); override;
    end;
  
  implementation
  