protected function unmarshall(DOMElement $element)
    {
        if (($name = $this->getDOMElementAttributeAs($element, 'name')) !== null) {
            if (($cst = MathEnumeration::getConstantByName($name)) !== false) {
                $object = new MathConstant($cst);

                return $object;
            } else {
                $msg = "'${name}' is not a valid value for the attribute 'name' from element '" . $element->localName . "'.";
                throw new UnmarshallingException($msg, $element);
            }
        } else {
            $msg = "The mandatory attribute 'name' is missing from element '" . $element->localName . "'.";
            throw new UnmarshallingException($msg, $element);
        }
    }