public function unmarshall(DOMElement $element)
    {
        if (($identifier = $this->getDOMElementAttributeAs($element, 'identifier')) !== null) {

            if (($outcomeIdentifier = $this->getDOMElementAttributeAs($element, 'outcomeIdentifier')) !== null) {
                
                if (($showHide = $this->getDOMElementAttributeAs($element, 'showHide', 'string')) !== null) {
                    
                    $showHide = ShowHide::getConstantByName($showHide);
                    $component = new ModalFeedbackRule($outcomeIdentifier, $showHide, $identifier);
                    
                    if (($title = $this->getDOMElementAttributeAs($element, 'title')) !== null) {
                        $component->setTitle($title);
                    }
                    
                    return $component;

                } else {
                    $msg = "The mandatory 'showHide' attribute is missing from element 'modalFeedbackRule'.";
                    throw new UnmarshallingException($msg, $element);
                }

            } else {
                $msg = "The mandatory 'outcomeIdentifier' attribute is missing from element 'modalFeedbackRule'.";
                throw new UnmarshallingException($msg, $element);
            }
            
        } else {
            $msg = "The mandatory 'identifier' attribute is missing from element 'modalFeedbackRule'.";
            throw new UnmarshallingException($msg, $element);
        }
    }