239         $children = $iNode->childNodes;
   240         for ($i = 0; $i < $children->length; $i++) {
   241             $curNode = $children->item($i);
   242             if ($curNode->nodeType == XML_ELEMENT_NODE) {
   243                 if ($curNode->localName === 
"controlMode") {
   245                     $tempVal = $curNode->getAttribute(
"choice");
   247                         $ioAct->setControlModeChoice(self::convert_to_bool($tempVal));
   250                     $tempVal = $curNode->getAttribute(
"choiceExit");
   252                         $ioAct->setControlModeChoiceExit(self::convert_to_bool($tempVal));
   256                     $tempVal = $curNode->getAttribute(
"flow");
   258                         $ioAct->setControlModeFlow(self::convert_to_bool($tempVal));
   262                     $tempVal = $curNode->getAttribute(
"forwardOnly");
   264                         $ioAct->setControlForwardOnly(self::convert_to_bool($tempVal));
   268                     $tempVal = $curNode->getAttribute(
"useCurrentAttemptObjectiveInfo");
   270                         $ioAct->setUseCurObjective(self::convert_to_bool($tempVal));
   274                     $tempVal = $curNode->getAttribute(
"useCurrentAttemptProgressInfo");
   276                         $ioAct->setUseCurProgress(self::convert_to_bool($tempVal));
   278                 } elseif ($curNode->localName === 
"sequencingRules") {
   279                     $ioAct = self::getSequencingRules($curNode, $ioAct);
   280                 } elseif ($curNode->localName === 
"limitConditions") {
   282                     $tempVal = $curNode->getAttribute(
"attemptLimit");
   284                         $ioAct->setAttemptLimit($tempVal);
   288                     $tempVal = $curNode->getAttribute(
"attemptAbsoluteDurationLimit");
   290                         $ioAct->setAttemptAbDur($tempVal);
   294                     $tempVal = $curNode->getAttribute(
"attemptExperiencedDurationLimit");
   296                         $ioAct->setAttemptExDur($tempVal);
   300                     $tempVal = $curNode->getAttribute(
"activityAbsoluteDurationLimit");
   302                         $ioAct->setActivityAbDur($tempVal);
   306                     $tempVal = $curNode->getAttribute(
"activityExperiencedDurationLimit");
   308                         $ioAct->setActivityExDur($tempVal);
   312                     $tempVal = $curNode->getAttribute(
"beginTimeLimit");
   314                         $ioAct->setBeginTimeLimit($tempVal);
   318                     $tempVal = $curNode->getAttribute(
"endTimeLimit");
   320                         $ioAct->setEndTimeLimit($tempVal);
   322                 } elseif ($curNode->localName === 
"auxiliaryResources") {
   323                     $ioAct = self::getAuxResources($curNode, $ioAct);
   324                 } elseif ($curNode->localName === 
"rollupRules") {
   325                     $ioAct = self::getRollupRules($curNode, $ioAct);
   326                 } elseif ($curNode->localName === 
"objectives" && $curNode->namespaceURI === 
"http://www.imsglobal.org/xsd/imsss") {
   327                     $ioAct = self::getObjectives($curNode, $ioAct);
   328                 } elseif ($curNode->localName === 
"objectives" && $curNode->namespaceURI === 
"http://www.adlnet.org/xsd/adlseq_v1p3") {
   329                     $ioAct = self::getADLSEQObjectives($curNode, $ioAct);
   330                 } elseif ($curNode->localName === 
"randomizationControls") {
   332                     $tempVal = $curNode->getAttribute(
"randomizationTiming");
   334                         $ioAct->setRandomTiming($tempVal);
   338                     $tempVal = $curNode->getAttribute(
"selectCount");
   340                         $ioAct->setSelectCount($tempVal);
   344                     $tempVal = $curNode->getAttribute(
"reorderChildren");
   346                         $ioAct->setReorderChildren(self::convert_to_bool($tempVal));
   350                     $tempVal = $curNode->getAttribute(
"selectionTiming");
   352                         $ioAct->setSelectionTiming($tempVal);
   354                 } elseif ($curNode->localName === 
"deliveryControls") {
   356                     $tempVal = $curNode->getAttribute(
"tracked");
   358                         $ioAct->setIsTracked(self::convert_to_bool($tempVal));
   362                     $tempVal = $curNode->getAttribute(
"completionSetByContent");
   364                         $ioAct->setSetCompletion(self::convert_to_bool($tempVal));
   368                     $tempVal = $curNode->getAttribute(
"objectiveSetByContent");
   370                         $ioAct->setSetObjective(self::convert_to_bool($tempVal));
   372                 } elseif ($curNode->localName === 
"constrainedChoiceConsiderations") {
   374                     $tempVal = $curNode->getAttribute(
"preventActivation");
   376                         $ioAct->setPreventActivation(self::convert_to_bool($tempVal));
   380                     $tempVal = $curNode->getAttribute(
"constrainChoice");
   382                         $ioAct->setConstrainChoice(self::convert_to_bool($tempVal));
   384                 } elseif ($curNode->localName === 
"rollupConsiderations") {
   386                     $tempVal = $curNode->getAttribute(
"requiredForSatisfied");
   388                         $ioAct->setRequiredForSatisfied($tempVal);
   392                     $tempVal = $curNode->getAttribute(
"requiredForNotSatisfied");
   394                         $ioAct->setRequiredForNotSatisfied($tempVal);
   398                     $tempVal = $curNode->getAttribute(
"requiredForCompleted");
   400                         $ioAct->setRequiredForCompleted($tempVal);
   404                     $tempVal = $curNode->getAttribute(
"requiredForIncomplete");
   406                         $ioAct->setRequiredForIncomplete($tempVal);
   410                     $tempVal = $curNode->getAttribute(
"measureSatisfactionIfActive");
   412                         $ioAct->setSatisfactionIfActive(self::convert_to_bool($tempVal));