W3C home > Mailing lists > Public > xmlschema-dev@w3.org > January 2010

XML Zebra, a path-based tool for generating diff fingerprints for XML Schemas

From: Anthony B. Coates \(W3C Lists\) <abcoatesecure-w3c@yahoo.co.uk>
Date: Sun, 17 Jan 2010 21:01:38 -0000
To: "xmlschema-dev List" <xmlschema-dev@w3.org>
Message-ID: <op.u6o3c0vubeptyg@ubuntuvm>
I have written a tool (in Scala) that can be used to check the differences
between versions of a set of W3C XML Schemas.  The tool can be run with
Scala, Java, or Apache Ant.  The idea is that for each version, you create
a fingerprint file that contains paths (like XPaths, but with an extended
syntax).  By comparing the two fingerprint files for two versions, you can
see what has changed between the versions of the Schemas.  The tools makes
use of the XMLBeans API for examining the structure of W3C XML Schemas.

How does this differ from just doing diffs of the individual Schema files
themselves?  The difference is that the path-based approach shows you not
only what has changed, but also shows all of the places that are directly
or indirectly impacted by the change.  Also, the path-based approach
ignores restructurings that don't impact users, like renaming of Schema
types or moving of definitions to a different Schema file.  Put another
way, the path-based approach allows you to evaluate how the Schemas have
changed from a user-impact perspective, rather than from a simple
file-change perspective.

The software is open source, released under the Apache licence.  For more
details, and to download it, see


There will be a presentation about this software at the XML Prague 2010
conference, 13-14 March.


Feedback would be very welcome.  Thanks,

Cheers, Tony.
Anthony B. Coates
Director and CTO
Londata Ltd
UK: +44 (20) 8816 7700, US: +1 (239) 344 7700
Mobile/Cell: +44 (79) 0543 9026
Skype: abcoates
Data standards participant: genericode, ISO 20022 (ISO 15022 XML),  
Received on Sunday, 17 January 2010 21:02:12 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 23:15:55 UTC