/**
  * Parses and performs the (combined) os-data requests
  *
  * @param string $osDataRequests
  */
 private function performDataRequests($osDataRequests)
 {
     //TODO check with the java implementation guys if they do a caching strategy here (same as with data-pipelining),
     // would result in a much higher render performance..
     libxml_use_internal_errors(true);
     $this->doc = new DOMDocument(null, 'utf-8');
     $this->doc->preserveWhiteSpace = true;
     $this->doc->formatOutput = false;
     $this->doc->strictErrorChecking = false;
     $this->doc->recover = false;
     $this->doc->resolveExternals = false;
     if ($this->doc->loadXML($osDataRequests)) {
         $dataPipeliningRequests = array();
         // walk the one or multiple script tags, and build a combined request array
         foreach ($this->doc->childNodes as $childNode) {
             if ($childNode->tagName == 'script') {
                 $dataPipeliningRequests = array_merge($dataPipeliningRequests, DataPipelining::Parse($childNode));
             }
         }
         // and perform the requests
         if (count($dataPipeliningRequests)) {
             $this->dataInserts = DataPipelining::fetch($dataPipeliningRequests, $this->context);
             $this->addContextData($this->dataInserts);
         }
     } else {
         echo "Error parsing os-data:\n" . XmlError::getErrors($osDataRequests);
     }
 }