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.
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.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
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.
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.