PreserveElements Attribute

The @PreserveElements attribute value contains a whitespace-delimited list of element qualified names identifying the expanded names of elements that a markup producer suggests for preservation by markup editors, even if the elements themselves are ignored. In any qualified name in the list, the wildcard character “*” can replace the local name to suggest that all elements in the namespace can be preserved.

If a markup consumer encounters an ignored element whose expanded name matches the expanded name of an element identified in the @PreserveElements attribute value, the markup consumer shall consider that element to be a candidate for preservation, regardless of whether or not the element’s qualified name matches the qualified name specified in the @PreserveElements attribute value.

When an element is ignored and preserved, all of its unprefixed attributes shall also be preserved along with any preserved attributes identified in a @PreserveAttributes attribute value.

The @PreserveElements 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 @PreserveElements attribute can be an empty or blank string. When a markup consumer encounters such a value, it shall proceed as if the @PreserveElements attribute was not provided.