Files
HRMS/hrmsEjb/net/sf/jasperreports/engine/xml/JRXmlDigester.java
2025-07-28 13:56:49 +05:30

47 lines
1.6 KiB
Java

package net.sf.jasperreports.engine.xml;
import java.io.InputStream;
import java.net.URL;
import org.apache.commons.digester.Digester;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
public class JRXmlDigester extends Digester {
public JRXmlDigester() {}
public JRXmlDigester(XMLReader xmlReader) {
super(xmlReader);
}
public InputSource resolveEntity(String pubId, String systemId) {
InputSource inputSource = null;
if (systemId != null) {
InputStream is;
String dtd = null;
if ("http://jasperreports.sourceforge.net/dtds/jasperreport.dtd".equals(systemId)) {
dtd = "net/sf/jasperreports/engine/dtds/jasperreport.dtd";
} else if ("http://jasperreports.sourceforge.net/dtds/jasperprint.dtd".equals(systemId)) {
dtd = "net/sf/jasperreports/engine/dtds/jasperprint.dtd";
} else if ("http://jasperreports.sourceforge.net/dtds/jaspertemplate.dtd".equals(systemId)) {
dtd = "net/sf/jasperreports/engine/dtds/jaspertemplate.dtd";
} else {
return new InputSource(systemId);
}
ClassLoader clsLoader = Thread.currentThread().getContextClassLoader();
URL url = null;
if (clsLoader != null)
url = clsLoader.getResource(dtd);
if (url == null)
clsLoader = JRXmlDigester.class.getClassLoader();
if (clsLoader == null) {
is = JRXmlDigester.class.getResourceAsStream("/" + dtd);
} else {
is = clsLoader.getResourceAsStream(dtd);
}
if (is != null)
inputSource = new InputSource(is);
}
return inputSource;
}
}