4 * License : The MIT License
5 * Copyright(c) 2008 olyutorskii
8 package jp.sourceforge.jindolf.archiver;
10 import java.io.IOException;
11 import java.io.Reader;
12 import java.util.concurrent.Callable;
13 import javax.xml.transform.Source;
14 import javax.xml.transform.stream.StreamSource;
15 import javax.xml.validation.Validator;
16 import org.xml.sax.SAXException;
21 public class ValidateTask implements Callable<Void> {
23 private static final String ERR_IO = "XML入力エラーが発生しました";
24 private static final String ERR_XSD = "XML検証が失敗しました";
25 private static final String ERR_ABORT = "XML検証が中断されました";
28 private final Reader reader;
29 private final Source source;
30 private final Validator validator;
38 public ValidateTask(Reader reader, Validator valid){
41 this.source = new StreamSource(this.reader);
42 this.validator = valid;
52 public static String getErrDescription(Throwable cause){
54 if (cause instanceof IOException) desc = ERR_IO;
55 else if(cause instanceof SAXException) desc = ERR_XSD;
56 else desc = ERR_ABORT;
64 * @throws IOException 入力エラー
65 * @throws SAXException 検証エラー
68 public Void call() throws IOException, SAXException{
70 this.validator.validate(this.source);