Smart configuration of XML and JSON documents and data
DeltaXML products can be configured to tell you about the differences that matter to you and ignore those that don’t, including changes to attributes, the order of content, differences in whitespace and external links.
The majority of DeltaXML products allow some level of configuration to make sure that you can set up the tools to give you the output that you need
The flexibility that configuration gives you depends on the specific product with XML Compare and XML Merge giving you the most versatile APIs, allowing you to set up every stage of processing as you need it.
Format Specific Products
Our format-specific products are set up with pre-configured processing pipelines but still allow for a good degree of configuration through the setting of parameters and enabling or disabling certain specific processing.
REST-based APIs and SaaS
Our REST-based APIs and SaaS products strike the right balance between simplicity of API and the ability to use a configuration appropriate for your XML content.
Almost all of our XML processing is carried out in modular transformation stages using either XSLT or Java’s SAX filters.
We use the same approach for enabling customisation in XML Compare and XML Merge, allowing users to specify entire pipelines or to insert transformation stages at predefined points in an existing pipeline.
The power behind pipelines is no secret
There are several reasons why building XML pipelines makes sense. Firstly, it simplifies processing by breaking it into several smaller stages, making each stage easier to write and maintain. Secondly, it enables common stages to be used in more than one place. Finally, it provides a means for inserting custom processing in between existing stages as needed to create new configurations.
DeltaXML pipelines are built using the Saxon S9API capability
Saxon was already in use for running XSLT transformations, so it made sense to use the same library for pipelining technology.
Built to fit your environment
Our products follow a similar pattern whether they are for two-way comparison or for n-way merging. Each XML input passes through its own pipeline before it reaches the comparison or merge operation. The input pipelines can be individually defined for each input, or you can use the same one for every input. Once the compare or merge has taken place, the result is passed through an output pipeline where transformation of the delta result takes place. This could be to ignore changes, modify the way that changes are represented or, in the case of our format-specific products, convert our delta markup into native markup for the format.
Written in XSLT
Most of our pipeline processing stages are written in XSLT. Wherever possible, we make use of XSLT 3.0 features and encourage our users to do the same when writing custom XSLT steps. XSLT is a well-established standard for XML processing and, combined with Saxon’s implementation, provides a robust mechanism for XML processing.
The Document Comparison Pipeline
DCP, or Document Comparison Pipeline, is an XML grammar for specifying the configuration settings and XML processing pipeline for the Document Comparator class in XML Compare. Once defined, the DCP file is used to run a comparison using the command-line tool or by loading a fully configured Document Comparator instance in the Java API. You don’t need any Java knowledge to use DCP, but an understanding of XPath will allow you to use the full functionality of DCP.
The DeltaXML Pipeline
DXP, DeltaXML Pipeline, is our original pipeline grammar for specifying configuration settings on the Pipelined Comparator class in XML Compare. That class does not include pre-configured pipeline stages like Document Comparator, so DXP requires you to specify the entire pipeline. If you are comparing textual document content, we recommend DCP. DXP is for advanced users who need absolute control over the XML processing pipeline.
Need help building your own pipelines?
We’ve been sure to give users of our software a complete freedom when it comes to configuration for we know that everyone’s needs are different. If you need some advice on how you’d build a specific pipeline for your processes either come talk to us or have a look at one of our partners.