<xml>cmp >>> decisive is the relevant difference


comparison result

  • format
    • pdf: ideal for the user
    • xml: ideal for further automatic processing steps
    • html: user is able to navigate through the list of differences
  • content
    • all data + differences
    • only differences

performant processing of large files

  • Processing large files is fast and as easy as processing small files.
  • Processing large files does not need a giant large memory.
  • There are no special actions required! (especially no increasing of the java-heap-size-parameter)
  • You will not get the frustrating error-message "java.lang.OutOfMemoryError: Java heap space".

no filters or any programming-work required

  • All comparing/merging/converting/sorting-rules can be defined in xml-control-files.
  • There are no filters, xslt-programming or anything like this required.
  • With <xml>cmp you have not to be a software-developer to compare/merge/convert or sort xml-files.

processing-rules are highly configurable

  • The rules for comparing/merging/converting/sorting are defined in a xml-control-file.
  • You can generate the rules for a xml-file ( to avoid work and typeing errors).
  • You can adapt the generated rules for your special needs with a simple text-editor.
  • examples comparing-rules:
    • Do not compare a element or attribute.
    • Trim a element or attribute before comparison.
    • Convert a element or attribute in a different format before comparison.
    • Take care (or don't care) of the sequence of elements.
    • ..
  • examples merging-rules:
    • Do not merge a element or attribute.
    • Merge only rows, with equal identity.
    • Merge only rows, with different identity.
    • Merge an element or attribute only form file2 not from file1.
    • ..
  • examples sorting-rules:
    • ascending or descending order
    • alphanumeric or numeric order
    • ..

identifying elements/attributes can be defined

  • You can define, which elements/attributes are the identifying elements/attributes.
  • Identifying elements are the indispensable condition for an accurate comparison/merging.
  • You need identifying elements for comparing data which is in different order.

implementing regression-tests

  • Xml has become the leading technology for data-exchange because of it's advantages. So: Most interfaces contain xml-data.
  • For implementing regression-tests you have to
    • compare the actual condition of an xml-file with the specified-condition.
    • evaluate the exit-code of the <xml>cmp-job and take action.
  • With the <xml>-comparing-tool you can implement regression-tests.
  • In the software-lifecycle you have the following typical problems with your test-cases:
    • Modified software writes new additional xml-elements/attributes.
    • Modified software writes different content in xml-elements/attributes.
  • Because the comparison-rules of <xml>cmp are highly configurable, you can easily solve these problems:
    • You can exclude the new or modified elements/attributes from the comparison-process.
    • If your regression-tests have been successfully, you copy the new created xml-files with the new or modified elements/attributes as the new correct specified xml-files.

detailed error-messages and statistic-informations

  • comparing-error-messages:
    • All detected differences are published as errors in a xml-error-file.
    • The errors are grouped by the error-text.
    • To every error-message all rows are published with their
      • identifying elements and attributes
      • non-identifying elements and attributes.
    • detailed error messages:
      • Content of element <element>' is different'.
      • Input[1|2] is missing element '<element>'
      • Tag '<element>' of input[1|2] is not allowed.
      • Content of attribute '<attribute> is different'.
      • Input[1|2] is missing attribute '<attribute>'
      • Attribute '<attribute>'of input[1|2] is not allowed.
      • Detail-elements of identity-path '<path>' have different sequence.
      • Row-sequence in identity-path '<path>' is different.
      • Count of rows with same identity-path '<path>' is different.
  • comparing-statistic-informations:
    • Every comparison creates a xml-statistic-file.
    • content of the statistic-file:
      • all error-messages and their frequency
      • time consuming of the comparison
      • needed temporary disk-space
      • value of control-parameters
      • ..
  • merging-statistic-informations:
    • Every merging creates a xml-statistic-file.
    • content of the statistic-file:
      • time consuming of the merging
      • needed temporary disk-space
      • value of control-parameters
      • count of merged element/attributes, which are equal
      • count of merged element/attributes, which are not equal
      • ..

<xml>cmp runs without a complex installation

  • You only need a java-runtime-environment.
  • Many self-testing examples are delivered, which are referenced by the user-manual and explained in detail.
  • You can immediately start with your first comparing/sorting/merging/converting-example.

simple command-line-interface

  • $ xmlcmp.sh cmp.xml file1.xml file2.xml
  • $ xmlmerge.sh cmp.xml merge.xml file1.xml file2.xml
  • $ xmlsort.sh cmp.xml sort.xml file1.xml
  • $ xmltoxml.sh cmp.xml toxml.sh file1.xml

price and license

  • <xml>cmp has no complex pricing/license-model.
  • <xml>cmp is really cheap.


  • You can sign a support-contract for <xml>cmp.
  • You will get excellent support directly by the software manufacturer of <xml>cmp .


  • comparing xml-files
  • merging xml-files
  • regrouping xml-files
  • sorting xml-files

<xml>cmp and large xml-files

  • designed for large xml-files
  • low memory consumption
  • very good performance


  • command line interface (unix/dos)
  • java-api

differences are shown in the context of the xml-files:

  • all data + differences
  • only differences
  • output: xml and pdf
Software Fischer SOFIKA GmbH
Freseniusstr. 65
D-81247 Munich
Tel: +49 (0)89 / 81 00 90 15
Fax: +49 (0)89 / 81 00 90 16
Email: info@sofika.de