crossley 2002/12/20 22:20:37 Modified: . build.xml changes.xml todo.xml src/documentation/xdocs/userdocs/concepts validation.xml Log: Integrated the validation targets into the build ("validate-config" and "validate-xdocs") also still available at the command-line. Validation happens automatically unless you switch it off. See document "XML Validation Facilities" userdocs/concepts/validation.xml Revision Changes Path 1.294 +29 -18 xml-cocoon2/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/build.xml,v retrieving revision 1.293 retrieving revision 1.294 diff -u -r1.293 -r1.294 --- build.xml 19 Dec 2002 01:33:03 -0000 1.293 +++ build.xml 21 Dec 2002 06:20:36 -0000 1.294 @@ -257,6 +257,11 @@ <filter token="database-user" value="${cocoon.samples.database.user}"/> <filter token="database-password" value="${cocoon.samples.database.password}"/> + <!-- Use Jing for XML validation with RELAX NG --> + <taskdef name="jing" classname="com.thaiopensource.relaxng.util.JingTask"> + <classpath refid="anttasks.classpath"/> + </taskdef> + <!-- compile the ant tasks --> <mkdir dir="${tools.dir}/anttasks"/> <javac srcdir="${tools.dir}/src" @@ -1251,7 +1256,7 @@ <!-- The documentation system --> <!-- =================================================================== --> <target name="docs" - depends="package, prepare-docs, docs_check, docs_done" + depends="package, prepare-docs, validate-xdocs, docs_check, docs_done" unless="docs.notrequired" description="Builds the documentation"> @@ -1517,7 +1522,7 @@ <!-- =================================================================== --> <!-- Prepare the war file --> <!-- =================================================================== --> - <target name="prepare-war" depends="prepare-webapp, prepare-webapp-javadocs, prepare-webapp-scratchpad, prepare-webapp-libs, prepare-scratchpad-libs, prepare-xsp" description="Prepares the war package"> + <target name="prepare-war" depends="prepare-webapp, validate-config, validate-xdocs, prepare-webapp-javadocs, prepare-webapp-scratchpad, prepare-webapp-libs, prepare-scratchpad-libs, prepare-xsp" description="Prepares the war package"> </target> <!-- =================================================================== --> @@ -1593,7 +1598,7 @@ <!-- =================================================================== --> <!-- Creates a local webapp directly useable as a servlet context --> <!-- =================================================================== --> - <target name="webapp-local" depends="prepare-webapp, prepare-webapp-scratchpad, copy-webapp-libs, copy-scratchpad-libs, compile-samples" + <target name="webapp-local" depends="prepare-webapp, prepare-webapp-scratchpad, validate-config, validate-xdocs, copy-webapp-libs, copy-scratchpad-libs, compile-samples" description="Builds a local webapp directory usable as servlet context for quicker turn around"> <copy todir="${build.war}/WEB-INF/classes"> <fileset dir="${build.dest}"/> @@ -2294,25 +2299,17 @@ <!-- =================================================================== --> <!-- Validation of core important configuration files using RELAX NG --> <!-- =================================================================== --> - <!-- Depends on some "prepare-*" targets, so that the sitemaps are generated + <!-- Depends on "prepare-webapp" target, so that the sitemaps are generated and copied to the build. - --> + Uses the Jing anttask. + --> <target name="validate-config" description="Validation of core configuration files using RELAX NG" - depends="prepare-docs, prepare-webapp, prepare-webapp-scratchpad" + depends="prepare-webapp" if="validate.config"> - <taskdef name="jing" classname="com.thaiopensource.relaxng.util.JingTask"> - <classpath refid="anttasks.classpath"/> - </taskdef> <echo message="Conducting validation of core configuration files."/> <echo message="(You can turn validation off if you must, using ./properties.xml)"/> - <!-- book.xml --> - <echo message="Validating all book.xml instances ..."/> - <jing rngfile="${webapp.dir}/WEB-INF/entities/book-v01.rng"> - <fileset dir="${build.context}" includes="**/book.xml"/> - </jing> - <!-- cocoon.roles --> <echo message="Validating all cocoon.roles instances ..."/> <jing rngfile="${webapp.dir}/WEB-INF/entities/roles-v01.rng"> @@ -2324,9 +2321,9 @@ <jing rngfile="${webapp.dir}/WEB-INF/entities/xslt-20020523.rng"> <!-- FIXME: Need catalog entity resolver, so excluding catalog tester xsl --> <!-- FIXME: Excluding the "hello world" SWF sitemap (minor issue) --> - <fileset dir="./src" includes="**/*.xsl" + <fileset dir="${src.dir}" includes="**/*.xsl" excludes="**/catalog/style.xsl, **/simple-page2swf.xsl"/> - <fileset dir="./tools" includes="**/*.xsl"/> + <fileset dir="${tools.dir}" includes="**/*.xsl"/> </jing> <!-- The Treeprocessor builtins --> @@ -2356,11 +2353,24 @@ if="validate.xdocs"> <echo message="Conducting validation of core XML documentation."/> <echo message="(You can turn validation off if you must, using ./properties.xml)"/> + + <echo message="Validating all **/book.xml instances using RELAX NG ..."/> + <jing rngfile="${webapp.dir}/WEB-INF/entities/book-v01.rng"> + <fileset dir="${build.context}" includes="**/book.xml"/> + </jing> + + <echo message="Validating all xdocs/**/*.xml instances using DTDs ..."/> <xmlvalidate failonerror="true" lenient="no" warn="yes"> + <!-- FIXME: we can use xmlcatalog with Ant-1.6 --> <fileset dir="${build.context}/xdocs" includes="**/*.xml" excludes="drafts/*.xml,dictionary.xml,catalog-test.xml,ctwig/sample/**/*.xml" /> </xmlvalidate> + + <echo message="Validating the documentation sitemap.xmap ..."/> + <jing rngfile="${webapp.dir}/WEB-INF/entities/sitemap-v06.rng"> + <fileset dir="${build.context}" includes="sitemap.xmap"/> + </jing> </target> <!-- =================================================================== --> @@ -2376,7 +2386,7 @@ --> <target name="prepare-schematron" description="Generate Schematron schema from RNG grammar" - depends="prepare-docs, prepare-webapp, prepare-webapp-scratchpad" + depends="prepare-webapp, prepare-webapp-scratchpad" if="validate.config"> <echo message="Generating Schematron schemas from RELAX NG grammars"/> <echo message="Currently doing: sitemap.rng only"/> @@ -2394,6 +2404,7 @@ <target name="validate-schematron" description="Validate against Schematron schemas generated from RNG grammars" depends="prepare-schematron"> + <echo message="NOTE: this is an experimental build target."/> <echo message="Removing any old reports ..."/> <delete quiet="yes"> <fileset dir="${build.dir}" includes="**/sitemap.report" /> 1.317 +7 -1 xml-cocoon2/changes.xml Index: changes.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/changes.xml,v retrieving revision 1.316 retrieving revision 1.317 diff -u -r1.316 -r1.317 --- changes.xml 19 Dec 2002 15:17:51 -0000 1.316 +++ changes.xml 21 Dec 2002 06:20:36 -0000 1.317 @@ -40,6 +40,12 @@ </devs> <release version="@version@" date="@date@"> + <action dev="DC" type="add"> + Integrated the validation targets into the build ("validate-config" and + "validate-xdocs") also still available at the command-line. Validation + happens automatically unless you switch it off. See document + <link href="userdocs/concepts/validation.xml">XML Validation Facilities</link>. + </action> <action dev="CH" type="fix" due-to-email="[EMAIL PROTECTED]" due-to="Michael Enke" fixes-bug="15064"> Postgresql 7.3: LIMIT x,y no longer supported. Added new class for 1.48 +1 -8 xml-cocoon2/todo.xml Index: todo.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/todo.xml,v retrieving revision 1.47 retrieving revision 1.48 diff -u -r1.47 -r1.48 --- todo.xml 28 Nov 2002 06:30:13 -0000 1.47 +++ todo.xml 21 Dec 2002 06:20:36 -0000 1.48 @@ -31,13 +31,6 @@ </devs> <actions priority="high"> - <action context="build" assigned-to="open"> - Integrate the new "validate-config" target into the build to conduct - validation of core important configuration files. See email: - <link href="http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=103733768812046">[VOTE] build-time XML validation via RELAX NG</link> - (which includes a link to the Proposal). - </action> - <action context="code" assigned-to="open"> For 2.1: Rewrite the FilesystemStore. The current implementations relies on a correct implementation of the toString() method of the used 1.2 +49 -4 xml-cocoon2/src/documentation/xdocs/userdocs/concepts/validation.xml Index: validation.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/src/documentation/xdocs/userdocs/concepts/validation.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- validation.xml 2 Dec 2002 01:36:47 -0000 1.1 +++ validation.xml 21 Dec 2002 06:20:37 -0000 1.2 @@ -5,7 +5,7 @@ <header> <title>XML Validation Facilities</title> <subtitle>Conducting build-time and run-time validation</subtitle> - <version>0.1</version> + <version>0.2</version> <type>Technical document</type> <authors> <person name="David Crossley" email="[EMAIL PROTECTED]"/> @@ -35,12 +35,19 @@ (e.g. sitemap.rng) are minimal tests only and utilises Schematron Basic. Everything is experimental. </p> + + <p> +With that said, the validation system does work and is waiting for your help +to extend it. + </p> </s1> <s1 title="Operation"> <p> - For 2.1-dev there are currently 2002-12-02 three standalone validation - targets. + There are three validation targets in build.xml (see some internal notes). + If you do not want validation to happen automatically during the build + (for some strange reason) then you can switch it off in + <code>./properties.xml</code> </p> <p> There are also validation facilities in Cocoon XMLForm. @@ -50,11 +57,20 @@ <s2 title="Build target validate-config"> <p> - 2.1-dev and 2.0.4 + 2.1-dev and 2.0.5 </p> <p> <code>./build.sh validate-config</code> </p> + <p> + Called automatically during the build (only 2.1) and can also be called + from the command-line. + </p> + <p> + Validation of some core configuration files using RELAX NG. Currently doing: + cocoon.roles, *.xsl, **/sitemap.xmap, + and treeprocessor-builtins.xml (using DTD). + </p> </s2> <s2 title="Build target validate-schematron"> @@ -64,6 +80,13 @@ <p> <code>./build.sh validate-schematron</code> </p> + <p> + Can only be called from the command-line. + </p> + <p> + Validation of all sitemap.xmap using Schematron rules embedded in + RELAX NG grammars. (Very experimental.) + </p> </s2> <s2 title="Build target validate-xdocs"> @@ -73,6 +96,14 @@ <p> <code>./build.sh validate-xdocs</code> </p> + <p> + Called automatically during the build, and can also be called from the + command-line. + </p> + <p> + Validation of all core documentation/xdocs Currently doing: + book.xml (using RELAX NG), *.xml (using DTD). + </p> </s2> <s2 title="XMLForm Validation"> @@ -83,6 +114,20 @@ Basic overview: <link href="xmlform.html">XMLForm Handling</link> </p> </s2> + </s1> + + <s1 title="To Do"> +<ul> +<li>Is the validate-config stuff properly integrated in the build.xml ? +Is it being called from all of the appropriate places? e.g. should it also be +called from the default target "all"?</li> +<li>Integrate this build-time validation into 2.0.5 (currently standalone +targets).</li> +<li>All of the RELAX NG grammars are basic and need enhancement.</li> +<li>The validate-schematron targets are particularly experimental.</li> +<li>After this build-time validation is settled, then perhaps we can also do +run-time validation when sitemap changes are effected.</li> +</ul> </s1> <s1 title="Stuff">
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]