protected function unmarshall(DOMElement $element)
    {
        $baseComponent = parent::unmarshall($element);

        if (($href = $this->getDOMElementAttributeAs($element, 'href', 'string')) !== null) {
            $object = new AssessmentSectionRef($baseComponent->getIdentifier(), $href);
            $object->setRequired($baseComponent->isRequired());
            $object->setFixed($baseComponent->isFixed());
            $object->setPreConditions($baseComponent->getPreConditions());
            $object->setBranchRules($baseComponent->getBranchRules());
            $object->setItemSessionControl($baseComponent->getItemSessionControl());
            $object->setTimeLimits($baseComponent->getTimeLimits());

            return $object;
        } else {
            $msg = "Mandatory attribute 'href' is missing from element '" . $element->localName . "'.";
            throw new UnmarshallingException($msg, $element);
        }
    }