<moveFromRangeEnd> (Move Source Location Container - End)

This element specifies the end of a region whose move source contents are part of a single named move. When a move source is stored as a revision in a WordprocessingML document, two pieces of information must be stored about that move source:

  • A set of pieces of content which were moved - both inline-level content (§ and paragraphs (§

  • A move source container (or "bookmark") which specifies that all content within it which marked as a move source is part of a single named move. The name attribute on the move container links a group of move source content with the corresponding group of move destination content.

This element defines the end of the latter piece of the move revision data - the container. The @id attribute on this element shall be used to link this element with the corresponding start of a move source container in the document.

The following restrictions are applied to the use of this element:

  • If this element occurs without a corresponding <moveFromRangeStart> element (§ with a matching @id attribute value, then it shall be ignored and no move source container exists

  • If this element and its paired end occur without a matching move destination container (§; §, then moved content in this region shall be treated as if it was deleted

  • If multiple move source containers surround the same text, the last valid container (determined by the location of the container start elements, in document order) should be the container associated with that text.


This document has the sentence Some moved text. moved to the first sentence in the document. This revision is represented using the following WordprocessingML:

  <w:moveToRangeStart w:id="0"  w:name="move1" />
  <w:moveTo w:id="1"  >
      <w:t>Some moved text.</w:t>
  <w:moveToRangeEnd w:id="0" />
    <w:t xml:space="preserve">Some text.</w:t>
  <w:moveFromRangeStart w:id="2"  w:name="move1" />
  <w:moveFrom w:id="3"  >
      <w:t>Some moved text.</w:t>
  <w:moveFromRangeEnd w:id="2" />

The <moveFromRangeEnd> element specifies the end of the move source container within which all moved content is part of the move named move1. ]

Parent Elements

<body>2.2.2); <comment>; <customXml>; <customXml>; <customXml>; <customXml>; <deg>; <del>; <den>; <docPartBody>2.12.6); <e>; <endnote>2.11.2); <fldSimple>2.16.21); <fName>; <footnote>2.11.10); <ftr>2.10.3); <hdr>2.10.4); <hyperlink>2.16.24); <ins>; <lim>; <moveFrom>; <moveTo>; <num>; <oMath>; <p>; <rt>; <rubyBase>; <sdtContent>; <sdtContent>; <sdtContent>; <sdtContent>; <smartTag>; <sub>; <sup>; <tbl>2.4.36); <tc>2.4.62); <tr>2.4.75); <txbxContent>



<displacedByCustomXml> (Annotation Marker Relocated For Custom XML Markup)

Specifies that the parent annotation's placement shall be directly linked with the location of the physical presentation of a custom XML element in the document. This element only has an effect when the custom XML element is block-level (i.e. surrounds an entire paragraph), as in this scenario the logical and physical placement of the annotation and custom XML element may differ.

Specifically, in this case, the custom XML is presented *around* the block-level object it encloses (the paragraph, table, table row, or table cell), but is physically represented within that same object (i.e. within the paragraph, table, table row or table cell). This requirement stems from the fact that there is no location for the location of the annotation within the document at its logical location (around a table, for example).

If this element is omitted, then the annotation shall be anchored inside of all block-level custom XML elements in the paragraph. If this element is present, but no block-level custom XML tag is located at the position it specifies (before or after), then it shall be ignored.

Since all three of these items are around the entire paragraph, they are stored outside of the paragraph. However, in order to ensure that their relative positions are stored correctly, any annotation which shall be displaced by the physical custom XML element specifies this information, resulting in the following WordprocessingML:

<w:commentRangeStart w:id="0" />
<w:commentRangeStart w:id="1" w:displaced byCustomXml="next" />
<w:customXml w:element="spec"  />

The @displacedByCustomXml attribute specifies that even though all three of these items are around the paragraph and will be moved inside the paragraph to be represented physically, the comment with ID 0 shall be inside the custom XML, but the comment with ID 1 shall be displaced to stay outside of the relative location of the next custom XML element (the spec element). ]

The possible values for this attribute are defined by the ST_DisplacedByCustomXml simple type (§2.18.17).

<id> (Annotation Identifier)

Specifies a unique identifier for an annotation within a WordprocessingML document. The restrictions on the @id attribute, if any, are defined by the parent XML element.

If this attribute is omitted, then the document is non-conformant.

<w:… w:id="1"  ></w:…>

The <id> attribute specifies that the ID of the current annotation is 1. This value is used to uniquely identify this annotation within the document content. ]

The possible values for this attribute are defined by the ST_DecimalNumber simple type (§2.18.16).

The following XML Schema fragment defines the contents of this element:

<complexType name="CT_MarkupRange">
	<extension base="CT_Markup">
	<attribute name="displacedByCustomXml" type="ST_DisplacedByCustomXml" use="optional"/>