У меня есть строка XML с 8001 символом, которую я хочу проанализировать с помощью SAXParser, но я получаю исключение ниже.Если я удаляю или добавляю только один символ в xml, все работает отлично.Xml загружается из поля clob в oracle DB.
Исключение: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 39; Content ist nicht zulässig in Prolog.
Может кто-нибудь объяснить мне, почему это происходит?
public static boolean isWellformed(final String xml) {
if (xml == null) {
return false;
}
SAXParser saxParser;
DefaultHandler dh;
try {
final SAXParserFactory spfactory = SAXParserFactory.newInstance();
saxParser = spfactory.newSAXParser();
dh = new DefaultHandler();
} catch (final Exception ex) {
log.error("Cannot initialize SAX parser.", ex);
return false;
}
ByteArrayInputStream bin = null;
try {
bin = new ByteArrayInputStream(xml.getBytes("UTF-8"));
saxParser.parse(bin, dh);
} catch (final SAXException se) {
return false;
} catch (final IOException ex) {
return false;
} finally {
IOUtils.close(bin);
}
return true;
}
Создан XMLи используется CKEditor.Пример XML:
<?xml version="1.0" encoding="UTF-8"?><segment><chapter level="2" align=" center">Decisions</chapter><text>Text text text .....</text></segment>