Я использовал jdom для xml проверки против схемы. Основная проблема там состоит в том, что это дает ошибку
Синтаксический анализ FWK005 нельзя назвать при парсинге
Главная причина состояла в том что несколько потоки, работающие на xerces проверку одновременно. ТАКИМ ОБРАЗОМ, я получил решение, что я должен заблокировать ту проверку. который не хорош
Таким образом, я хочу знать, какой xml блок проверки допустимости работает отлично на проект многопоточности
public static HashMap<String, String> validate(String xmlString, Validator validator) {
HashMap<String, String> map = new HashMap<String, String>();
long t1 = System.currentTimeMillis();
DocumentBuilder builder = null;
try {
//obtain lock to proceed
// lock.lock();
try {
builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
// Source source = new DOMSource(builder.parse(new ByteArrayInputStream(xmlString.getBytes())));
validator.validate(new StreamSource(new StringReader(xmlString)));
map.put("ISVALID", "TRUE");
logger.info("We have successfuly validated the schema");
} catch (Exception ioe) {
ioe.printStackTrace();
logger.error("NOT2 VALID STRING IS :" + xmlString);
map.put("MSG", ioe.getMessage());
// logger.error("IOException while validating the input XML", ioe);
}
logger.info(map);
long t2 = System.currentTimeMillis();
logger.info("XML VALIDATION TOOK:::" + (t2 - t1));
} catch (Exception e) {
logger.error(e);
} finally {
//release lock
// lock.unlock();
builder = null;
}
return map;
}
Спасибо Sunil Kumar Sahoo
Я не думаю, что какие-либо валидаторы java xml являются потокобезопасными. Возможны следующие варианты: