anchor.diff:    OXmlUtils,
   
     // WiRL
  -  WiRL.Core.Attributes, 
  -  WiRL.Core.Declarations, 
  +  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.Response,
  +  WiRL.http.Headers,
  +  WiRL.Configuration.Neon;
   
   type
     [Consumes(TMediaType.APPLICATION_XML)]
  -  TObjectReaderOXML = class(TInterfacedObject, IMessageBodyReader)
  +  [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; ARequest: TWiRLRequest): TValue;
  -  end;
  +    function ReadFrom(AType: TRttiType; AMediaType: TMediaType;
  +      AHeaders: IWiRLHeaders; AContentStream: TStream): TValue; override;
   
  -  [Produces(TMediaType.APPLICATION_XML)]
  -  TObjectWriterOXML = class(TInterfacedObject, IMessageBodyWriter)
  -  public
       procedure WriteTo(const AValue: TValue; const AAttributes: TAttributeArray;
  -      AMediaType: TMediaType; AResponse: TWiRLResponse);
  +      AMediaType: TMediaType; AHeaders: IWiRLHeaders; AContentStream: TStream); override;
     end;
   
   implementation
  
positive.code:     end
    );
  
    TMessageBodyWriterRegistry.Instance.RegisterWriter(TObjectWriterOXML,
      function(AType: TRttiType; const AAttributes: TAttributeArray; AMediaType: TMediaType): Boolean
      begin
        Result := Assigned(AType) and
  
negative.code: end;
  
  initialization
    TMessageBodyReaderRegistry.Instance.RegisterReader(TWiRLXMLProvider,
      function(AType: TRttiType; const AAttributes: TAttributeArray; AMediaType: TMediaType): Boolean
      begin
        Result := Assigned(AType) and
  