protected function unmarshall(DOMElement $element)
    {
        if (($sourceValue = $this->getDOMElementAttributeAs($element, 'sourceValue', 'integer')) !== null) {
            if (($targetValue = $this->getDOMElementAttributeAs($element, 'targetValue', 'string')) !== null) {
                $object = new MatchTableEntry($sourceValue, Utils::stringToDatatype($targetValue, $this->getBaseType()), $this->getBaseType());

                return $object;
            } else {
                $msg = "The mandatory attribute 'targetValue' is missing.";
                throw new InvalidArgumentException($msg, $element);
            }

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