anchor.diff:        lv_name = iv_name.
       ENDIF.
   
  -    name_escape( CHANGING cv_text = lv_name ).
  -
       li_element = xml_find( ii_root = ii_root
                              iv_name = lv_name ).
       IF NOT li_element IS BOUND.
  
positive.code:       IMPORTING ii_root           TYPE REF TO if_ixml_element OPTIONAL
                  iv_name           TYPE string
        RETURNING VALUE(ri_element) TYPE REF TO if_ixml_element.
    PROTECTED SECTION.
      TYPES: BEGIN OF ty_s_ecape_map,
               forbidden_char  TYPE c LENGTH 1,
               escape_sequence TYPE string, "in order to allow longer (thus unique) escape sequences
             END OF ty_s_ecape_map,
             ty_t_escape_map TYPE SORTED TABLE OF ty_s_ecape_map WITH UNIQUE KEY forbidden_char
  WITH UNIQUE SORTED KEY escape_sequence COMPONENTS escape_sequence. "to prevent ambiguity
  
      DATA mt_escape_map TYPE ty_t_escape_map.
  
      METHODS name_escape
        IMPORTING
                  iv_revert TYPE abap_bool DEFAULT abap_false
        CHANGING
                  cv_text   TYPE string
        RAISING   lcx_exception.
  
    PRIVATE SECTION.
  
      DATA: mi_ixml TYPE REF TO if_ixml,
            mi_root TYPE REF TO if_ixml_element.
  
  *    CONSTANTS co_suffix_table_line_struc TYPE string VALUE '_item'.
  
      METHODS special_names
        CHANGING cv_name TYPE string.
  
negative.code:       mi_root->set_attribute( name = 'version' value = gc_xml_version ). "#EC NOTEXT
        mi_xml_doc->append_child( mi_root ).
      ENDIF.
    ENDMETHOD.                    "xml_root
  
    METHOD table_add.
  