code: def _validate(self, writing=False):
          
          if self.colorspace is not None and self.icc_profile is not None:
              msg = ("Colorspace and icc_profile cannot both be set when "
                     "creating a ColourSpecificationBox.")
              self._dispatch_validation_error(msg, writing=writing)
  
          if self.method not in _COLORSPACE_METHODS.keys():
              msg = "Invalid colorspace method value ({method})."
              msg = msg.format(method=self.method)
              if writing:
                  raise IOError(msg)
              else:
                  warnings.warn(msg, UserWarning)
  
          if self.approximation not in _APPROXIMATION_MEASURES.keys():
              msg = "Invalid colr approximation value ({approx})."
              msg = msg.format(approx=self.approximation)
              if not writing:
                  # Don't bother to check this for the case of writing=True
                  # because it's already handles in the wrapping code.
                  warnings.warn(msg, UserWarning)
docs: Verify that the box obeys the specifications.