Hi Andreas, On 11 Apr 2011, at 16:01, Andreas J. Guelzow wrote: > Perhaps somebody in the know can answer a few questions I have regarding > the Generic Change Tracking proposal: > > 1) Is my understanding correct that this proposal requires an infinite > number of attribute names to be added to ODF, ie. ac:change001, > ac:change002,...,ac:change999, ac:change1000,... ? > Yes, there are potentially an infinite number of attributes that could be added to an element to hold each attribute change. This can be achieved in the RNG (see below) by specifying that an element can contain zero or more attributes within a specified namespace and having no constraint on the attribute name. Duplicates are of course disallowed automatically. <define name="delta-allow-attribute-changes"> <zeroOrMore> <attribute> <nsName ns="
http://www.deltaxml.com/ns/track-changes/attribute-change-namespace"/ > </attribute> </zeroOrMore> </define> The attribute name itself can be automatically generated. The names are not used to imply any order, that is determined by the CT referenced within the attribute value. One advantage of this scheme is that it is very easy to select all of the attribute changes, e.g. with a simple XPath statement. > 2) The wiki lists various use cases as "completed". Is the re a place > where I can find some examples for those use cases. In the moment I am > especially interested in deleting a column in a spreadsheet: say we have > a 100 by 100 sheet of cells. A1 and Z100 contain a 1 each. We are > deleting column C. How does this differ from deleting cell K100? > The tracked-change examples of the use cases are available on the Documents page of the wiki. The before and after documents were created using OpenOffice.org but the 'tracked' documents were hand coded rather than being generated by any specific application. The tracked examples are available here:
http://www.oasis-open.org/apps/org/workgroup/office-collab/download.php/41547/generic-ct-use-case-solutions.zip As far as the spreadsheet example goes, if I understand you correctly, only two cells have any content, A1 and Z100. Deleting the empty column C or the empty cell K100 (with a shift left of remaining cells) both leave the same result: now only A1and Y100 contain any content. The underlying XML changes are the table:number-columns-repeated attributes on the column definition and on various empty cell definitions. As you point out, if these are tracked, there is no way of telling which of the user actions (column deletion or cell deletion) caused the change. As I see it, there are two ways of looking at this: 1) Conceptually it makes no difference which of the actions caused the change in this case. If there was more data present or if there were formulae referencing other cells then it would be a different matter. But in the case that each action produced a different result, this would be reflected by different tracking markup. 2) Change transaction metadata could be used to record the action. If it does matter which action caused the change, there are ways of recording this in the change transaction as I mentioned during last week's presentation. We still need to make a decision about whether this is restricted to a pre-defined set of actions or is unrestrained. More generally I think this brings up a couple of questions that need to be considered: 1) Do we need to track user actions that have no effect on the document itself? 2) Do we need to differentiate between two actions that have the same effect on the document? Regards, Tristan > Thank you > > Andreas -- Tristan Mitchell, DeltaXML Ltd "Change control for XML" T: +44 1684 869 035 E:
tristan.mitchell@deltaxml.com http://www.deltaxml.com Registered in England 02528681 Reg. Office: Monsell House, WR8 0QN, UK