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.

Note:

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.

Figure: 9–1. Rings

example:

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>