Today many web developers use W3C validator do find out whether their web-site comply with the W3C recommendations. Some people don't realize that such validation has it's limits. Just restrictions expressible using DTD schema language may be automatically validated using W3C validator tool. The aim of the "Relaxed" project is to allow automated validation of additional restrictions which are expressed just verbally in the text of different HTML standards.
Using "Relaxed" validator may help authors of HTML documents adhere better to commonly recognized standards and thereby improve the accessibility of those documents and the usability of web technology in general.
How does "Relaxed" work?
"Relaxed" makes use of modern and expressive schema languages such as Relax NG and Schematron. Many additional and even quite complicated restrictions may be expressed thanks to the combination of those two languages. Schematron patterns are embedded into Relax NG definition.
Part of the project is an extensible validation engine written in Java. This engine validates documents at the specified URL address and offers error messages to the user. Those messages contain line number, explanation and severity. Document type (Strict / Transitional / Frameset) is automatically recognized from the DOCTYPE definition. If this definition is not retrieved for some reason, the document is considered to be Transitional HTML.
What HTML standards does "Relaxed" validate?
Currently the probably most widespread standards are supported. "Relaxed" is able to validate most of the restrictions contained in W3C's HTML 4.01, XHTML 1.0 and some restrictions based in WAI's WCAG 1.0.
HTML 4.01 validation is possible thanks to HTML to XHTML conversion. For this purpose a filter is used in the validation engine.
There is also basic support for validaton of compound documents in "Relaxed". You can validate XHTML 1.0+SVG 1.1, XHTML 1.0+MathML 2.0 and XHTML 1.0+MathML 2.0+SVG 1.1 documents.
How to use "Relaxed"?
The usage of "Relaxed" is very simple:
- Go to the "Relaxed" web-site
- Type in the full URL of your document (your document needs to be published on the web).
- Choose the HTML standard which shall be validated in the next input field.
- Press the "validate" button
Finally you see the validation output. Your page may be valid or invalid. In case of an invalid page you see validation errors with line numbers, explanation and severity level in the output. You may use this output to correct the described problems. It may be useful to use "Relaxed" validator in conjunction with the official W3C validator to make the best use of both tools.
Where do I get "Relaxed" source code?
The "Relaxed" project is hosted at SourceForge with all advantages adherent to it. You may download one of the source releases, you can get the latest snapshot from the CVS or you can browse the web-based CVS repository.
How do I report a bug?
What technology does "Relaxed" use?
The validation engine is written in Java (1.4 SDK) and the web-based interface was tested on Tomcat. JARV with Sun MSV validator is used to allow language independent validation but is currently used to validate Relax NG definitions. Saxon is used to extract embedded Schematron patterns and validate HTML documents using it. Tag Soupe library is used to convert HTML 4.01 documents into XML so that those documents (still widely dispersed on the web) may be validated as well. Apache ANT is used for building, installation, deployment, testing and command-line validation.
Schemas that are used for validation are based on or derived from work of James Clark (XHTML), Masayasu Ishikawa (SVG) and Yutaka Furubayashi (MathML).
Main author of "Relaxed" is Petr Nálevka. He designed and developed whole application and he created XHTML and XHTML+WCAG schemas as well.
The idea of using RELAX NG combined with Schematron for (X)HTML validations comes from Jirka Kosek who also created schemas for several types of compound documents. He also customized "Relaxed" to serve as a DocBook V5.0 validation service.