+1

jvz.

On Sun, 7 Jan 2001, Martin Poeschl wrote:

> problem:
> in turbine-schema.xml there is
> <!DOCTYPE database SYSTEM
> "http://java.apache.org/turbine/dtd/database.dtd">
> so you need to be online to use torque (as in tdk10a)
> if you are behind a firewall with authentication you will never be able
> to use it!!
> 
> solution:
> use org.xml.sax.EntityResolver to get the dtd file.
> now we can change the line to
> <!DOCTYPE database SYSTEM "database.dtd">
> and put the dtd file into the jar.
> 
> here is the code:
> 
> Index: ./src/java/org/apache/turbine/torque/transform/XmlToAppData.java
> ===================================================================
> RCS file:
> 
>/products/cvs/turbine/turbine/src/java/org/apache/turbine/torque/transform/XmlToAppData.java,v
> 
> retrieving revision 1.5
> diff -u -r1.5 XmlToAppData.java
> --- ./src/java/org/apache/turbine/torque/transform/XmlToAppData.java
> 2000/12/14 23:49:55 1.5
> +++ ./src/java/org/apache/turbine/torque/transform/XmlToAppData.java
> 2001/01/07 20:54:40
> @@ -111,13 +111,16 @@
>              app = new AppData();
> 
>              SAXParser parser = new SAXParser();
> 
> +            DTDResolver dtdResolver = new DTDResolver();
> +            parser.setEntityResolver(dtdResolver);
> +
>              // We don't use an external content handler - we use this
> object
>              parser.setContentHandler(this);
> 
> 
> and the Resolver:
> 
> package org.apache.turbine.torque.transform;
> 
> // JDK classes
> import java.io.*;
> import java.net.URL;
> import java.util.*;
> 
> // Xerces classes
> import org.xml.sax.*;
> import org.xml.sax.helpers.*;
> import org.apache.xerces.parsers.*;
> 
> // Turbine
> import org.apache.turbine.services.db.*;
> import org.apache.turbine.torque.model.*;
> 
> public class DTDResolver implements EntityResolver
> {
>     InputSource databaseDTD;
> 
>     public DTDResolver()
>     {
>         try
>         {
>             databaseDTD = new InputSource(getClass()
>                 .getResource("database.dtd").openStream());
>         }
>         catch (Exception ex)
>         {
>             ex.printStackTrace();
>         }
>     } // DTDResolver()
> 
>     public InputSource resolveEntity(String publicId, String systemId)
>     {
>         if ("database.dtd".equals(systemId))
>         {
>             System.out.println("Resolver: use database.dtd");
>             return databaseDTD;
>         }
>         else
>         {
>             System.out.println("Resolver: used " + systemId);
>             return getInputSource(systemId);
>         }
>     } // resolveEntity(String, String)
> 
>     public InputSource getInputSource(String urlString)
>     {
>         try
>         {
>             URL url = new URL(urlString);
>             return new InputSource(url.openStream());
>         }
>         catch (IOException ex)
>         {
>             ex.printStackTrace();
>         }
>         return new InputSource();
>     } // getInputSource(String)
> }
> 
> oh and database.dtd must be in the jar!!
> org/apache/turbine/torque/transform/database.dtd
> 
> martin
> 
> 
> 
> ------------------------------------------------------------
> To subscribe:        [EMAIL PROTECTED]
> To unsubscribe:      [EMAIL PROTECTED]
> Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
> Problems?:           [EMAIL PROTECTED]
> 
> 



------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
Problems?:           [EMAIL PROTECTED]

Reply via email to