XSLint is an XSL "lint checker." It reads an XSL stylesheet and looks for semantic errors.
This documentation is for Version 0.05.
XSLint looks for:
An incorrect XSLT URI.
Failure to provide a version.
Duplicate match patterns.
Modes that are used but never defined
Modes that are defined but never used
Named templates that are used but never defined
Named templates that are defined but never used
Templates that use name= where match= was probably intended
xsl:call-template elements that contain anything other than xsl:with-param
Variable/parameter references that are not defined at the point of use.
fo: elements that aren't part of the XSL 1.0 PR.
fo: element properties that aren't part of the XSL 1.0 PR.
XSL Lint requires Perl 5, XML::Parser, and XML::DOM. Contact your favorite CPAN archive (cpan.perl.com) for more information about obtaining and installing Perl modules.
Display progress status and other informative messages.
Turn on debugging messages.
XSLint "flattens" the stylesheet by expanding all xsl:include elements. If the --flat option is given, the flattened stylesheet is written to outname.
Display informative messages. Off by default.
Display warning messages. On by default, use --nowarning to disable.
Display error messages. On by default, use --noerror to disable.
XSLint is Copyright © 1999, 2000 Norman Walsh
Ironically, assertion of copyright is done to make it easier to distribute this software. (At least one organization, Software in the Public Interest, requires an explicit copyright statement in order to redistribute the software.)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Except as contained in this notice, the names of individuals credited with contribution to this software shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the individuals in question.
Any software derived from this Software that is publically distributed will be identified with a different name and the version strings in any derived Software will be changed so that no possibility of confusion between the derived package and this Software will exist.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
There's no support for xsl:import.
XSLint doesn't handle XSLT stylesheets that use a namespace prefix other than "xsl:".
XSLint doesn't handle XSLT stylesheets that use a namespace prefix other than "fo:" for XSL Formatting Objects.
Duplicate match pattern searching is very limited.
At present, XSLint only detects textually duplicate match patterns, not match patterns that could match the same element. So it's not as useful as it sounds. Improvements are planned.
XSLint is maintained by Norman Walsh, <ndw@nwalsh.com>.
The best way to reach norm is by email. You will find additional contact information at http://nwalsh.com/~ndw/.