Validación de Esquema

Esto proporciona una configuración opcional para validar una entrada. XML file contra un objeto Schema generado a partir de los archivos XSD relevantes. En el event que la validación del esquema falle, el archivo no será debulked.

Validación previa a debulking solo es posible para XML file s.

La validación puede ser habilitada para cada Configuración de Debulking proporcionando validate-before-debulk.schema-bean-name ruta de configuración dentro de la configuración. El valor proporcionado debe coincidir con el Spring bean nombre que proporciona el relevante javax.xml.validation. Schema objeto para validar contra. En el event que no bean name se proporciona, o el relevante bean no está configurado/disponible, el Debulker no podrá iniciarse.

Customising Validación de Esquema

El proceso de validación del esquema puede ser customised de dos maneras:

Custom Manejador de Errores

La implementación XSDValidator admite la inyección de un custom ErrorHandler. Si no se proporciona ninguno, el validador no utilizará ningún controlador de errores de manera explícita y se basará en su comportamiento predeterminado (que típicamente lanza excepciones de validación cuando ocurren violaciones del esquema).

@Bean
ErrorHandler customErrorHandler() {
    // Return a custom implementation of ErrorHandler
    return new CustomErrorHandler();
}

A custom el controlador de errores puede ser utilizado para:

  • Controle cómo se informan los errores de validación

  • Registre mensajes más significativos

  • Suprima o escale tipos específicos de problemas de validación.

Si el custom el manejador de errores traga excepciones (por ejemplo, extendiendo DefaultHandler sin anular error() or fatalError()), las fallas de validación del esquema pueden ser ignoradas silenciosamente.

Sobrescribiendo el XSDValidator Bean

Para más extenso customisation, todo el XSDValidator bean puede ser anulado definiendo un custom bean en la configuración de la aplicación:

@Bean
XSDValidator customXsdValidator(DebulkingContext debulkingContext,
                               ErrorHandler errorHandler) {
    // Return a custom implementation or a customised instance of XSDValidator
    return new CustomXSDValidator(debulkingContext, errorHandler);
}

Este enfoque permite un control completo sobre el proceso de validación, incluyendo cómo se manejan y reportan los errores de validación.