db-torque-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joerg Friedrich (JIRA)" <j...@apache.org>
Subject [jira] Kommentiert: (TORQUE-3) Generator: resolving database.dtd in org.apache.torque.engine.database.transform.DTDResolver.java
Date Fri, 21 Apr 2006 19:55:06 GMT
    [ http://issues.apache.org/jira/browse/TORQUE-3?page=comments#action_12375627 ] 

Joerg Friedrich commented on TORQUE-3:

Okay, I have to check with the svn version. What I think should be possible is this:

<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>

<!DOCTYPE database SYSTEM "database.dtd"[
  <!ENTITY fieldTypes SYSTEM "torque/schema/field-types.xml">

<database name="track">

<!-- Here we include the domain definitions to account for database       -->
<!-- specific behaviour. Only those types are mapped that cause trouble   -->
<!-- across the different database systems                                -->



> Generator: resolving database.dtd in org.apache.torque.engine.database.transform.DTDResolver.java
> -------------------------------------------------------------------------------------------------
>          Key: TORQUE-3
>          URL: http://issues.apache.org/jira/browse/TORQUE-3
>      Project: Torque
>         Type: Improvement

>   Components: Generator
>     Versions: 3.2
>  Environment: Windows XP, JDK 1.4 (I don't think this matters)
>     Reporter: Joerg Friedrich
>     Priority: Minor
>  Attachments: DTDResolver.java, XmlToAppData.java
> In class org.apache.torque.engine.database.transform.DTDResolver the DTD for the XMP
schema files is retrieved via either a (1) getResourceAsStream("database.dtd") call, a (2)
getInputSource("http://db.apache.org/torque/dtd/database_3_2.dtd") or a (3) getInputSource("systemId"),
where systemId is typically made up of the system designator in the DOCTYPE statement inside
the XML schema file prepended with the absolute path of the location of the current working
directory or directory from which the generator.
> Usually the database.dtd is found in the class path (method 1), since it is delivered
with the generator jar. However, as soon as we do something like this in the XML file: <!DOCTYPE
database SYSTEM "database.dtd"> the generator does not work any more, unless we place a
copy of database.dtd at the current working directory (thus, system reverts to (3)). This
behaviour comes from this line in method resolveEntity:
>         if (databaseDTD != null  && (WEB_SITE_DTD.equals(systemId))
> since the systemId in this case looks something like this: file:///d:torque/torque-gen-3.2/database.dtd
and of course does not match the WEB_SITE_DTD string.
> My suggestion : change this line to 
>         if (databaseDTD != null)
> and everything works fine.
> The attachments contain another modification: with the current implementation it is not
possible to include another XML file into an XML schema file. This is quite useful if schema
files are very large or one wants to separate database dependencies of SQL data types into
database specific mapping files using the <domain> directive. This should  be possible
with the patch provided.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org

View raw message