Hi David,

One thing I still need to investigate was Jeroen's reply:

Hi Robby,

have you checked this page [1]? I'm not sure if this is the same
component, but is might lead you further.

[1] http://wiki.apache.org/cocoon/ValidationTransformer

Jeroen


I checked that (probably somewhat deprecated) documentation but i noticed 
something that could be usefull:

        <map:transform type='validate' src='validation/xhtml1-transitional.dtd'>
          <map:parameter name='active' value='true'/> <!-- this part -->
        </map:transform>

If i find some time this week I will check if setting that 'active' parameter 
to true does any good unless you beat me to it ;-)

Robby



-----Oorspronkelijk bericht-----
Van: David Crossley [mailto:cross...@apache.org]
Verzonden: do 30-6-2011 8:46
Aan: dev@cocoon.apache.org
Onderwerp: Re: Does ValidatingTransformer support DTD validation
 
David Crossley wrote:
> Robby Pelssers wrote:
> > 
> > i am trying to use the validating transformer with a DTD but can't get it 
> > to work.
> 
> IIRC when i set this up for Apache Forrest a while back,
> then i could not get DTD validation working either.
> So we converted the DTD to RELAX NG using Trang.
> 
> Some of the notes and links here might help:
> http://forrest.apache.org/howto-dev.html#debug-validation
> https://issues.apache.org/jira/browse/FOR-1172
> 
> (I have been trying to investigate this for ages.
> Sorry, not much time, so i hope this much helps.)
> 
> No matter what i do to configure the transformer, there are only
> three default grammar for SchemaParser instantiated
> (DEBUG messages in core.log). Two for "RELAX NG" and one for
> XML Schema, and none for DTD.
> 
> Been twiddling sitemap.xmap (and forrest.xmap) and cocoon.xconf files.
> 
> Trying to specify a grammar for the particular use in the
> sitemap match, then requesting the validation report gives
> "Unsupported grammar language".
> 
> Not specifying a grammar, then requesting the validation report gives
> "The markup in the document preceding the root element must be well-formed"
> 
> The logs show that the DTD has been resolved by the
> catalog entity resolver.
> 
> There is a message for "Detecting grammar" for the DTD,
> but no resolution message for "detected for schema" like
> there is for RNG validation.
> 
> Then we get the error message for "markup" as above,
> a SAXParseException.
> This line of the DTD is the first "<!ENTITY ..." declaration.
> So it is not parsing it as a DTD.
> 
> Note that Forrest still uses Cocoon-2.1 but IIRC then this Validation
> block is the same.
> 
> Need to look at the Cocoon Samples. Perhaps there is a reason
> that Pier did provide a DTD sample in the beginning.

Typo: did *not* provide a DTD sample

> Another thought: I wonder if this is because our "xml-parser"
> is configured in cocoon.xconf to have validate=false.
> 
> -David
> 
> > I already took a look at the source and found this block of code in 
> > http://svn.apache.org/repos/asf/cocoon/trunk/blocks/cocoon-validation/cocoon-validation-impl/src/main/java/org/apache/cocoon/components/validation/jaxp/JaxpSchemaParser.java
> > 
> > I tried 
> > 
> >              <map:transform src="data/p-topic.dtd" type="validate">
> >                <map:parameter name="grammar" 
> > value="http://www.w3.org/TR/REC-xml"/>
> >              </map:transform>  
> > which does not work.
> > 
> > -------------------------------------------------------------------------
> >         /* Detect languages or use the supplied ones */
> >         Configuration languages[] = 
> > conf.getChild("grammars").getChildren("grammar");
> >         Set grammars = new HashSet();
> >         if (languages.length > 0) {
> > 
> >             /* If the configuration specified (formally) a list of grammars 
> > use it */
> >             for (int x = 0; x < languages.length; x++) {
> >                 String language = languages[x].getValue();
> >                 if (fact.isSchemaLanguageSupported(language)) {
> >                     grammars.add(language);
> >                     continue;
> >                 }
> >                 /* If the configured language is not supported throw an 
> > exception */
> >                 String message = "JAXP SchemaFactory \"" + this.className + 
> > "\" " +
> >                                  "does not support configured grammar " + 
> > language;
> >                 throw new ConfigurationException(message, languages[x]);
> >             }
> >         } else {
> > 
> >             /* Attempt to detect the languages directly using the JAXP 
> > factory */
> >             if 
> > (fact.isSchemaLanguageSupported(Validator.GRAMMAR_XML_SCHEMA)) {
> >                 grammars.add(Validator.GRAMMAR_XML_SCHEMA);
> >             }
> >             if (fact.isSchemaLanguageSupported(Validator.GRAMMAR_RELAX_NG)) 
> > {
> >                 grammars.add(Validator.GRAMMAR_RELAX_NG);
> >             }
> >             if (fact.isSchemaLanguageSupported(Validator.GRAMMAR_XML_DTD)) {
> >                 grammars.add(Validator.GRAMMAR_XML_DTD);  //this equals 
> > "http://www.w3.org/TR/REC-xml";
> >             }
> >         }
> > 
> > 
> > Is there a way to configure support for DTD validation as well?  XML schema 
> > validation seems to work out-of-the-box.
> > 
> > Kind regards,
> > Robby
> 

<<winmail.dat>>

Reply via email to