John L. Clark wrote:
> My experiments lead me to believe that XMLmind is trying to load
> external public identifiers before it tries to find an alternate using
> its list of catalogs.
> 
> In particular, I have a document template which makes reference to a
> public identifier on the Internet; that public identifier is noted and
> redirected in a <public> element in a catalog loaded into XXE.  This has
> worked in all my tests until I tried this setup on an unnetworked
> machine.  After the initial install of the configuration when I try to
> load or create a document of the particular type, I get the error:
> 
>     Cannot open file "C:\Documents and
>     Settings\user\xxe2\config\ldocbook\ldocbook.xml":
> 
>     docbook.sourceforge.net
> 
> When I provide a network connection for the machine, documents load
> correctly.  If I then remove the network connection, documents continue
> to load correctly until I manually clear the XXE cache.  I have attached
> the catalog, template, and configuration file in case I've overlooked
> something.

What you describe means that your XML catalog is not used for "-//Normal 
Walsh//DTD XWEB V1.0 in DocBook XML V4.2//EN" documents.

Please, try this on an unnetworked machine:
[1] Use menu Options|Options, Schema Tab, click on DTD catalogs|Reset
[2] Then click on DTD/XML Schema cache|Clear cache.
[3] Then use menu File|New, and select DocBook|Article.

If a new Article is opened by XXE then XXE is *not* trying to load
external public identifiers before it tries to find an alternate using 
its list of catalogs.

In such case, you may have a configuration problem:

* Have you declared your XML catalog to XXE using Options|Options, 
Schema Tab, DTD catalogs|Add File?

* Try to add your XML catalog using an absolute URL rather than using an 
absolute file name (that would be an XXE bug).

* Do you really have a file called ldocbook/ldocbook.dtd where ldocbook/ 
is relative to the location of your XML catalog?

* Is ldocbook.dtd referencing an external entity (a DocBook DTD for 
instance) which has not been declared in your XML catalog?

* Try after adding prefer="public" to the catalog element of your XML 
catalog.

* Try after removing <!DOCTYPE catalog
PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd";> 
from your XML catalog.





> There is one possibility that I can think of in which it might be my
> fault and not XXE's: it might be that correct processing of XML catalogs
> requires the evaluation of all URLs, and that I should remap the URL
> itself in the XML catalog; however, my study of the XML catalog
> specifications has been inconclusive on this point.  Any guidance would
> be appreciative.  It seems to me that simply specifying a <public>
> element in the catalog ought to be adequate.

I agree with you.



> I should only need to use the <dtd> configuration element if I want to
> enforce constraint on the documents that the documents don't specify
> themselves, correct? 

Correct.



> (That is, the <dtd> element is not the appropriate
> answer here, is it?)

Correct. If you add a <dtd> element to your configuration, it will not 
solve your problem.




Reply via email to