anchor.diff:    TDataSetWriterJSON = class(TInterfacedObject, IMessageBodyWriter)
       procedure WriteTo(const AValue: TValue; const AMediaType: TMediaType;
         AOutputStream: TStream; const AActivation: IMARSActivation);
  +    class procedure WriteDataSet(const ADataSet: TValue; const AMediaType: TMediaType;
  +      AOutputStream: TStream; const AActivation: IMARSActivation);
     end;
   
     [Produces(TMediaType.APPLICATION_JSON)]
  
positive.code: ;
  
  { TDataSetWriterJSON }
  
  procedure TDataSetWriterJSON.WriteTo(const AValue: TValue; const AMediaType: TMediaType;
    AOutputStream: TStream; const AActivation: IMARSActivation);
  
negative.code: end;
  
  { TDataSetWriterXML }
  
  class procedure TDataSetWriterXML.WriteDataSet(const ADataSet: TValue;
    const AMediaType: TMediaType; AOutputStream: TStream;
    const AActivation: IMARSActivation);
  var
    LWriter: TDataSetWriterXML;
  begin
    LWriter := TDataSetWriterXML.Create;
    try
      LWriter.WriteTo(ADataSet, AMediaType, AOutputStream, AActivation);
    finally
      LWriter.Free;
    end;
  end;
  
  procedure TDataSetWriterXML.WriteTo(const AValue: TValue; const AMediaType: TMediaType;
    AOutputStream: TStream; const AActivation: IMARSActivation);
  