CLASS zcl_excel_theme_fmt_scheme DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. METHODS load IMPORTING !io_fmt_scheme TYPE REF TO if_ixml_element . METHODS build_xml IMPORTING !io_document TYPE REF TO if_ixml_document . PROTECTED SECTION. PRIVATE SECTION. DATA fmt_scheme TYPE REF TO if_ixml_element . METHODS get_default_fmt RETURNING VALUE(rv_string) TYPE string . ENDCLASS. CLASS zcl_excel_theme_fmt_scheme IMPLEMENTATION. METHOD build_xml. DATA: lo_xml TYPE REF TO cl_xml_document. DATA: lo_node TYPE REF TO if_ixml_node. DATA: lo_elements TYPE REF TO if_ixml_element. CHECK io_document IS BOUND. lo_elements ?= io_document->find_from_name_ns( name = zcl_excel_theme=>c_theme_elements ). IF lo_elements IS BOUND. IF fmt_scheme IS INITIAL. CREATE OBJECT lo_xml. lo_xml->parse_string( get_default_fmt( ) ). lo_node = lo_xml->get_first_node( ). lo_elements->append_child( new_child = lo_node ). ELSE. lo_elements->append_child( new_child = fmt_scheme ). ENDIF. ENDIF. ENDMETHOD. "build_xml METHOD get_default_fmt. CONCATENATE '' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' INTO rv_string . ENDMETHOD. "get_default_fmt METHOD load. "! so far copy only existing values fmt_scheme ?= io_fmt_scheme. ENDMETHOD. "load ENDCLASS.