Operation "Insertion of a paragraph"

The insertion of a paragraph into a document means the addition of an empty paragraph element [A] inclusive its mandatory attributes and (for convenience) a selection of its optional attributes. According [A] a paragraph element is an ODF <text:p> element or an ODF <text:h> element.

A paragraph can be added into various areas of a document:

The following information is needed to represent such a change to a document:

The change for an insertion of an ODF component is represented by change tracking element <change:insertion> [4].

The type of the ODF component is specified by change tracking attribute change:component [5] with value "paragraph" [6].

The position of the ODF component is specified by change tracking attributes change:area, change:pos [7]. Attribute change:area specifies the area in which the change has occurred. Attributes change:start and change:end specifies the path to the location inside the specified area at which the ODF component has to be added. The path value identifies the location by giving the child numbers in the ODF components tree hierarchy inside the area [8]. In general the path identifies the ODF component whose location the to be added ODF component will take in the document. This is not the case when the to be added ODF component will be the last item at the given ODF component tree hierarchy. Then the path identifies the location behind the existing last ODF component at the given ODF component hierarchy.

change:component, change:area and change:pos are attributes of change tracking element <change:insertion>.

A paragraph element inclusive attributes is the complete to be added ODF component. It is given as a child element of change tracking element <change:insertion>.

Inside an ODF document this operation is used to change-track the deletion of a paragraph to the document. To change-track the deletion of a paragraph from the document an operation "Insertion of a paragraph" is stored in the change track stack [9].


Example for change:pos:

change:pos="/3/2/4" identifies the ODF component which is the fourth ODF component inside the second ODF component inside the third ODF component of the given area

<text:p> ... </text:p>
<text:p> ... </text:p>
<text:list>
  <text:list-item> ... </text:list-item>
  <text:list-item>
    <text:p> ... </text:p>
    <text:p> ... </text:p>
    <text:p> ... </text:p>
    <text:p> ... </text:p> <--- This is ODF component change:pos="/3/2/4"
    <text:p> ... </text:p>
  </text:list-item>
  <text:list-item> ... </text:list-item>
  <text:list-item> ... </text:list-item>
</text:list>
<text:p> ... </text:p>


Notes:


References:


Counting problematic:

Some ODF elements (together with certain sub structure) will become ODF components, some not.

Will there be ODF elements which do not become an ODF component be "counted" regarding the path.

Will <text:soft-page-break> become an ODF component?

Will <text:soft-page-break> be "counted"?

Will <text:sequence-decls> become an ODF component as the user can add a certain sequence variable whose addition might be able to be change tracked?

Insertion of a paragraph (last edited 2013-03-27 12:20:59 by orwittmann)