/** * Valida un el body de un mensaje soap contra el esquema XSD. * * @param string $funcion * es el nombre del metodo que queremos validar.<br> Normalmente es * la constante __FUNCTION__ para validar el "request". * @return multitype array si hay un error y NULL en cualaquier otro caso. */ function validarMensajeXML($funcion) { if (!isset($HTTP_RAW_POST_DATA)) { $HTTP_RAW_POST_DATA = implode("\r\n", file('php://input')); } $respError = new respuestaError(); $domRequest = new DOMDocument(); $domRequest->loadXML($HTTP_RAW_POST_DATA); /*$body = $domRequest->getElementsByTagName($funcion); //die(print_r($domRequest->saveXML($body->item("0")))); $domRequest->loadXML($domRequest->saveXML($body->item("0"))); $domRequest->createAttributeNS("http://www.proyectomadre.es/catalogoServicios", "xmlns"); $domRequest->loadXML($domRequest->saveXML());*/ libxml_use_internal_errors(true); if (!$domRequest->schemaValidate(NOMBRE_WEB_SERVICE . ".xsd")) { $errors = libxml_get_errors(); //die(print_r($errors)); libxml_clear_errors(); libxml_use_internal_errors(false); return $respError->errorValidacion($errors[0]->code, $errors[0]->message, $funcion); } else { return NULL; } }