コード例 #1
0
ファイル: XmlHelper.php プロジェクト: Koulio/OpenZIS
 public static function buildSuccessMessage($msgId, $timestamp, $originalSourceId, $originalMsgId, $sifCodeNum, $zoneVersion, $versionNamespace, $zoneName, $originalMsg = null, $desc = null)
 {
     $root = XmlHelper::buildSifAckMessage($msgId, $timestamp, $originalSourceId, $originalMsgId, $zoneVersion, $versionNamespace, $zoneName);
     $sifAck = $root->getElementsByTagName('SIF_Ack')->item(0);
     $sifStatusNode = $root->createElement('SIF_Status');
     $sifCodeNode = $root->createElement('SIF_Code');
     $text = $root->createTextNode($sifCodeNum);
     $sifCodeNode->appendChild($text);
     $sifStatusNode->appendChild($sifCodeNode);
     if ($desc != null) {
         $sifDesc = $root->createElement('SIF_Desc');
         $text = $root->createTextNode($desc);
         $sifDesc->appendChild($text);
         $sifStatusNode->appendChild($sifDesc);
     }
     if ($originalMsg != null) {
         $f_dom = new DOMDocument('1.0', 'UTF-8');
         $f_dom->preserveWhiteSpace = false;
         $f_dom->formatOutput = false;
         $f_dom->loadXML($originalMsg);
         $messageNode = $f_dom->getElementsByTagName('SIF_Message')->item(0);
         if ($messageNode == null) {
             $messageNode = $f_dom->getElementsByTagName('SIF_AgentACL')->item(0);
             if ($messageNode == null) {
                 $messageNode = $f_dom->getElementsByTagName('SIF_ZoneStatus')->item(0);
             }
         }
         $xmlStr_ = $f_dom->saveXML($messageNode);
         $sifDataNode = $root->createElement('SIF_Data');
         $f = $root->createDocumentFragment();
         $f->appendXML($xmlStr_);
         $domNode = $root->importNode($f, true);
         $sifDataNode->appendChild($domNode);
         $sifStatusNode->appendChild($sifDataNode);
     }
     $sifAck->appendChild($sifStatusNode);
     $root->preserveWhiteSpace = false;
     $root->formatOutput = false;
     $xmlStr = $root->saveXML();
     return $xmlStr;
 }
コード例 #2
0
ファイル: XmlHelper.php プロジェクト: Koulio/OpenZIS
 public static function buildErrorMessage($categoryCode, $errorCode, $shortDesc, $longDesc, $msgId, $timestamp, $originalSourceId, $originalMsgId, $writeToLog = true)
 {
     $root = XmlHelper::buildSifAckMessage($msgId, $timestamp, $originalSourceId, $originalMsgId);
     $sifAck = $root->getElementsByTagName('SIF_Ack');
     $sifErrorNode = $root->createElement('SIF_Error');
     $sifCategoryNode = $root->createElement('SIF_Category');
     $text = $root->createTextNode($categoryCode);
     $sifCategoryNode->appendChild($text);
     $sifCodeNode = $root->createElement('SIF_Code');
     $text = $root->createTextNode($errorCode);
     $sifCodeNode->appendChild($text);
     $sifShortDescNode = $root->createElement('SIF_Desc');
     $text = $root->createTextNode($shortDesc);
     $sifShortDescNode->appendChild($text);
     $sifLongDescNode = $root->createElement('SIF_ExtendedDesc');
     $text = $root->createTextNode($longDesc);
     $sifLongDescNode->appendChild($text);
     $sifErrorNode->appendChild($sifCategoryNode);
     $sifErrorNode->appendChild($sifCodeNode);
     $sifErrorNode->appendChild($sifShortDescNode);
     $sifErrorNode->appendChild($sifLongDescNode);
     $sifAck->item(0)->appendChild($sifErrorNode);
     $xmlStr = $root->saveXML();
     if ($writeToLog) {
         $_SESSION['SIF_MESSAGE_TYPE'] = 1;
         ZitLog::writeToLog(REC_XML, $xmlStr);
     }
     $length = strlen($xmlStr);
     header('Content-Length: ' . $length);
     echo $xmlStr;
     session_destroy();
     exit;
 }