You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs@cocoon.apache.org by da...@cocoon.zones.apache.org on 2005/09/14 00:07:01 UTC
[DAISY] Updated: ValidatingTransformer
A document has been updated:
http://cocoon.zones.apache.org/daisy/documentation/684.html
Document ID: 684
Branch: main
Language: default
Name: ValidatingTransformer (previously JingTransformer)
Document Type: Document (unchanged)
Updated on: 9/13/05 10:06:55 PM
Updated by: Pier Fumagalli
A new version has been created, state: publish
Parts
=====
Content
-------
This part has been updated.
Mime type: text/xml (unchanged)
File name: (unchanged)
Size: 3436 bytes (previous version: 3275 bytes)
Content diff:
<html>
<body>
--- <p>The <tt>JingTransformer</tt> provides a very simple <tt>Transformer</tt>
--- implementation validating documents in a pipeline using the
--- <a href="http://relax-ng.org/">RELAX-NG</a> grammar through the
--- <a href="http://www.thaiopensource.com/relaxng/jing.html">JING</a> validation
--- engine.</p>
+++ <p>The <tt>ValidatingTransformer</tt> provides a very simple
+++ <tt>Transformer</tt> implementation validating documents in a pipeline using the
+++ validation framework provided by the validation block.</p>
<p>The configuration for this transformer is extremely easy: Like any other
component, it needs to be declared in a sitemap's
(3 equal lines skipped)
...
<map:transformers default="...">
...
---
--- <strong><map:transformer name="jing"
--- logger="sitemap.transformer.jing"
--- src="org.apache.cocoon.transformation.JingTransformer">
---
--- <!--+ The enable-caching configuration element is optional
--- | (defaults to true) and defines whether compiled RelaxNG
--- | schemas should be stored in Cocoon's transient cache or not
--- +-->
--- <!-- <enable-caching>true</enable-caching> -->
--- </map:transformer></strong>
---
--- ...
+++ <strong> <map:transformer name="validate"
+++ logger="sitemap.transformer.validate"
+++ src="org.apache.cocoon.transformation.ValidatingTransformer">
+++
+++ <!--+ The "grammar" an optional configuration element specifying the default
+++ | grammar used by the validator. When the "grammar" element is specified,
+++ | the automatic detection of schema types will be disabled.
+++ |
+++ | This can also be specifed in pipelines as a parameter:
+++ | <map:parameter name="grammar" value="... grammar identifier ..."/>
+++ |
+++ | For a list of well known grammars, see the JavaDoc documentation for the
+++ | org.apache.cocoon.components.validation.Validator interface.
+++ +-->
+++ <!-- <grammar>... grammar identifier ...</grammar> -->
+++ </map:transformer>
+++ </strong>
+++ ...
</map:transformers>
</map:components>
</pre>
<p>The only defined (but <strong>not required</strong>) configuration element
--- for this component is
--- <tt><enable-caching><em>true|false</em></enable-caching></tt>
--- indicating whether the schemas processed and compiled by
--- <a href="http://www.thaiopensource.com/relaxng/jing.html">JING</a> should be
--- stored in Cocoon's transient store and reused.</p>
+++ for this component is <tt><grammar><em>... grammar identifier
+++ ...</em></grammar></tt> indicating the grammar to pass to the Validator
+++ component. See the documentation of the validation block for more information on
+++ what this means.</p>
--- <p>Caching is a good idea if in your Cocoon application you are working with not
--- many and usually not modified schemas, while if on the other hand your
--- application generates RNG schemas dynamically, you might wish to disable
--- caching.</p>
+++ <p>The use of the <tt>ValidatingTransformer</tt> is again extremely simple.
+++ Simply declare it in the pipeline like any other transformer:</p>
--- <p>Note that enabling or disabling caching of compiled schemas does
--- <strong>not</strong> affect the pipeline's cacheability at all. In both cases
--- (whether compiled schemas are cached or not) the <tt>JingTransformer</tt>
--- always exposes a full <tt>SourceValidity</tt> instance to the calling pipeline,
--- populated with the correct information to evaluate the validity of a possibly
--- cached request.</p>
---
--- <p>The use of the <tt>JingTransformer</tt> is again extremely simple. Simply
--- declare it in the pipeline like any other transformer:</p>
---
<pre><map:pipeline type="...">
...
<map:match src="...">
<map:generate src="..."/>
...
--- <strong><map:transform type="jing" src="myschema.rng"/></strong>
--- ...
+++ <strong><map:transform type="jing" src="myschema.rng">
+++ <!-- <map:parameter name="grammar" value="... identifier ..."/> -->
+++ </map:transform>
+++ </strong> ...
<map:serialize type="..."/>
</map:match>
(2 equal lines skipped)
</pre>
<p>Following the example above, the document being processed in the pipeline
--- will be validated using the "<tt>myschema.rng</tt>"
--- <a href="http://relax-ng.org/">RELAX-NG</a> schema, and the entire pipeline will
--- fail throwing a <tt>SAXException</tt> if an error was detected validating.</p>
+++ will be validated using the "<tt>myschema.rng</tt>" schema (the
+++ <tt>Validator</tt> will autodetect this to be a
+++ <a href="http://relax-ng.org/">RELAX-NG</a> schema), and the entire pipeline
+++ will fail throwing a <tt>SAXException</tt> if an error was detected validating.
+++ </p>
+++ <p>The optional "<tt>grammar</tt>" parameter will override at run time whatever
+++ configuration parameter was specified in the <tt><map:components/></tt>
+++ section of the pipeline. For example one might not declare a grammar in the
+++ configuration (letting the normal grammar auto-detection to work) and override
+++ it for a specific pipeline with the XML DTD grammar identifier (which can't be
+++ detected, as it's not an XML document).</p>
+++
<p>Note that if multiple errors occur in any document, only the first one will
be reported: this transformer doesn't give you a report of all errors in the
--- document, it simply fail on the first error detected.</p>
+++ document, it simply fail on the first error detected. Another transformer, the
+++ <tt>ValidationReportTransformer</tt> allows to produce validation reports.</p>
--- <p>Also note that the <tt>JingTransformer</tt> can read schemas (and will
--- include sub-schemas) from URIs such as "<tt>cocoon:...</tt>" or any other URI
--- supported by Cocoon's <tt>SourceResolver</tt>.</p>
---
</body>
</html>
Fields
======
no changes
Links
=====
no changes
Custom Fields
=============
no changes
Collections
===========
no changes