protected function marshall(QtiComponent $component)
    {
        $element = static::getDOMCradle()->createElement($component->getQtiClassName());

        $this->setDOMElementAttribute($element, 'templateIdentifier', $component->getTemplateIdentifier());

        $expr = $component->getExpression();
        $exprMarshaller = $this->getMarshallerFactory()->createMarshaller($expr);
        $exprElt = $exprMarshaller->marshall($expr);

        $element->appendChild($exprElt);

        return $element;
    }