Initializes the `Pointer` field itself and the :class:`Field` items
        in the :attr:`data` object referenced by the `Pointer` field with the
        *values* in the *content* dictionary.

        The ``['value']`` key in the *content* dictionary refers to the `Pointer`
        field itself and the ``['data']`` key refers to the :attr:`data` object
        referenced by the `Pointer` field.

        :param dict content: a dictionary contains the :class:`~Field.value`
            for the `Pointer` field and the :class:`~Field.value` for each
            :class:`Field` in the :attr:`data` object referenced by the
            `Pointer` field.

def initialize_fields(self, content):
        """ Initializes the `Pointer` field itself and the :class:`Field` items
        in the :attr:`data` object referenced by the `Pointer` field with the
        *values* in the *content* dictionary.

        The ``['value']`` key in the *content* dictionary refers to the `Pointer`
        field itself and the ``['data']`` key refers to the :attr:`data` object
        referenced by the `Pointer` field.

        :param dict content: a dictionary contains the :class:`~Field.value`
            for the `Pointer` field and the :class:`~Field.value` for each
            :class:`Field` in the :attr:`data` object referenced by the
            `Pointer` field.
        """
        for name, value in content.items():
            if name is 'value':
                self.value = value
            elif name is 'data':
                # Container or Pointer
                if is_mixin(self._data):
                    self._data.initialize_fields(value)
                # Field
                elif is_field(self._data):
                    self._data.value = value