- From: Claudius Teodorescu <claudius.teodorescu@gmail.com>
- Date: Sun, 24 Feb 2013 12:39:11 +0200
- To: public-expath@w3.org
- Message-ID: <CAPTZ0VxBiGmHj8mfVRa75q0fDnB75HnpPykHd3i6maKyvyNwHw@mail.gmail.com>
Dear all, One can think of a synthesis of all the knowledge you kindly presented here already. Externalization of change tracking seems very attractive, as thus one can keep the XML file as a standalone entity, without permanent PIs or foreign elements or attributes in its structure. Example of such external file: <changes xmlns="http://www.w3.org/2013/change-tracking"> <change timestamp=""> <actions href="actions-1008.xquery" /> <audit> <action timestamp="" status="accepted | rejected | pending" /> </audit> <metadata></metadata> </change> </changes> Example of actions file (actions-1008.xquery above): xquery version "3.0"; let $document := doc('preceding-version.xml') let $add-1 := update insert attribute status {'new'} into $document return $document Such change tracking approach could provide: 1. differencing between two XML files or between two versions of the same XML file; 2. versioning of an XML file; 3. auditing of changes; 4. rendering of changes, by using a light syntax (PIs, for instance); such syntax is to be used for rendering only, thus not over-loading the XML document itself; 5. alignment of this standard with the "Time Machine for XML" ([1]); 6. better performance for applying the change actions, as these are not written in a declarative markup, which has to be interpreted, but in a native language and in external file, thus being possible to compile and cache them; 7. possibility to use such change tracking in various processors, due to the fact that actions can be described in various languages, such as XQuery, XProc, or even Javascript. [1] ftp://ftp.inf.ethz.ch/doc/tech-reports/7xx/734.pdf This is just my 22 cents. :) Claudius
Received on Sunday, 24 February 2013 10:39:39 UTC