From: "Pierre van Rooden" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, October 23, 2002 10:43 AM
Subject: Re: locations of dtd's Re: [MMBase-1.6.0] Releaseplan Proposal


> Rob van Maris wrote:
> > Simple, they use the system ID to access the dtd.
>
> The system id only tells them the dtd is 'www.mmbase.org/dtd/xxx.dtd'
> It does not say where the dtd is - the entity resolver should handle
> that.

You must be confused a little, because it is actually the other way round:
the public ID serves to identify the DTD, the sysem ID provides a location
where it can be found.
The ID is (/should be) unique for a dtd, whereas it may have a number of
locations.

> But the entityresolver has no way determining where the dtd is located
> if we place the dtds in various packages throughout the core.
> How does the resolver know to find buidler.dtd in
> org/mmbase/module/core/resources, while the module.dtd
> org/mmbase/module/resources?

Usually, public ID and location of a local copy of the DTD are known
beforehand.
E.g. org.mmbase.util.XMLModuleReader expects the DTD identified by
"-//MMBase/ DTD module config 1.0//EN".
It should in fact compare the public ID in the module configuration file, to
verify that it uses the correct DTD, although the current implementation
does not do this.

Now that the local copies of DTD's are no longer all in the same directory,
XMLModuleReader not only needs to know about the public ID for its
particular DTD, but also about the location of a local copy.
There really is no reason why it should find copies of all the other DTD's
as well.

Rob van Maris
Developer

Finalist IT Group
Java Specialists
-------------------------------------------------------------
Amsterdam, The Netherlands
Office: +31 20 5962321 (Direct)
Mobile: +31 651444006
Fax: +31 20 5962331
-------------------------------------------------------------



Reply via email to