protected function marshall(QtiComponent $component)
    {
        $element = $this->createElement($component);
        $object = $component->getObject();
        $element->appendChild($this->getMarshallerFactory()->createMarshaller($object)->marshall($object));

        foreach ($component->getPositionObjectInteractions() as $interaction) {
            $element->appendChild($this->getMarshallerFactory()->createMarshaller($interaction)->marshall($interaction));
        }

        return $element;
    }