Example #1
0
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;
}
Example #2
0
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);
}