Overview

Style Tester Of Interfaces (XML) - or Stoix for short - is an XML style checking tool, intended to ensure that XML schema documents (XSD or WSDL Type definitions) conform to a set of predefined coding standards and design guidelines. It is not intended to: confirm XML is valid, that XSDs conform to the W3C XSD schema, or that WSDL documents are valid or WS-I compliant. These areas are already well served by existing tools. Rather this tool is intended to ensure that XML interface specifications meet coding standards e.g. naming conventions for types and elements and standards on structure. In this way the tool performs a similar function to in-editor warnings for languages such as Java/C#.
Process XSD input through tool to XML error report

The tool is an XSL document meaning that XSD/WSDL files can be checked by merely transforming them (either in editor or as a quality control check before accepting a new interface with a tool such as Kernow. The result of this transformation is an error report which can either be discarded or checked into a release note as part of a QC procedure if the tool is used as part of a formalised sign-off.

Usage

  1. Configure settings (variables) in the stylesheet. These are constant variables at the top of the sheet and should be the only changes required for normal usage. This only needs to happen during the initial configuration - further details are given below
  2. Develop the XSD/WSDL document (click to see example)
  3. Transform using the XSL tool
  4. Review error report (click to see example)

Features

Currently the tool can performs the following checks (each check can be enabled/disabled as required): Each of these checks can be set to one of the following levels of reporting:

Download

The XSL is available to freely download from the link below, with ABSOLUTELY NO WARRENTY. This tool is released under the GNU General Public License version 3 (GPLv3), please review the license before making any changes.

If you develop, or think of any additional features which are currently missing please let me know and I'll add useful ones to the tool in later versions. Additionally if you're just using it please let me know, it would be nice to get a feel for how it's being used on the ground.

Future plans

I'll be adding to the unit tests as I go along, and I've already identified some areas which would be handy to have tests for: