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

        if (($outcomeIdentifier = $this->getDOMElementAttributeAs($element, 'outcomeIdentifier')) !== null) {
            $object = new OutcomeMinimum($outcomeIdentifier);
            $object->setSectionIdentifier($baseComponent->getSectionIdentifier());
            $object->setIncludeCategories($baseComponent->getIncludeCategories());
            $object->setExcludeCategories($baseComponent->getExcludeCategories());

            if (($weightIdentifier = $this->getDOMElementAttributeAs($element, 'weightIdentifier')) !== null) {
                $object->setWeightIdentifier($weightIdentifier);
            }

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