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 caso de que la validación del esquema falle, el archivo no será descomprimido.
La validación previa al desbaste 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. En caso de que no bean se proporciona el nombre, o el relevante bean no está configurado/disponible, el Debulker no podrá iniciarse.
Personalización de la Validación del Esquema
El proceso de validación del esquema puede ser customised de dos maneras:
Manejador de Errores Personalizado
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 normalmente 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 manejador 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 Bean XSDValidator
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.