def restoreValue(self, xelem):
        """
        Stores the value for the inptued instance to the given xml element.
        
        :param      xelem | <xml.etree.Element>
        
        :return     <variant>
        """
        typ = xelem.get('type')
        
        if typ == 'color':
            return QtGui.QColor(xelem.text)
        
        elif typ == 'point':
            return QtCore.QPoint(*map(int, xelem.text.split(',')))
        
        elif typ == 'pointf':
            return QtCore.QPointF(*map(float, xelem.text.split(',')))
        
        elif typ == 'rect':
            return QtCore.QRectF(*map(int, xelem.text.split(',')))
        
        elif typ == 'rectf':
            return QtCore.QRectF(*map(float, xelem.text.split(',')))
        
        elif typ == 'bytea':
            return QtCore.QByteArray(cPickle.loads(xelem.text))
        
        elif typ == 'pickle':
            return cPickle.loads(xelem.text)
        
        elif typ == 'xml':
            return xelem[0]
        
        elif typ in ('str', 'unicode'):
            return xelem.text
        
        else:
            try:
                return eval('{0}({1})'.format(typ, xelem.text))
            except:
                return None