forrest-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Crossley <cross...@apache.org>
Subject Re: problem using own DTD
Date Wed, 26 Nov 2008 01:04:30 GMT
EMMEL Thomas wrote:
> 
> I should say: 'Never touch a running system...'
> I decided this morning to update my current svn copy of 0.9dev to test
> whether there are fixes
> within the pdf generation. Now, nothing works anymore :-/

As Ross said in the other thread, the dev@ list is for 
issues with the development version.

This next thing is version-independent, so i will
answer here ...

> One problem is that my own DTD cannot be found anymore, although it is
> proper registered in the
> catalog.xcat-file. It seems that forrest cannot find it since it doesn't
> look at the correct location...
> You can verify this by doing the following steps:
> 
> mkdir tmp; cd tmp
> forrest seed
> cd src/documentation/resources/schema/
> cp hello-v10.dtd helloxxx-v10.dtd
> 
> now change the file catalog.xcat by replacing hello by helloxxx like this:
>  <public publicId="-//Acme//DTD Hello Document V1.0//EN"
>         uri="helloxxx-v10.dtd"/>

Correct.

> next change back to the root of your forrest-dir and change
> src/documentation/content/xdocs/samples-b/custom.xml
> to reference this new dtd

This step would only be needed if the "Public Identifier" was
changed. Our xml catalogs generally respond on that PublicId,
so the value of the System Identifier in the XML instance documents
has no bearing.

> finally run
> forrest -v validate-xdocs
> 
> you should get an error that helloxxx-v10.dtd cannot be found.

That is the expected behavior. Your xml catalog told
the catalog entity resolver where the new DTD was located.

> If not, I am missing something serious.

It seems so. Read up on how our xml catalog system works.
As said above, it responds on the public identifiers
and finds the DTDs relative to the various catalog.xcat files.
There is one in your project at src/documentation/resources/schema/
and others in the Forrest core at main/webapp/resources/schema/

Now that said, there is something that might be confusing you.
There is a "dummy" copy of the "hello" DTD next to the document
that references that DTD. Note that that copy is *not used*.
Instead, it uses the ones found by the catalog resolver as
explained above.

We need to investigate why that copy is there. The svn log
says "... to pass the build.sh test". That copy should still
not be needed and should be removed to avoid confusion.

-David

Mime
View raw message