extLst/ext Syntax

The <extLst> and <ext> construct can be placed only at specific locations within the OOXML schemas. Its syntax is as below:

An <extLst> is a list of extension blocks that are placed one after the other. Each extension block has an @uri attribute, which serves as an identifier to indicate the kind of extension that has been placed here. Upon encountering an extension block, a processing consumer, will determine whether it knows how to process extensions matching that attribute. If the consumer knows how to process such an extension, the markup contained within that extension block is processed. Otherwise, the extension block is preserved so long as the underlying structure being extended by the <extLst> has not been deleted.

There is no limit to the number of <ext> extension block constructs. The order of extension blocks can be arbitrary.

An optional modified attribute, @mod, is available on <extLst>. This attribute is set to true whenever an edit has occurred at the extended location. Its presence is to aid up-level clients that receive modified documents that have been edited in down-level consumers/producers.