function verificaContentMimeExtrinsicObject($dom_ebXML, $allegato_array) { $valid = true; $ExtrinsicObject_array = $dom_ebXML->get_elements_by_tagname("ExtrinsicObject"); $Document_array = $dom_ebXML->get_elements_by_tagname("Document"); //$Document_id_attr = $Document_node->get_attribute('id'); $conta_Document_id = count($Document_array); $conta_EO = count($ExtrinsicObject_array); $ContaAllegati = count($allegato_array); $Document_href_attr = array(); $Document_href_attr_nocid = array(); if ($ContaAllegati != $conta_EO || $ContaAllegati != $conta_Document_id || $conta_EO != $conta_Document_id) { $valid = false; writeTimeFile($_SESSION['idfile'] . "--Repository: Gli Allegati o i Content-ID sono diversi dagli ExtrinsicObject"); verificaAllegatiExtrinsicObject($conta_EO, $ContaAllegati, $conta_Document_id); exit; } else { //Ciclo su ExtrinsicObject for ($index = 0; $index < $conta_EO; $index++) { #### SINGOLO NODO ExtrinsicObject $ExtrinsicObject_node = $ExtrinsicObject_array[$index]; #### RICAVO ATTRIBUTO id DI ExtrinsicObject $ExtrinsicObject_id_attr = $ExtrinsicObject_node->get_attribute('id'); $contenID_arr[$index] = $ExtrinsicObject_id_attr; #### RICAVO ATTRIBUTO mymeType $ExtrinsicObject_mimeType_attr = $ExtrinsicObject_node->get_attribute('mimeType'); $mimeType_arr[$index] = $ExtrinsicObject_mimeType_attr; $trovato_id = false; //Ciclo su Document Content ID for ($s = 0; $s < $conta_Document_id && !$trovato_id; $s++) { $Document_node = $Document_array[$s]; $Document_id_attr = $Document_node->get_attribute('id'); if ($ExtrinsicObject_id_attr[$index] == $Document_id_attr[$s]) { $Document_child_nodes = $Document_node->child_nodes(); ### SINGOLO NODO FIGLIO for ($i = 0; $i < count($Document_child_nodes); $i++) { $Document_child_node = $Document_child_nodes[$i]; ### TAGNAME DEL SINGOLO NODO FIGLIO $Document_child_node_tagname = $Document_child_node->node_name(); if ($Document_child_node_tagname == 'Include') { $Document_href_attr[$index] = $Document_child_node->get_attribute('href'); $Document_href_attr_nocid[$index] = substr($Document_href_attr[$index], strpos($Document_href_attr[$index], 'cid:') + 4); $trovato_id = true; } //END OF if($ExtrinsicObject_child_node_tagname=='Classification') } } } // Non c'è corrispondenza tra ExtrinsicObject e Include if (!$trovato_id) { writeTimeFile($_SESSION['idfile'] . "--Repository: Non ho trovato corrispondenza tra : " . $ExtrinsicObject_id_attr[$index] . " e " . $Document_id_attr[$s]); $valid = false; $conta_Document_id--; verificaAllegatiExtrinsicObject($conta_EO, $ContaAllegati, $conta_Document_id); exit; } } for ($k = 0; $k < $conta_EO && !$trovato; $k++) { $contentID_UP = strtoupper("Content-ID: <" . $Document_href_attr_nocid[$k] . ">"); $mimeType_UP = strtoupper("Content-Type: " . $mimeType_arr[$k]); $trovato = false; for ($i = 0; $i < $ContaAllegati && !$trovato; $i++) { //Se voglio controllare anche il mime-type //if((strpos(strtoupper($allegato_array[$i]),$contentID_UP)) && (strpos(strtoupper($allegato_array[$i]),$mimeType_UP))){ if (strpos(strtoupper($allegato_array[$i]), $contentID_UP)) { $trovato = true; } } } // Se non trova il Content-ID o MimeType--> Errore XDSMissingDocument if (!$trovato) { writeTimeFile($_SESSION['idfile'] . "--Repository: In Content-ID o Content-Type non corrisponde Content-ID: " . $contentID_UP . " Mime-Type: " . $mimeType_UP); $valid = false; $ContaAllegati--; verificaAllegatiExtrinsicObject($conta_EO, $ContaAllegati, $conta_Document_id); exit; } } $ret = array($valid, $Document_href_attr_nocid, $mimeType_arr); return $ret; }
function verificaContentMimeExtrinsicObject($dom_ebXML, $allegato_array) { $valid = true; $ExtrinsicObject_array = $dom_ebXML->get_elements_by_tagname("ExtrinsicObject"); $conta_EO = count($ExtrinsicObject_array); $ContaAllegati = count($allegato_array); if ($ContaAllegati != $conta_EO) { $valid = false; writeTimeFile($_SESSION['idfile'] . "--Repository: Gli Allegati sono diversi dagli ExtrinsicObject"); verificaAllegatiExtrinsicObject($conta_EO, $ContaAllegati); exit; } else { for ($index = 0; $index < $conta_EO; $index++) { #### SINGOLO NODO ExtrinsicObject $ExtrinsicObject_node = $ExtrinsicObject_array[$index]; #### RICAVO ATTRIBUTO id DI ExtrinsicObject $ExtrinsicObject_id_attr = $ExtrinsicObject_node->get_attribute('id'); $contenID_arr[$index] = $ExtrinsicObject_id_attr; #### RICAVO ATTRIBUTO mymeType $ExtrinsicObject_mimeType_attr = $ExtrinsicObject_node->get_attribute('mimeType'); $mimeType_arr[$index] = $ExtrinsicObject_mimeType_attr; $contentID_UP = strtoupper("Content-ID: <" . $contenID_arr[$index] . ">"); $mimeType_UP = strtoupper("Content-Type: " . $mimeType_arr[$index]); $trovato = false; for ($i = 0; $i < $ContaAllegati && !$trovato; $i++) { if (strpos(strtoupper($allegato_array[$i]), $contentID_UP) && strpos(strtoupper($allegato_array[$i]), $mimeType_UP)) { $trovato = true; } } } // Se non trova il Content-ID o MimeType--> Errore XDSMissingDocument if (!$trovato) { writeTimeFile($_SESSION['idfile'] . "--Repository: In Content-ID o Content-Type non corrisponde Content-ID: " . $contentID_UP[$index] . " Mime-Type: " . $mimeType_UP[$index]); $valid = false; $ContaAllegati--; verificaAllegatiExtrinsicObject($conta_EO, $ContaAllegati); exit; } } return array($valid, $mimeType_arr); }