def load(self, field_xso):
        """
        Load the field information from a data field.

        :param field_xso: XSO describing the field.
        :type field_xso: :class:`~.Field`

        This loads the current value, description, label and possibly options
        from the `field_xso`, shadowing the information from the declaration of
        the field on the class.

        This method is must be overriden and is thus marked abstract. However,
        when called from a subclass, it loads the :attr:`desc`, :attr:`label`
        and :attr:`required` from the given `field_xso`. Subclasses are
        supposed to implement a mechansim to load options and/or values from
        the `field_xso` and then call this implementation through
        :func:`super`.
        """
        if field_xso.desc:
            self._desc = field_xso.desc

        if field_xso.label:
            self._label = field_xso.label

        self._required = field_xso.required