protected function unmarshall(DOMElement $element)
    {
        try {
            $baseComponent = parent::unmarshall($element);
            $object = new ResponseDeclaration($baseComponent->getIdentifier());
            $object->setBaseType($baseComponent->getBaseType());
            $object->setCardinality($baseComponent->getCardinality());
            $object->setDefaultValue($baseComponent->getDefaultValue());

            $correctResponseElts = $this->getChildElementsByTagName($element, 'correctResponse');
            if (count($correctResponseElts) === 1) {
                $correctResponseElt = $correctResponseElts[0];
                $marshaller = $this->getMarshallerFactory()->createMarshaller($correctResponseElt, array($baseComponent->getBaseType()));
                $object->setCorrectResponse($marshaller->unmarshall($correctResponseElt));
            }

            $mappingElts = $this->getChildElementsByTagName($element, 'mapping');
            if (count($mappingElts) === 1) {
                $mappingElt = $mappingElts[0];
                $marshaller = $this->getMarshallerFactory()->createMarshaller($mappingElt, array($baseComponent->getBaseType()));
                $object->setMapping($marshaller->unmarshall($mappingElt));
            }

            $areaMappingElts = $this->getChildElementsByTagName($element, 'areaMapping');
            if (count($areaMappingElts) === 1) {
                $areaMappingElt = $areaMappingElts[0];
                $marshaller = $this->getMarshallerFactory()->createMarshaller($areaMappingElt);
                $object->setAreaMapping($marshaller->unmarshall($areaMappingElt));
            }

            return $object;
        } catch (InvalidArgumentException $e) {
            $msg = "An unexpected error occured while unmarshalling the responseDeclaration.";
            throw new UnmarshallingException($msg, $element, $e);
        }
    }
protected function unmarshall(DOMElement $element)
    {
        try {
            $baseComponent = parent::unmarshall($element);
            $object = new ResponseDeclaration($baseComponent->getIdentifier());
            $object->setBaseType($baseComponent->getBaseType());
            $object->setCardinality($baseComponent->getCardinality());
            $object->setDefaultValue($baseComponent->getDefaultValue());

            $correctResponseElts = $this->getChildElementsByTagName($element, 'correctResponse');
            if (count($correctResponseElts) === 1) {
                $correctResponseElt = $correctResponseElts[0];
                $marshaller = $this->getMarshallerFactory()->createMarshaller($correctResponseElt, array($baseComponent->getBaseType()));
                $object->setCorrectResponse($marshaller->unmarshall($correctResponseElt));
            }

            $mappingElts = $this->getChildElementsByTagName($element, 'mapping');
            if (count($mappingElts) === 1) {
                $mappingElt = $mappingElts[0];
                $marshaller = $this->getMarshallerFactory()->createMarshaller($mappingElt, array($baseComponent->getBaseType()));
                $object->setMapping($marshaller->unmarshall($mappingElt));
            }

            $areaMappingElts = $this->getChildElementsByTagName($element, 'areaMapping');
            if (count($areaMappingElts) === 1) {
                $areaMappingElt = $areaMappingElts[0];
                $marshaller = $this->getMarshallerFactory()->createMarshaller($areaMappingElt);
                $object->setAreaMapping($marshaller->unmarshall($areaMappingElt));
            }

            return $object;
        } catch (InvalidArgumentException $e) {
            $msg = "An unexpected error occured while unmarshalling the responseDeclaration.";
            throw new UnmarshallingException($msg, $element, $e);
        }
    }
protected function unmarshall ( DOMElement $ element ) { try { $ baseComponent = parent :: unmarshall ( $ element ) ; $ object = new ResponseDeclaration ( $ baseComponent -> getIdentifier ( ) ) ; $ object -> setBaseType ( $ baseComponent -> getBaseType ( ) ) ; $ object -> setCardinality ( $ baseComponent -> getCardinality ( ) ) ; $ object -> setDefaultValue ( $ baseComponent -> getDefaultValue ( ) ) ; $ correctResponseElts = $ this -> getChildElementsByTagName ( $ element , 'correctResponse' ) ; if ( count ( $ correctResponseElts ) === 1 ) { $ correctResponseElt = $ correctResponseElts [ 0 ] ; $ marshaller = $ this -> getMarshallerFactory ( ) -> createMarshaller ( $ correctResponseElt , array ( $ baseComponent -> getBaseType ( ) ) ) ; $ object -> setCorrectResponse ( $ marshaller -> unmarshall ( $ correctResponseElt ) ) ; } $ mappingElts = $ this -> getChildElementsByTagName ( $ element , 'mapping' ) ; if ( count ( $ mappingElts ) === 1 ) { $ mappingElt = $ mappingElts [ 0 ] ; $ marshaller = $ this -> getMarshallerFactory ( ) -> createMarshaller ( $ mappingElt , array ( $ baseComponent -> getBaseType ( ) ) ) ; $ object -> setMapping ( $ marshaller -> unmarshall ( $ mappingElt ) ) ; } $ areaMappingElts = $ this -> getChildElementsByTagName ( $ element , 'areaMapping' ) ; if ( count ( $ areaMappingElts ) === 1 ) { $ areaMappingElt = $ areaMappingElts [ 0 ] ; $ marshaller = $ this -> getMarshallerFactory ( ) -> createMarshaller ( $ areaMappingElt ) ; $ object -> setAreaMapping ( $ marshaller -> unmarshall ( $ areaMappingElt ) ) ; } return $ object ; } catch ( InvalidArgumentException $ e ) { $ msg = "An unexpected error occured while unmarshalling the responseDeclaration." ; throw new UnmarshallingException ( $ msg , $ element , $ e ) ; } }
Unmarshall a DOMElement object corresponding to a QTI responseDeclaration element.

@param \DOMElement $element A DOMElement object.
@return \qtism\data\QtiComponent A ResponseDeclaration object.
@throws \qtism\data\storage\xml\marshalling\UnmarshallingException
Unmarshall a DOMElement object corresponding to a QTI responseDeclaration element .