You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@forrest.apache.org by EMMEL Thomas <th...@3ds.com> on 2008/11/26 09:09:58 UTC

Re: problem using own DTD

David,

just as notice, I sended that to the user-list too to end that thread
there as it is indeed a dev-issue.
The further discussion can be done on the dev-list now.

OK, I think I don't understand all details of resolving the lookup for
the DTD but my problem is
that I have used my DTD successfully without problems for a long time
but it fails now, just after the upgrade.
My DTD included 'xi:include' for a longer time to be able to use this
functionality in the earlier
days of 0.9dev. Now it adds only some small things.

However, the point is:
It was found previously and cannot be found now, so I did the test with
helloxxx-v10.dtd
since exactly this test works previously. So if you make all changes
below for example in
revision 680000 you will succeed. If you do that in the current version
you will fail.
This isn't a problem that I have put the files to the wrong place, it is
a problem that forrest
will not look to the correct places for the current version.

I increased the verbosity in classes/CatalogManager.properties to try to
see what happens.
For 'forrest run' I can see the following messages:

public: -//Acme//DTD Hello Document V1.0//EN
        hello-v10.dtd
PUBLIC: -//Acme//DTD Hello Document V1.0//EN
       
file:/home/emmel/Project/simulpac/SIMULPAC/Doc/src/resources/schema/hello-v10.dtd
public: -//Apache Forrest//ENTITIES Symbols Project v1.0//EN
        symbols-project-v10.ent
PUBLIC: -//Apache Forrest//ENTITIES Symbols Project v1.0//EN
       
file:/home/emmel/Project/simulpac/SIMULPAC/Doc/src/resources/schema/symbols-project-v10.ent
public: -//Abaqus Deutschland//SIMULPAC Project DTD v2.1//EN
        simulpac-v21.dtd
PUBLIC: -//Abaqus Deutschland//SIMULPAC Project DTD v2.1//EN
       
file:/home/emmel/Project/simulpac/SIMULPAC/Doc/src/resources/schema/simulpac-v21.dtd

(However forrest run still fails, see other thread)
but none of the lines are shown for forrest -v validate.
Just the error (after tons of messages):
BUILD FAILED
/local/data/opt/apache-forrest-0.9dev-new/main/targets/validate.xml:128:
Could not validate document
/home/emmel/Project/simulpac/SIMULPAC/Doc/src/content/xdocs/fe-reference/ac-ref.xml
        at
org.apache.tools.ant.taskdefs.optional.XMLValidateTask.doValidate(XMLValidateTask.java:549)
        at
org.apache.tools.ant.taskdefs.optional.XMLValidateTask.execute(XMLValidateTask.java:319)
        at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.Target.performTasks(Target.java:385)
        at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
        at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.Main.runBuild(Main.java:758)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: java.io.FileNotFoundException:
/home/emmel/Project/simulpac/SIMULPAC/Doc/src/content/xdocs/fe-reference/simulpac-v21.dtd
(No such file or directory)
...

Here it what the revisions told me:
680000 works
700786 find the DTD but complain about my xi:include definitions which
are not needed anymore now, but which I can fix
700787 fails with the error above due to changes in
main/targets/validate.xml:

svn diff -r 700786:700787 main/targets/validate.xml
Index: main/targets/validate.xml
===================================================================
--- main/targets/validate.xml   (revision 700786)
+++ main/targets/validate.xml   (revision 700787)
@@ -112,15 +112,7 @@
     </fail>
     <xmlvalidate failonerror="${forrest.validate.site.failonerror}"
lenient="no" warn="yes">
       <attribute
name="http://apache.org/xml/features/validation/dynamic"  value="true"/>
-      <xmlcatalog id="fcatalog" >
-        <catalogpath>
-          <pathelement
-           
location="${forrest.core.webapp}/resources/schema/catalog.xcat"/>
-          <pathelement
-            location="${forrest.plugins-dir}/catalog.xcat"/>
-          <pathelement location="${catalog}"/>
-        </catalogpath>
-      </xmlcatalog>
+      <xmlcatalog refid="fcatalog" />
       <fileset dir="${project.site-dir}"
         includes="${forrest.validate.xdocs.includes}"
         excludes="${forrest.validate.xdocs.excludes}"/>


If this is still a documentation issue then please, please give that
documentation more structure!

Thank you

Thomas

David Crossley schrieb:
>
> 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
>



Re: problem using own DTD

Posted by David Crossley <cr...@apache.org>.
EMMEL Thomas wrote:
> 
> just as notice, I sended that to the user-list too to end that thread
> there as it is indeed a dev-issue.
> The further discussion can be done on the dev-list now.

[ snip dev details ]

This was subsequently fixed on the dev list.

To re-assure users of the current Forrest 0.8 release,
this was only an issue with recent 0.9-dev SVN trunk.

-David

Re: problem using own DTD

Posted by David Crossley <cr...@apache.org>.
David Crossley wrote:
> EMMEL Thomas wrote:
> >
> > 700787 fails with the error above due to changes in
> > main/targets/validate.xml:
> 
> This hint about r700787 change helps, thanks.

