Brad, I found this behavior to be extremely annoying also. The
documentation states that the system id in the document is converted to
a url format *before* handing off to the entity resolver. It is unclear
why it cannot be passed in as is also, maybe as a 3rd parameter. Or
better still, have a prior step where a 'URLConverter' class decides how
it is to be converted instead of applying a hardcoded rule blindly.

For your specific situation (which was similar to what I wanted), I
ended up using a PUBLIC identifier, and leaving the system id empty. I
then used this logic

1. if the system id is empty, look up the dtd from a known location
based on the public id

2. else, we have a fully specified dtd url, so let the default mechanism
handle it

Hope this helps ....

Regards...

Milind Gadre
ecPlatforms, Inc
901 Mariner's Island Blvd, Suite 565
San Mateo, CA 94404
C: 510-919-0596
F: 815-352-0779
[EMAIL PROTECTED]

----- Original Message -----
From: "Brad O'Hearne" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, February 15, 2001 7:13 AM
Subject: SystemID sent to EntityResolver contains absolute path


> Hello all,
>
> I am using an EntityResolver to resolve the proper value for my DTD
referred
> to in my xml file.  I have no path in the xml file, just the dtd name,
i.e.
> "brad.dtd".  However, when the resolveEntity method is called, the
value
> passed to the publicId parameter is NULL and the value passed to the
> systemId parameter is not simply "brad.dtd", but something like the
> following: "file:///data/dev/brad.dtd".  Is there any way just to
receive
> the actual value in the xml file, "brad.dtd"?
>
> Brad
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to