anchor.diff:          _ -> Basic
       end,
       {ok, JSON} = logical_file_manager:get_metadata(
  -        SessionId, {guid, FileId}, <<"json">>, [], false
  -    ),
  -    JSONVal = case is_map(JSON) andalso map_size(JSON) of
  -        0 -> null;
  +        SessionId, {guid, FileId}, json, [], false
  +    ),
  +    JSONVal = case JSON of
  +        ?ENOATTR -> null;
           _ -> json_utils:decode(json_utils:encode_map(JSON))
       end,
       {ok, RDF} = logical_file_manager:get_metadata(
  -        SessionId, {guid, FileId}, <<"rdf">>, [], false
  +        SessionId, {guid, FileId}, rdf, [], false
       ),
       RDFVal = case RDF of
  -        undefined -> null;
  +        ?ENOATTR -> null;
           _ -> RDF
       end,
       {ok, [
  
positive.code:                 SessionId, {guid, FileId}, Key
              )
          end, XattrKeys),
      ok = logical_file_manager:set_metadata(
          SessionId, {guid, FileId}, <<"json">>, #{}, []
      ),
      ok = logical_file_manager:set_metadata(
          SessionId, {guid, FileId}, <<"rdf">>, undefined, []
      ),
      ok.
  
  
negative.code:         JSON ->
              JSONMap = json_utils:decode_map(json_utils:encode(JSON)),
              ok = logical_file_manager:set_metadata(
                  SessionId, {guid, FileId}, json, JSONMap, []
              )
      end,
      case proplists:get_value(<<"rdf">>, Data) of
  