Ver Mensaje Individual
  #3970  
Antiguo 27-11-2023
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 373
Reputación: 5
Sistel Va por buen camino
Cita:
Empezado por VictorCasajuana Ver Mensaje
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
Responder Con Cita