- From: Claudius Teodorescu <claudius.teodorescu@gmail.com>
- Date: Thu, 28 Feb 2013 16:40:34 +0200
- To: "public-change@w3.org" <public-change@w3.org>
- Message-ID: <CAPTZ0VwmMcM4iMc94vWAo4TMxeDYW60fO=gdKniYpQKzHawgJw@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 Thursday, 28 February 2013 14:41:06 UTC