def METHOD_NAME(self, name):
    # attributes
    if name == "origin":
        self.stack[-1].setOrigin(self.getCharacters())
    elif name == "version":
        self.stack[-1].setVersion(self.getCharacters())
    elif name == "name":
        self.stack[-1].setName(self.getCharacters())
    elif name == "type":
        self.stack[-1].setType(self.getCharacters())
    elif name == "required":
        self.stack[-1].setRequired(self.getCharacters())
    elif name == "descr_short":
        self.stack[-1].setDescrShort(self.getCharacters())
    elif name == "description":
        self.stack[-1].setDescription(self.getCharacters())
    elif name == "body":
        self.stack[-1].setBody(self.getCharacters())
    elif name == "value":
        ch = self.getCharacters()
        # to keep compatibility with the old version
        # were """ was not used for the string
        if self.stack[-1].isTypeString():
            self.stack[-1].setValue(ch)
        else:
            self.stack[-1].setValue(eval(ch))
    # objects
    elif name == "Workflow":
        self.stack.pop()
    elif name == "StepDefinition":
        self.root.step_definitions.append(self.stack.pop())
    elif name == "StepInstance":
        self.root.step_instances.append(self.stack.pop())
    elif name == "ModuleDefinition":
        self.root.addModule(self.stack.pop())
    elif name == "ModuleInstance":
        obj = self.stack.pop()
        self.stack[-1].module_instances.append(obj)
    elif name == "Parameter":
        obj = self.stack.pop()
        self.stack[-1].addParameter(obj)
    else:
        print("UNTREATED! endElement", name)