The XOperator

 
 Living Pages :: Projects :: XOperator
solve+innovate
 lynx users: scroll to navigation bar here
  Living Pages Research

XOp

The XOperator homepage. XOp is part of the ercato project. It is available for non-commercial use free of charge.

Introduction

The XOperator is four things at once:

  • A scriptable command-line tool to compare, merge and synchronize XML documents.
  • 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 time).

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?

Resources

Documentation

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

sample:
   xop -script on "new.xml = (a + (b + old.xml))"

copyright:
   (c) 2009 Living Pages Research GmbH, Munich, Germany. living-pages.de

Download

Download entire package (zip, 292 kB)

current version is 1.3 (2009/10/12)

E-Mail address:

(optional, we will not spam You!)

 

free for non-commercial use, evaluation and development only.
By clicking download above You confirm to accept the license.

 

back     top

Home
News
Products
Company Profile
Jobs
Projects
Featured Links
Support
Download
Forum
Search
Site Map
Internal
Contact
Partner Login
zur Deutschen Versiongo to English version