Pessoal estou validando um arquivo xml conforme um Schema, bem minha dúvida é se existe alguma forma de formatar a mensagem de erro quando o arquivo não está correto. Gostaria de apresentar uma mensagem mais amigavél para o usuário.
Valeu
Pessoal estou validando um arquivo xml conforme um Schema, bem minha dúvida é se existe alguma forma de formatar a mensagem de erro quando o arquivo não está correto. Gostaria de apresentar uma mensagem mais amigavél para o usuário.
Valeu
Você está validando como? Usando parser?
O SAX, por exemplo, lança uma exception se o XML não estiver de acordo com o schema, então, você poderia capturar a exceção e lançar uma sua.
Então criei uma classe para capturar as mensagens de erro, mas queria saber se existe algo mais prático
class SimpleErrorHandler implements ErrorHandler {
private Logger logger = Logger.getLogger("br.com.sensatta");
public void error(SAXParseException exception) {
log(Level.SEVERE, "Error", exception);
}
public void fatalError(SAXParseException exception) {
log(Level.SEVERE, "Fatal Error", exception);
}
public void warning(SAXParseException exception) {
log(Level.WARNING, "Warning" , exception);
}
private void log(Level level, String message, SAXParseException e) {
int line = e.getLineNumber();
int col = e.getColumnNumber();
String publicId = e.getPublicId();
String systemId = e.getSystemId();
message = message + ": " + e.getMessage() + ": line="
+ line + ", col=" + col + ", PUBLIC="
+ publicId + ", SYSTEM=" + systemId;
logger.log(level, message);
}
Exemplo:
SEVERE: Error: cvc-pattern-valid: Value '
' is not facet-valid with respect to pattern '0\.[0-9]{1}[1-9]{1}|0\.[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?' for type 'TDec_1302Opc'.: line=12, col=14, PUBLIC=null, SYSTEM=file:///C:/Projetos/file.xml
Valeu