protected function unmarshallChildrenKnown(DOMElement $element, QtiComponentCollection $children)
    {
        if (($caseSensitive = $this->getDOMElementAttributeAs($element, 'caseSensitive', 'boolean')) !== null) {

            $object = new StringMatch($children, $caseSensitive);

            if (($substring = $this->getDOMElementAttributeAs($element, 'substring', 'boolean')) !== null) {
                $object->setSubstring($substring);
            }

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