+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]