Java and REST

While other methods are provided (such as the command line), XML Compare is designed primarily to be controlled through its API. This runs natively on the Java 1.8 platform. REST provides further flexibility allowing integration with many systems.

Saxon Compatibility

Certain parts of the API allow for integration with an external (Saxonica Ltd) Saxon XSLT/XQuery processor, for example overloads of the compare function provided by the comparator APIs take Saxon XdmNode instances as arguments. To minimize potential version conflicts with XML Compare's internal processor, XML Compare exploits a 'compatibility layer' supporting Saxon versions 9.8, 9.9, and 10.x (currently tested against 10.5).

The command-line driver currently has saxon-pe-10.5.jar on its classpath, if you want to use a different version of Saxon 10 on the command-line you will need to set the classpath manually using the standard -cp option.

XML Catalog Resolving

XML Compare uses a custom version of the Apache commons OASIS catalog resolver by default, this can however be changed. Further details are in the guide: Using a Catalog Resolver.

Progress Listeners

Systems often have the need to self-monitor or provide progress feedback to an end-user for operations that have the potential to take a noticeable amount of time. The XML Compare API has provision for adding progress listeners via a ProgressListener interface, allowing a comparison to be monitored through each significant processing stage in the pipeline configuration.