240         $children = $iNode->childNodes;
   241         for ($i = 0; $i < $children->length; $i++) {
   242             $curNode = $children->item($i);
   243             if ($curNode->nodeType == XML_ELEMENT_NODE) {
   244                 if ($curNode->localName === 
"controlMode") {
   246                     $tempVal = $curNode->getAttribute(
"choice");
   248                         $ioAct->setControlModeChoice(self::convert_to_bool($tempVal));
   251                     $tempVal = $curNode->getAttribute(
"choiceExit");
   253                         $ioAct->setControlModeChoiceExit(self::convert_to_bool($tempVal));
   257                     $tempVal = $curNode->getAttribute(
"flow");
   259                         $ioAct->setControlModeFlow(self::convert_to_bool($tempVal));
   263                     $tempVal = $curNode->getAttribute(
"forwardOnly");
   265                         $ioAct->setControlForwardOnly(self::convert_to_bool($tempVal));
   269                     $tempVal = $curNode->getAttribute(
"useCurrentAttemptObjectiveInfo");
   271                         $ioAct->setUseCurObjective(self::convert_to_bool($tempVal));
   275                     $tempVal = $curNode->getAttribute(
"useCurrentAttemptProgressInfo");
   277                         $ioAct->setUseCurProgress(self::convert_to_bool($tempVal));
   279                 } elseif ($curNode->localName === 
"sequencingRules") {
   280                     $ioAct = self::getSequencingRules($curNode, $ioAct);
   281                 } elseif ($curNode->localName === 
"limitConditions") {
   283                     $tempVal = $curNode->getAttribute(
"attemptLimit");
   285                         $ioAct->setAttemptLimit($tempVal);
   289                     $tempVal = $curNode->getAttribute(
"attemptAbsoluteDurationLimit");
   291                         $ioAct->setAttemptAbDur($tempVal);
   295                     $tempVal = $curNode->getAttribute(
"attemptExperiencedDurationLimit");
   297                         $ioAct->setAttemptExDur($tempVal);
   301                     $tempVal = $curNode->getAttribute(
"activityAbsoluteDurationLimit");
   303                         $ioAct->setActivityAbDur($tempVal);
   307                     $tempVal = $curNode->getAttribute(
"activityExperiencedDurationLimit");
   309                         $ioAct->setActivityExDur($tempVal);
   313                     $tempVal = $curNode->getAttribute(
"beginTimeLimit");
   315                         $ioAct->setBeginTimeLimit($tempVal);
   319                     $tempVal = $curNode->getAttribute(
"endTimeLimit");
   321                         $ioAct->setEndTimeLimit($tempVal);
   323                 } elseif ($curNode->localName === 
"auxiliaryResources") {
   324                     $ioAct = self::getAuxResources($curNode, $ioAct);
   325                 } elseif ($curNode->localName === 
"rollupRules") {
   326                     $ioAct = self::getRollupRules($curNode, $ioAct);
   327                 } elseif ($curNode->localName === 
"objectives" && $curNode->namespaceURI === 
"http://www.imsglobal.org/xsd/imsss") {
   328                     $ioAct = self::getObjectives($curNode, $ioAct);
   329                 } elseif ($curNode->localName === 
"objectives" && $curNode->namespaceURI === 
"http://www.adlnet.org/xsd/adlseq_v1p3") {
   330                     $ioAct = self::getADLSEQObjectives($curNode, $ioAct);
   331                 } elseif ($curNode->localName === 
"randomizationControls") {
   333                     $tempVal = $curNode->getAttribute(
"randomizationTiming");
   335                         $ioAct->setRandomTiming($tempVal);
   339                     $tempVal = $curNode->getAttribute(
"selectCount");
   341                         $ioAct->setSelectCount($tempVal);
   345                     $tempVal = $curNode->getAttribute(
"reorderChildren");
   347                         $ioAct->setReorderChildren(self::convert_to_bool($tempVal));
   351                     $tempVal = $curNode->getAttribute(
"selectionTiming");
   353                         $ioAct->setSelectionTiming($tempVal);
   355                 } elseif ($curNode->localName === 
"deliveryControls") {
   357                     $tempVal = $curNode->getAttribute(
"tracked");
   359                         $ioAct->setIsTracked(self::convert_to_bool($tempVal));
   363                     $tempVal = $curNode->getAttribute(
"completionSetByContent");
   365                         $ioAct->setSetCompletion(self::convert_to_bool($tempVal));
   369                     $tempVal = $curNode->getAttribute(
"objectiveSetByContent");
   371                         $ioAct->setSetObjective(self::convert_to_bool($tempVal));
   373                 } elseif ($curNode->localName === 
"constrainedChoiceConsiderations") {
   375                     $tempVal = $curNode->getAttribute(
"preventActivation");
   377                         $ioAct->setPreventActivation(self::convert_to_bool($tempVal));
   381                     $tempVal = $curNode->getAttribute(
"constrainChoice");
   383                         $ioAct->setConstrainChoice(self::convert_to_bool($tempVal));
   385                 } elseif ($curNode->localName === 
"rollupConsiderations") {
   387                     $tempVal = $curNode->getAttribute(
"requiredForSatisfied");
   389                         $ioAct->setRequiredForSatisfied($tempVal);
   393                     $tempVal = $curNode->getAttribute(
"requiredForNotSatisfied");
   395                         $ioAct->setRequiredForNotSatisfied($tempVal);
   399                     $tempVal = $curNode->getAttribute(
"requiredForCompleted");
   401                         $ioAct->setRequiredForCompleted($tempVal);
   405                     $tempVal = $curNode->getAttribute(
"requiredForIncomplete");
   407                         $ioAct->setRequiredForIncomplete($tempVal);
   411                     $tempVal = $curNode->getAttribute(
"measureSatisfactionIfActive");
   413                         $ioAct->setSatisfactionIfActive(self::convert_to_bool($tempVal));