1 package ch.qos.logback.classic.html;
2
3 import java.io.InputStream;
4 import java.util.HashMap;
5 import java.util.Map;
6
7 import org.xml.sax.EntityResolver;
8 import org.xml.sax.InputSource;
9
10 public class XHTMLEntityResolver implements EntityResolver {
11
12
13 static Map<String, String> entityMap = new HashMap<String, String>();
14
15 static {
16 entityMap.put("-//W3C//DTD XHTML 1.0 Strict//EN",
17 "/dtd/xhtml1-strict.dtd");
18 entityMap.put("-//W3C//ENTITIES Latin 1 for XHTML//EN",
19 "/dtd/xhtml-lat1.ent");
20 entityMap.put("-//W3C//ENTITIES Symbols for XHTML//EN",
21 "/dtd/xhtml-symbol.ent");
22 entityMap.put("-//W3C//ENTITIES Special for XHTML//EN",
23 "/dtd/xhtml-special.ent");
24 }
25
26 public InputSource resolveEntity(String publicId, String systemId) {
27
28 final String relativePath = (String)entityMap.get(publicId);
29
30 if (relativePath != null) {
31 Class clazz = getClass();
32 InputStream in =
33 clazz.getResourceAsStream(relativePath);
34 if (in == null) {
35 return null;
36 } else {
37 return new InputSource(in);
38 }
39 } else {
40 return null;
41 }
42 }
43 }