Cita:
Empezado por VictorCasajuana
Hola!
He estado revisando en el hilo si alguien validaba los xml generados contra los xsd y no veo que nadie lo haga. No es buena práctica? me estoy planteando validarlos antes de enviarlos para minimizar los errores.
Gracias!
|
Hola,
Yo utilizo PHP y valido en XML creado contra el XSD
Código PHP:
function VALIDAR_XML($xml, $fichero_xsd) {
// Valida un string xml frente a un fichero de esquema xsd
// No devuelve nada si ha ido bien y los errores si ha ido mal
libxml_use_internal_errors(true);
$domDocument = new DOMDocument();
$domDocument->loadXML($xml);
if (!$domDocument->schemaValidate($fichero_xsd)) {
$errores = libxml_get_errors();
libxml_clear_errors();
return $errores; // Devuelve array de errores si los hay o nada si no hay errores
}
}
Eso sí, la función DOMDocument::schemaValidate de PHP no permite que la URL del schemaLocation sea externa.
Así que tuve que cambiar la línea de import del XSD a:
Código:
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
y guardar el fichero xmldsig-core-schema.xsd en el mismo directorio.
Pero funciona perfecto y valida frente al XSD.
Saludos