public function set($csdl)
    {
        if ($csdl === false) {
            $this->_csdl = false;
        } else {
            if (! is_string($csdl)) {
                throw new DataSift_Exception_InvalidData('Definitions must be strings.');
            }

            // Trim the incoming string
            $csdl = trim($csdl);

            // If the string has changed, reset the hash
            if ($this->_csdl != $csdl) {
                $this->clearHash();
            }

            $this->_csdl = $csdl;
        }
    }