}
} catch (SourceException se) {
throw new ProcessingException("Error during resolving of '"+this.source+"'.", se);
}
LocatorImpl locator = new LocatorImpl();
locator.setSystemId(this.inputSource.getURI());
locator.setLineNumber(1);
locator.setColumnNumber(1);
contentHandler.setDocumentLocator(locator);
contentHandler.startDocument();
contentHandler.startPrefixMapping("", URI);
AttributesImpl atts = new AttributesImpl();
if (localizable) {
atts.addAttribute("", "source", "source", "CDATA", locator.getSystemId());
atts.addAttribute("", "line", "line", "CDATA", String.valueOf(locator.getLineNumber()));
atts.addAttribute("", "column", "column", "CDATA", String.valueOf(locator.getColumnNumber()));
}
contentHandler.startElement(URI, "text", "text", atts);
LineNumberReader reader = new LineNumberReader(in);
String line;
String newline = null;
while (true) {
if (newline==null) {
line = convertNonXmlChars(reader.readLine());
} else {
line = newline;
}
if (line==null) {
break;
}
newline = convertNonXmlChars(reader.readLine());
if (newline != null) {
line += SystemUtils.LINE_SEPARATOR;
}
locator.setLineNumber(reader.getLineNumber());
locator.setColumnNumber(1);
contentHandler.characters(line.toCharArray(), 0, line.length());
if (newline==null) {
break;
}
}