Called to handle each field on an object (except for ForeignKeys and
        ManyToManyFields)

def handle_field(self, obj, field):
        """
        Called to handle each field on an object (except for ForeignKeys and
        ManyToManyFields)
        """
        self.indent(2)

        field_attrs = {
            "name" : field.name,
            "type" : field.get_internal_type()
        }
        # handle fields with a extra_attrs set as speciul
        if hasattr(field, 'extra_attrs'):
            if field.extra_attrs:
                for (key, value) in field.extra_attrs.iteritems():
                    field_attrs[key] = force_unicode(value)

            field_attrs['name'] = field.name.replace('_', '.')

        self.xml.startElement("field", field_attrs)

        # Checks for a custom value serializer 
        if not hasattr(field, '__serialize__'):
            # Get a "string version" of the object's data.
            if getattr(obj, field.name) is not None:
                self.xml.characters(field.value_to_string(obj))
            else:
                self.xml.addQuickElement("None")
        else:
            field.__serialize__(obj, self.xml)

        self.xml.endElement("field")