001    package railo.transformer.library.tag;
002    
003    import org.xml.sax.EntityResolver;
004    import org.xml.sax.InputSource;
005    
006     
007    
008    /**
009     * Hilfsklasse f�r die TagLibFactory, diese Klasse definiert den DTDHandler f�r den Sax Parser. 
010     * Die Klasse l�dt wenn m�glich die DTD, anhand der Public-id vom lokalen System.
011     * 
012     * @see  org.xml.sax.EntityResolver
013     */
014    public final class TagLibEntityResolver implements EntityResolver {
015            /**
016             * Definert den DTD welche eine TLD validieren kann
017             */
018            public final static String RAILO_DTD_1_0=       "/resource/dtd/web-cfmtaglibrary_1_0.dtd";
019    
020            public final static String SUN_DTD_1_0= "/resource/dtd/web-jsptaglibrary_1_0.dtd";
021            public final static String SUN_DTD_1_1= "/resource/dtd/web-jsptaglibrary_1_1.dtd";
022            public final static String SUN_DTD_1_2= "/resource/dtd/web-jsptaglibrary_1_2.dtd";
023                    
024            /**
025             * L�dt die DTD vom lokalen System.
026             * @see org.xml.sax.EntityResolver#resolveEntity(java.lang.String, java.lang.String)
027             */
028            public InputSource resolveEntity(String publicId, String systemId) {
029                    
030                    if ( publicId.equals( "-//Railo//DTD CFML Tag Library 1.0//EN" ) ) {
031                            return new InputSource( getClass().getResourceAsStream(RAILO_DTD_1_0) );
032                    }
033                    else if ( publicId.equals( "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" ) ) {
034                            return new InputSource( getClass().getResourceAsStream(SUN_DTD_1_1) );
035                    }
036                    else if ( publicId.equals( "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" ) ) {
037                            return new InputSource( getClass().getResourceAsStream(SUN_DTD_1_2) );
038                    }
039                    return null;
040                    // -//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN
041                    // http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd
042            }
043    
044     }