That is fixed now:
https://issues.apache.org/jira/browse/FOR-1131

Thanks for your help Thomas.

-David

Re: problem using own DTD

Posted by David Crossley <cr...@apache.org>.
EMMEL Thomas wrote:
> 
> OK, I think I don't understand all details of resolving the lookup for
> the DTD but my problem is
> that I have used my DTD successfully without problems for a long time
> but it fails now, just after the upgrade.

Yeah, since answering you on the user list (which was
correct for forrest-0.8 version) i have been testing the
situation and i do see a new problem, as you describe.
More below.

This shows why it is important not to discuss "dev"
versions on the "user" list.

> My DTD included 'xi:include' for a longer time to be able to use this
> functionality in the earlier days of 0.9dev. Now it adds only some small things.
> 
> However, the point is:
> It was found previously and cannot be found now, so I did the test with
> helloxxx-v10.dtd
> since exactly this test works previously. So if you make all changes
> below for example in
> revision 680000 you will succeed. If you do that in the current version
> you will fail.
> This isn't a problem that I have put the files to the wrong place, it is
> a problem that forrest
> will not look to the correct places for the current version.
> 
> I increased the verbosity in classes/CatalogManager.properties to try to
> see what happens.
> For 'forrest run' I can see the following messages:
> 
> public: -//Acme//DTD Hello Document V1.0//EN
>         hello-v10.dtd
> PUBLIC: -//Acme//DTD Hello Document V1.0//EN
>        
> file:/home/emmel/Project/simulpac/SIMULPAC/Doc/src/resources/schema/hello-v10.dtd
> public: -//Apache Forrest//ENTITIES Symbols Project v1.0//EN
>         symbols-project-v10.ent
> PUBLIC: -//Apache Forrest//ENTITIES Symbols Project v1.0//EN
>        
> file:/home/emmel/Project/simulpac/SIMULPAC/Doc/src/resources/schema/symbols-project-v10.ent
> public: -//Abaqus Deutschland//SIMULPAC Project DTD v2.1//EN
>         simulpac-v21.dtd
> PUBLIC: -//Abaqus Deutschland//SIMULPAC Project DTD v2.1//EN
>        
> file:/home/emmel/Project/simulpac/SIMULPAC/Doc/src/resources/schema/simulpac-v21.dtd
> 
> (However forrest run still fails, see other thread)
> but none of the lines are shown for forrest -v validate.

Yes that is a known issue. The Ant "xmlvalidate" task is not
finding the project's CatalogManager.properties file.
I have been trying to fix that one for ages, and will try
some more today.

The reason that your verbosity setting works in 'forrest run'
is that that is Cocoon doing the processing, not Ant.

> Just the error (after tons of messages):
> BUILD FAILED
> /local/data/opt/apache-forrest-0.9dev-new/main/targets/validate.xml:128:
> Could not validate document
> /home/emmel/Project/simulpac/SIMULPAC/Doc/src/content/xdocs/fe-reference/ac-ref.xml
>         at
> org.apache.tools.ant.taskdefs.optional.XMLValidateTask.doValidate(XMLValidateTask.java:549)
 [snip]
> Caused by: java.io.FileNotFoundException:
> /home/emmel/Project/simulpac/SIMULPAC/Doc/src/content/xdocs/fe-reference/simulpac-v21.dtd
> (No such file or directory)

Yes, that is the standard error when the "catalog entity resolver"
could not find the local copy of the DTD, so the xml parser tries
the last resort: using the System Identifier, in your case that
is relative to the source xml instance document.

> Here it what the revisions told me:
> 680000 works
> 700786 find the DTD but complain about my xi:include definitions which
> are not needed anymore now, but which I can fix
> 700787 fails with the error above due to changes in
> main/targets/validate.xml:

This hint about r700787 change helps, thanks.

I have already spent some time to investigate this
and will try again today.

-David

> svn diff -r 700786:700787 main/targets/validate.xml
> Index: main/targets/validate.xml
> ===================================================================
> --- main/targets/validate.xml   (revision 700786)
> +++ main/targets/validate.xml   (revision 700787)
> @@ -112,15 +112,7 @@
>      </fail>
>      <xmlvalidate failonerror="${forrest.validate.site.failonerror}"
> lenient="no" warn="yes">
>        <attribute
> name="http://apache.org/xml/features/validation/dynamic"  value="true"/>
> -      <xmlcatalog id="fcatalog" >
> -        <catalogpath>
> -          <pathelement
> -           
> location="${forrest.core.webapp}/resources/schema/catalog.xcat"/>
> -          <pathelement
> -            location="${forrest.plugins-dir}/catalog.xcat"/>
> -          <pathelement location="${catalog}"/>
> -        </catalogpath>
> -      </xmlcatalog>
> +      <xmlcatalog refid="fcatalog" />
>        <fileset dir="${project.site-dir}"
>          includes="${forrest.validate.xdocs.includes}"
>          excludes="${forrest.validate.xdocs.excludes}"/>