ProcessContent Attribute
The @ProcessContent
attribute value contains a whitespace-delimited list of element-qualified names identifying the expanded names of elements whose content shall be processed, even if the elements themselves are ignored. In any qualified name in the list, the wildcard character “*” can replace the local name to indicate that the content all elements in the namespace shall be processed.
A markup consumer that encounters an ignored element whose expanded name matches the expanded name of an element identified in the @ProcessContent
attribute value, the markup consumer shall consider that element to be a processed element, regardless of whether or not the element’s qualified name matches the qualified name specified in the @ProcessContent
attribute value.
A markup consumer that encounters a processed element shall process the contents of that element as if the contents were directly embedded within the parent element of the ignored element.
The @ProcessContent
attribute value shall not reference any element name that does not belong to a namespace that is identified by the @Ignorable
attribute of the same element.
The value of the @ProcessContent
attribute can be an empty or blank string. When a markup consumer encounters such a value, it shall proceed as if the @ProcessContent
attribute was not provided.
Markup producers shall not generate an element that has an @xml:lang
or @xml:space
attribute if that element is identified by a @ProcessContent
attribute value. Markup consumers that ignore an element that has an @xml:lang
or @xml:space
attribute and is also identified by a @ProcessContent
attribute value shall generate an error. Markup consumers that encounter a non-ignored element that has an @xml:lang
or @xml:space
attribute and is also identified by a @ProcessContent
attribute value might generate an error.
A Version 1 markup consumer ignores the blue, black, and red circles, but does render the yellow and green circles.
<Circles xmlns="http://schemas.openxmlformats.org/Circles/v1" xmlns:mc="http://schemas.openxmlformats.org/markup- compatibility/2006" xmlns:v2="http://schemas.openxmlformats.org/Circles/v2" mc:Ignorable="v2" mc:ProcessContent="v2:Blink" > <v2:Watermark Opacity="v0.1"> <Circle Center="0,0" Radius="20" Color="Blue" /> <Circle Center="25,0" Radius="20" Color="Black" /> <Circle Center="50,0" Radius="20" Color="Red" /> </v2:Watermark> <v2:Blink> <Circle Center="13,0" Radius="20" Color="Yellow" /> <Circle Center="38,0" Radius="20" Color="Green" /> </v2:Blink> </Circles>
The Version 1 markup consumer, unaware of Version 2 markup, renders the above markup as if it had processed the following markup:
<Circles xmlns="http://schemas.openxmlformats.org/Circles/v1" > <Circle Center="13,0" Radius="20" Color="Yellow" /> <Circle Center="38,0" Radius="20" Color="Green" /> </Circles>