The XOperator homepage. XOp is part
of the ercato project. It is available for non-commercial use free
The XOperator is four things at once:
- A scriptable command-line tool to compare, merge and synchronize
- A Java library (in .jar-format) for integration into own projects.
- A framework to formulate and evaluate algebraic expressions
on XML trees.
- A framework to express object-oriented inheritance (and more)
in pure XML.
There are a number of tools able to compare or
'diff-and-patch' XML files, incl. from Microsoft. The paper "A
comparative study for XML change detection" given
at the conference "Bases
de Données Avancées", Évry, France, October
2002, gives an overview (XOperator was not available at that
The XOperator operation '+' is mapped to object-oriented inheritance
within pure XML by the ercato engine.
Because the XOperator is namespace-aware and manages to use an
XML document scheme for differences which is close to the original
scheme, some cool stuff gets simple. Look at for yourself...
And now imagine that "tiger with whiskers"
extends "plain tiger". Can object-oriented
inheritance get more thing-oriented than this?
usage: xop 
options include: (default given as example, comments follow #)
-byname http://ercato.com/xmlns/ErcatoCore name # null name w/o namespace
# option to force matching of some nodes, eg., by id
-match match # match|text|auto subtle switch
-script off # off|on on always produces xml
examples for xoperator-expression:
a.xml + b.xml # sum of files
- + http://localhost/a.xml # stdin plus network resource
a + b + c # three files
a = b - c # creates file a, no stdout
(a = b - c), a # creates file a, with stdout
a - a == 0 # produces true, scripts may test true/false
(a + b + b) == (a + b) # produces true
((a = b + c) - (b = a + b)) # etc.
# spaces around operators are required.
# operators: '+', '-', '==', '!=', '0', '=', ',', '(', ')'
# you may have to quote '(...)' in most shells.
# xops may be piped together using '-'.
xop -script on "new.xml = (a + (b + old.xml))"
(c) 2009 Living Pages Research GmbH, Munich, Germany. living-pages.de