Ignorable Attribute
The @Ignorable
attribute value contains a whitespace-delimited list of namespace prefixes, where each namespace prefix identifies an ignorable namespace. During processing, if a markup consumer encounters an element or attribute in a non-understood and ignorable namespace, the markup consumer shall treat that element or attribute as if it did not exist and shall not generate an error.
Markup consumers should treat elements and attributes from non-ignorable and non-understood namespaces as errors.
If an @Ignorable
attribute references an understood namespace, its presence shall not affect the processing of elements and attributes from the understood namespace, regardless of whether or not those elements and attributes are recognized by the markup consumer.
The presence of an @Ignorable
attribute shall reset a markup consumer’s content-processing and preservation behavior for all elements and attributes in the namespaces referenced by the @Ignorable
attribute value. Once reset, by default the markup consumer shall ignore all content contained by the ignored element and markup editors shall not preserve ignored attributes and elements. This default behavior shall be overridden by the presence of any @ProcessContent
, @PreserveAttributes
, and @PreserveElements
attributes on the element with the @Ignorable
attribute.
The value of the @Ignorable
attribute can be an empty or blank string. When a markup consumer encounters such a value, it shall proceed as if the @Ignorable
attribute was not present.
The example namespace with the name http://schemas.openxmlformats.org/Circles/v1
defines a Version 1 element, <Circle>
, in its initial version. The subsequent Version 2 of the markup specification introduces the @Opacity
attribute in a new Version 2 namespace. The subsequent Version 3 of the markup specification introduces the @Luminance
attribute in a Version 3 namespace. The markup is loadable by markup consumers conforming to any one of these markup specification versions. The @PreserveAttributes
attribute specifies that the @v3:Luminance
attribute should be preserved during editing, even when the markup editor does not understand the @v3:Luminance
attribute.
For a Version 1 markup consumer, @Opacity
and @Luminance
are ignored attributes.
For a Version 2 markup consumer, only @Luminance
is an ignored attribute.
For a Version 3 markup consumer and beyond, none of the attributes are ignored.
<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" xmlns:v3="http://schemas.openxmlformats.org/Circles/v3" mc:Ignorable="v2 v3" mc:PreserveAttributes="v3:Luminance"> <Circle Center="0,0" Radius="20" Color="Blue" v2:Opacity="0.5" v3:Luminance="13" /> <Circle Center="25,0" Radius="20" Color="Black" v2:Opacity="0.5" v3:Luminance="13" /> <Circle Center="50,0" Radius="20" Color="Red" v2:Opacity="0.5" v3:Luminance="13" /> <Circle Center="13,0" Radius="20" Color="Yellow" v2:Opacity="0.5" v3:Luminance="13" /> <Circle Center="38,0" Radius="20" Color="Green" v2:Opacity="0.5" v3:Luminance="13" /> </Circles>
The following figure shows an example possible rendering of the markup above.
A markup consumer that does not understand the namespace with the name http://schemas.openxmlformats.org/MyExtension/v1
shall ignore both the <a:IgnoreMe>
and <b:IgnoreMeToo>
elements. Although the two elements use different namespace prefixes, they draw from the same ignorable namespace.
<Circles xmlns="http://schemas.openxmlformats.org/Circles/v1" xmlns:mc="http://schemas.openxmlformats.org/markup- compatibility/2006" xmlns:a="http://schemas.openxmlformats.org/MyExtension/v1" xmlns:b="http://schemas.openxmlformats.org/MyExtension/v1" mc:Ignorable="a"> <a:IgnoreMe /> <b:IgnoreMeToo /> </Circles>