apache > cocoon

- Home

# XML Validation Facilities

## Goal

###

## Overview

Note
This document is under development.

You really should validate documents in your editing environment. It is not the concern of Cocoon. However there are some facilities.

## Warning: Validation facilities are under development

The validation facilities are under development in the head CVS. The RELAX NG grammars for each document type are basic (and some of them are just generated from old DTDs). The RNG with embedded Schematron rules (e.g. sitemap.rng) are minimal tests only and utilises Schematron Basic. Everything is experimental.

With that said, the validation system does work and is waiting for your help to extend it.

## Operation

There are three validation targets in build.xml (see some internal notes). If you do not want validation to happen automatically during the build, then you can switch it off in `./properties.xml`

### Build target validate-config

2.1-dev and 2.0.5

`./build.sh validate-config`

Called automatically during the build (only 2.1) and can also be called from the command-line.

Validation of some core configuration files using RELAX NG. Currently doing: cocoon.roles, *.xsl, **/sitemap.xmap, and treeprocessor-builtins.xml (using DTD).

### Build target validate-schematron

2.1-dev

`./build.sh validate-schematron`

Can only be called from the command-line.

Validation of all sitemap.xmap using Schematron rules embedded in RELAX NG grammars. (Very experimental.)

### Build target validate-xdocs

2.1-dev

`./build.sh validate-xdocs`

Called automatically during the build, and can also be called from the command-line.

Validation of all core documentation/xdocs Currently doing: book.xml (using RELAX NG), *.xml (using DTD).

## To Do

- 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"?
- Integrate this build-time validation into 2.0.5 (currently standalone targets).
- All of the RELAX NG grammars are basic and need enhancement.
- The validate-schematron targets are particularly experimental.
- After this build-time validation is settled, then perhaps we can also do run-time validation when sitemap changes are effected.

## Stuff

See xml-forrest/src/resources/schema/relaxng/README.txt

See cocoon-2.1/tools/src/schematron/README.txt

See notes in the top of cocoon-2.1/src/webapp/WEB-INF/entities/sitemap-v06.rng

## Further information

- Organization for the Advancement of Structured Information Standards (OASIS)
- Document Schema Definition Languages (DSDL) - ISO/IEC 19757 - DSDL

Errors and Improvements? If you see any errors or potential improvements in this document please help us: View, Edit or comment on the latest development version (registration required).