XML Zebra is an XML Schema differencing tool that works by creating a "fingerprint" file for a set of Schemas. The "fingerprint" contains paths (like XPaths, but extended with extra information) that define what is allowed in valid XML documents for those Schemas. By comparing versions of the "fingerprint" files, both direct and indirect changes to the allowed XML can be detected between versions of the Schemas. The XML Zebra path syntax is described in the path syntax summary.
For more details about XML Zebra, see http://www.xmlzebra.com/.
You can run XML Zebra with either Scala or Java. You can also run it using Apache Ant.
scala -version
bin\xmlzebra.bat -o example\paths.xml
example\xsd
chmod 755
bin/xmlzebra.sh
bin/xmlzebra.sh -o
example/paths.xml example/xsd
bin\xmlzebra.bat -o example\paths2.xml
example\xsd -xmlns:aa=http://xml.example.com/ns/testA
-xmlns:bb=http://xml.example.com/ns/testB
bin/xmlzebra.sh -o
example/paths2.xml example/xsd
-xmlns:aa=http://xml.example.com/ns/testA
-xmlns:bb=http://xml.example.com/ns/testB
java -version
bin\xmlzebra.bat -o example\paths.xml
example\xsd
chmod 755
bin/xmlzebra.sh
bin/xmlzebra.sh -o
example/paths.xml example/xsd
bin\xmlzebra.bat -o example\paths2.xml
example\xsd -xmlns:aa=http://xml.example.com/ns/testA
-xmlns:bb=http://xml.example.com/ns/testB
bin/xmlzebra.sh -o
example/paths2.xml example/xsd
-xmlns:aa=http://xml.example.com/ns/testA
-xmlns:bb=http://xml.example.com/ns/testB
java -version
ant -version
ant -f example/build.xml
(scala | java) ... com.londata.zebra.SchemaPathGenerator [ -o <outfile> ] { <xml-schema-file-or-dir-path> | -xmlns:<prefix>=<uri> | -root=<prefix>:<local-name> }
Use
"-xmlns:<prefix>=<uri>
" to set the namespace
prefix to use for a particular namespace URI.
Use
"-root=<prefix>:<local-name>
" to set a starting
element for the paths (if no starting elements are set, all global
elements are used). Use "*
" as the prefix to match all
namespaces.