r"""Parse xml element include the node attributes.

        :param element: an :class:`~xml.etree.ElementTree.Element` instance
        :rtype: dict

        .. versionadded:: 1.2.1

def parse_full(self, element):
        r"""Parse xml element include the node attributes.

        :param element: an :class:`~xml.etree.ElementTree.Element` instance
        :rtype: dict

        .. versionadded:: 1.2.1
        """
        values = collections.defaultdict(dict)
        for child in element:
            node = self.get_node(child)
            subs = self.parse_full(child)
            value = subs or {'values': node['value']}
            value['attrs'] = node['attr']
            if node['tag'] not in values['values']:
                values['values'][node['tag']] = value
            else:
                if not isinstance(values['values'][node['tag']], list):
                    values['values'][node['tag']] = [values['values'].pop(node['tag'])]
                values['values'][node['tag']].append(value)
        return values