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));