anchor.diff:  
     METHOD create_object.
   
  -    DATA: lv_message    TYPE string,
  -          lv_class_name TYPE string.
  -
  -
  -    lv_class_name = class_name( is_item ).
  +    TYPES: BEGIN OF ty_obj_serializer_map,
  +             item     LIKE is_item,
  +             metadata LIKE is_metadata,
  +           END OF ty_obj_serializer_map.
  +    STATICS st_obj_serializer_map TYPE SORTED TABLE OF ty_obj_serializer_map WITH UNIQUE KEY item.
  +
  +    DATA: lv_message            TYPE string,
  +          lv_class_name         TYPE string,
  +          ls_obj_serializer_map TYPE ty_obj_serializer_map.
  +
  +    READ TABLE st_obj_serializer_map INTO ls_obj_serializer_map WITH KEY item = is_item.
  +    IF sy-subrc = 0.
  +      lv_class_name = ls_obj_serializer_map-metadata-class.
  +    ELSE.
  +      IF is_metadata IS NOT INITIAL.
  +*        Metadata is provided only on serialization
  +*        Once this has been triggered, the same serializer shall be used for subsequent processes.
  +*        Thus, buffer the metadata afterwards
  +        ls_obj_serializer_map-item      = is_item.
  +        ls_obj_serializer_map-metadata  = is_metadata.
  +        INSERT ls_obj_serializer_map INTO TABLE st_obj_serializer_map.
  +
  +        lv_class_name = is_metadata-class.
  +      ELSE.
  +        lv_class_name = class_name( is_item ).
  +      ENDIF.
  +    ENDIF.
   
       TRY.
           CREATE OBJECT ri_obj TYPE (lv_class_name)
  
positive.code: 
      li_istream->close( ).
  
      li_element = mi_xml_doc->find_from_name( depth = 0 name = c_abapgit_tag ).
      li_version = li_element->if_ixml_node~get_attributes(
        )->get_named_item_ns( 'version' ) ##NO_TEXT.
      IF li_version->get_value( ) <> gc_xml_version.
        display_xml_error( ).
      ENDIF.
  
    ENDMETHOD.
  
  
negative.code:   PRIVATE SECTION.
      CLASS-METHODS create_object
        IMPORTING is_item       TYPE ty_item
                  is_metadata   TYPE ty_metadata OPTIONAL
                    PREFERRED PARAMETER is_item
        RETURNING VALUE(ri_obj) TYPE REF TO lif_object
        RAISING   lcx_exception.
  
  