Revisions
Revisions in WordprocessingML provide a mechanism for storing information about the evolution of the document (i.e. the set of modifications made to a document by one of more authors). When an application adds revisions to the content of a WordprocessingML document, they are specifying this by storing either (depending on the revision type):
The current state of the document (a deletion stores the current state of the text as deleted, and implies that its original state was the content used to exist)
The initial state of the document (a run's initial properties are explicitly stored in a previous run properties block, as the current run properties are always those that are the child of the
<rPr>
element (§2.7.8.1))
A revision consists of two required pieces of information:
The revision type (specified via the name of the revision element)
A unique revision identifier (used to uniquely identify revisions)
As well as optional information:
The author of the revision
The date and time of the revision
This paragraph has the word text
marked inserted as a revision, and is represented as the following WordprocessingML:
<w:p> <w:r> <w:t>Some</w:t> </w:r> <w:ins w:id="0" w:author="Joe Smith" w:date="2006-03-31T12:50:00Z"> <w:r> <w:t>text</w:t> </w:r> </w:ins> </w:p>
The <ins>
element contains both the required information: all of the content which shall be treated as revision marked as inserted (the word text
); a unique revision identifier of 0
.
The element also stores the optional information about the revision: the word text
was inserted by Joe Smith
on March 31, 2006 at 12:50pm. ]
Within a WordprocessingML document, the following types of revisions may be used to track the changes to a document:
Insertions
Deletions
Moves
Changes to run/paragraph/table/numbering/section properties
Changes to custom XML markup