ISO/IEC 29500-3:2011
(Main)Information technology — Document description and processing languages — Office Open XML File Formats — Part 3: Markup Compatibility and Extensibility
Information technology — Document description and processing languages — Office Open XML File Formats — Part 3: Markup Compatibility and Extensibility
ISO/IEC 29500-3:2008 defines a general-purpose mechanism to extend an XML vocabulary.
Technologies de l'information — Description des documents et langages de traitement — Formats de fichier "Office Open XML" — Partie 3: Compatibilité et extensibilité du balisage
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 29500-3
Second edition
2011-08-15
Information technology — Document
description and processing languages —
Office Open XML File Formats —
Part 3:
Markup Compatibility and Extensibility
Technologies de l'information — Description des documents et
langages de traitement — Formats de fichier "Office Open XML" —
Partie 3: Compatibilité et extensibilité du balisage
Reference number
ISO/IEC 29500-3:2011(E)
©
ISO/IEC 2011
---------------------- Page: 1 ----------------------
ISO/IEC 29500-3:2011(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2011
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56 CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii © ISO/IEC 2011 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 29500-3:2011(E)
Table of Contents
Foreword . iv
Introduction .v
1. Scope . 1
2. Conformance . 2
2.1 Document Conformance . 2
2.2 Application Conformance . 2
3. Normative References . 3
4. Terms and Definitions . 4
5. Notational Conventions . 6
6. Acronyms and Abbreviations . 7
7. General Description . 8
8. Overview . 9
9. Markup Compatibility Fundamentals.10
9.1 Core Concepts . 10
9.2 Markup Compatibility Namespace . 11
10. Markup Compatibility Attributes and Elements .12
10.1 Compatibility-Rule Attributes . 13
10.1.1 Ignorable Attribute . 14
10.1.2 ProcessContent Attribute . 16
10.1.3 PreserveElements and PreserveAttributes Attributes . 18
10.1.4 MustUnderstand Attribute . 20
10.2 Alternate-Content Elements . 21
10.2.1 AlternateContent Element . 21
10.2.2 Choice Element . 22
10.2.3 Fallback Element . 23
10.2.4 Alternate-Content Examples . 23
11. Namespace Subsumption .26
11.1 The Subsumption Process . 26
11.2 Special Considerations for Attributes . 26
12. Application-Defined Extension Elements .29
13. Preprocessing Model for Markup Consumption .31
Annex A. (informative) Validation Using NVDL .35
A.1 Validation Against Requirements of this Part of ISO/IEC 29500 . 35
A.2 Validation Against the Combination of Office Open XML and Extensions . 36
Annex B. (informative) Index .40
©ISO/IEC 2011 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC 29500-3:2011(E)
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are members of
ISO or IEC participate in the development of International Standards through technical committees established
by the respective organization to deal with particular fields of technical activity. ISO and IEC technical
committees collaborate in fields of mutual interest. Other international organizations, governmental and non-
governmental, in liaison with ISO and IEC, also take part in the work. In the field of information technology, ISO
and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. Draft International
Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as
an International Standard requires approval by at least 75 % of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent
rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
ISO/IEC 29500-3 was prepared by ISO/IEC JTC 1, Information technology, Subcommittee SC 34, Document
description and processing languages.
This second edition cancels and replaces the first edition (ISO/IEC 29500-3:2008), which has been technically
revised by incorporation of the Technical Corrigendum ISO/IEC 29500-3:2008/Cor.1:2010.
ISO/IEC 29500 consists of the following parts, under the general title Information technology — Document
description and processing languages — Office Open XML File Formats:
Part 1: Fundamentals and Markup Language Reference
Part 2: Open Packaging Conventions
Part 3: Markup Compatibility and Extensibility
Part 4: Transitional Migration Features
Annexes A and B are for information only.
iv ©ISO/IEC 2011 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 29500-3:2011(E)
Introduction
ISO/IEC 29500 specifies a family of XML schemas, collectively called Office Open XML, which define the XML
vocabularies for word-processing, spreadsheet, and presentation documents, as well as the packaging of
documents that conform to these schemas.
The goal is to enable the implementation of the Office Open XML formats by the widest set of tools and
platforms, fostering interoperability across office productivity applications and line-of-business systems, as
well as to support and strengthen document archival and preservation, all in a way that is fully compatible with
the existing corpus of Microsoft Office documents.
The following organizations have participated in the creation of ISO/IEC 29500 and their contributions are
gratefully acknowledged:
Apple, Barclays Capital, BP, The British Library, Essilor, Intel, Microsoft, NextPage, Novell, Statoil, Toshiba, and
the United States Library of Congress
©ISO/IEC 2011 – All rights reserved v
---------------------- Page: 5 ----------------------
INTERNATIONAL STANDARD ISO/IEC 29500-3:2011(E)
Information technology — Document description and
processing languages — Office Open XML File Formats
Part 3:
Markup Compatibility and Extensibility
1. Scope
This Part of ISO/IEC 29500 describes a set of conventions that are used by Office Open XML documents to
clearly mark elements and attributes introduced by future versions or extensions of Office Open XML
documents, while providing a method by which consumers can obtain a baseline version of the Office Open
XML document (a version without extensions) for interoperability.
©ISO/IEC 2011 – All rights reserved 1
---------------------- Page: 6 ----------------------
ISO/IEC 29500-3:2011(E)
2. Conformance
The text in this Part of ISO/IEC 29500 is divided into normative and informative categories. Unless documented
otherwise, any feature shall be implemented as specified by the normative text describing that feature in this
Part of ISO/IEC 29500. Text marked informative (using the mechanisms described in §7) is for information
purposes only. Unless stated otherwise, all text is normative.
Use of the word “shall” indicates required behavior.
Any behavior that is not explicitly specified by this Part of ISO/IEC 29500 is implicitly unspecified (Part 1, §4).
Each Part of this multi-part standard has its own conformance clause. The term conformance class is used to
disambiguate conformance within different Parts of this multi-part standard. This Part of ISO/IEC 29500 has
only one conformance class, MCE (that is, Markup Compatibility and Extensibility). As such, conformance to
that class implies conformance to the whole Part.
2.1 Document Conformance
A document has conformance class MCE if it satisfies the syntax constraints on elements and attributes
defined in this Part of ISO/IEC 29500. Document conformance to this Part of ISO/IEC 29500 is purely syntactic.
2.2 Application Conformance
An application implementing this Part of ISO/IEC 29500 has conformance class MCE if any one of the following
is true:
The application is a markup consumer that does not reject any documents of conformance class MCE;
or
The application is a markup producer that is able to produce documents of conformance class MCE; or
The application is a markup editor that does not reject any documents of conformance class MCE, and
is able to produce documents of conformance class MCE.
Application conformance to this Part of ISO/IEC 29500 is purely syntactic.
[Note: Application conformance to this Part of ISO/IEC 29500 cannot be based on semantics, since the
semantics depend on the choice of application-defined extension elements. end note]
2 ©ISO/IEC 2011 – All rights reserved
---------------------- Page: 7 ----------------------
ISO/IEC 29500-3:2011(E)
3. Normative References
The following referenced documents are indispensable for the application of this document. For dated
references, only the edition cited applies. For undated references, the latest edition of the referenced
document (including any amendments) applies.
ISO/IEC 2382-1:1993, Information technology — Vocabulary — Part 1: Fundamental terms.
ISO/IEC 10646, Information technology — Universal Coded Character Set (UCS).
ISO/IEC 19757-4:2006, Information technology — Document Schema Definition Languages (DSDL) — Part 4:
Namespace-based Validation Dispatching Language (NVDL).
RFC 3986 Uniform Resource Identifier (URI): Generic Syntax, The Internet Society, Berners-Lee, T., R. Fielding,
and L. Masinter, 2005, http://www.ietf.org/rfc/rfc3986.txt.
RFC 4234 Augmented BNF for Syntax Specifications: ABNF, The Internet Society, Crocker, D., P. Overell, 2005,
http://www.ietf.org/rfc/rfc4234.txt
The Unicode Consortium. The Unicode Standard, http://www.unicode.org/standard/standard.html.
XML, Tim Bray, Jean Paoli, Eve Maler, C. M. Sperberg-McQueen, and François Yergeau (editors). Extensible
Markup Language (XML) 1.0, Fourth Edition.1 World Wide Web Consortium. 2006.
http://www.w3.org/TR/2006/REC-xml-20060816/ [Implementers should be aware that a further correction of
the normative reference to XML to refer to the 5th Edition will be necessary when the related Reference
Specifications to which this International Standard also makes normative reference and which also depend
upon XML, such as XSLT, XML Namespaces and XML Base, are all aligned with the 5th Edition.]
XML Base, Marsh, Jonathan. XML Base. World Wide Web Consortium. 2001. http://www.w3.org/TR/2001/REC-
xmlbase-20010627/
XML Namespaces, Tim Bray, Dave Hollander, Andrew Layman, and Richard Tobin (editors). Namespaces in XML
1.0 (Third Edition), 8 December 2009. World Wide Web Consortium. http://www.w3.org/TR/2009/REC-xml-
names-20091208/
XML Schema Part 0: Primer (Second Edition), W3C Recommendation 28 October 2004,
http://www.w3.org/TR/xmlschema-0/
XML Schema Part 1: Structures (Second Edition), W3C Recommendation 28 October 2004,
http://www.w3.org/TR/xmlschema-1/
XML Schema Part 2: Datatypes (Second Edition), W3C Recommendation 28 October 2004,
http://www.w3.org/TR/xmlschema-2/
©ISO/IEC 2011 – All rights reserved 3
---------------------- Page: 8 ----------------------
ISO/IEC 29500-3:2011(E)
4. Terms and Definitions
For the purposes of this document, the following terms and definitions apply. Other terms are defined where
they appear in italics typeface. Terms not explicitly defined in this Part of ISO/IEC 29500 are not to be
presumed to refer implicitly to similar terms defined elsewhere.
Throughout this Part of ISO/IEC 29500, the terms namespace declaration, namespace name, qualified name,
expanded name, prefixed name, unprefixed name, and local name shall have the meanings as defined in the
W3C Recommendation, “Namespaces in XML.”
alternate content — A set of alternatives of XML markup and character data, of which no more than one shall
be processed by a markup consumer. A markup consumer chooses from among the alternatives based upon
its set of understood namespaces.
compatibility-rule attribute — An XML attribute described in this Part of ISO/IEC 29500 that expresses rules
governing markup consumers’ behavior when encountering XML elements and attributes from non-
understood namespaces.
ignore — To disregard the presence of an element or attribute, processing the markup as if that element or
attribute did not exist.
markup consumer — A tool that can read and parse a markup document and further conforms to the
requirements of a markup specification. [Note: Because a markup consumer might be implemented as a
markup pre-processor, this term is not coalesced with the definition for a consumer, which would process the
XML document output by the markup pre-processor. end note]
markup document — An XML document that conforms to the requirements of a markup specification.
markup editor — A tool that acts as a markup consumer in reading a markup document, makes changes to
that markup and character data, and acts as the producer of the modified markup and character data.
markup preprocessor — A software module, designed for use in the implementation of markup consumers,
that follows the rules of this Part of ISO/IEC 29500 to remove or replace all elements and attributes from the
Markup Compatibility namespace, all elements and attributes from ignorable non-understood namespaces,
and all elements and attributes from subsumed namespaces.
markup producer — A tool that can generate a markup document, and conforms to a markup specification.
markup specification — An XML-based format definition that incorporates all of the namespaces, elements,
attributes, and requirements specified in this Part of ISO/IEC 29500.
namespace, ignorable — A namespace, identified in markup, whose elements and attributes shall be ignored
by a markup consumer that does not understand that namespace.
4 ©ISO/IEC 2011 – All rights reserved
---------------------- Page: 9 ----------------------
ISO/IEC 29500-3:2011(E)
namespace, understood — An XML namespace containing any recognized XML elements or attributes.
preserve —To retain an ignored element or attribute during the course of editing.
qualified attribute name — An attribute's qualified name.
qualified element name — An element's qualified name.
recognize — To identify that an XML element, XML attribute, or attribute-value is defined in this Part of
ISO/IEC 29500 or in the markup specification against which the containing XML document purports to be
conformant.
©ISO/IEC 2011 – All rights reserved 5
---------------------- Page: 10 ----------------------
ISO/IEC 29500-3:2011(E)
5. Notational Conventions
The following typographical conventions are used in ISO/IEC 29500:
1. The first occurrence of a new term is written in italics. [Example: The text in ISO/IEC 29500 is divided
into normative and informative categories. end example]
2. In each definition of a term in §4 (Terms and Definitions), the term is written in bold. [Example:
behavior — External appearance or action. end example]
3. The tag name of an XML element is written using an Element style. [Example: The bookmarkStart and
bookmarkEnd elements specify … end example]
4. The name of an XML attribute is written using an Attribute style. [Example: The dropCap attribute
specifies … end example]
5. The value of an XML attribute is written using a constant-width style. [Example: The attribute value of
auto specifies … end example]
6. The qualified or unqualified name of a simple type, complex type, or base datatype is written using a
Type style.[Example: The possible values for this attribute are defined by the ST_HexColor simple
type. end example]
6 ©ISO/IEC 2011 – All rights reserved
---------------------- Page: 11 ----------------------
ISO/IEC 29500-3:2011(E)
6. Acronyms and Abbreviations
This clause is informative
The following acronyms and abbreviations are used throughout this Part of ISO/IEC 29500
IEC — the International Electrotechnical Commission
ISO — the International Organization for Standardization
W3C — World Wide Web Consortium
End of informative text
©ISO/IEC 2011 – All rights reserved 7
---------------------- Page: 12 ----------------------
ISO/IEC 29500-3:2011(E)
7. General Description
This Part of ISO/IEC 29500 is divided into the following subdivisions:
1. Front matter (clauses 1–7);
2. Overview and introductory material (clause 8–9);
3. Main body (clauses 10–13);
4. Annexes
Examples are provided to illustrate possible forms of the constructions described. References are used to refer
to related clauses. Notes are provided to give advice or guidance to implementers or programmers.
The following form the normative pieces of this Part of ISO/IEC 29500:
Clauses 1–5, 7, and 9–12
The following form the informative pieces of this Part of ISO/IEC 29500:
Introduction
Clause 6, 8, and 13
All annexes
All notes and examples
Except for whole clauses or annexes that are identified as being informative, informative text that is contained
within normative text is indicated in the following ways:
1. [Example: code fragment, possibly with some narrative … end example]
2. [Note: narrative … end note]
3. [Rationale: narrative … end rationale]
4. [Guidance: narrative … end guidance]
8 ©ISO/IEC 2011 – All rights reserved
---------------------- Page: 13 ----------------------
ISO/IEC 29500-3:2011(E)
8. Overview
This clause is informative
This Part of ISO/IEC 29500 describes a set of XML elements and attributes whose purpose is to collectively
enable producers to explicitly guide consumers in their handling of any XML elements and attributes not
understood by the consumer.
These elements and attributes are intended to enable the creation of future versions of and extensions to
ISO/IEC 29500, while enabling these desirable compatibility goals:
A markup producer can produce markup documents that exploit new features defined by versions and
extensions, yet remain interoperable with markup consumers that are unaware of those versions and
extensions.
For any such markup document, a markup consumer whose implementation is aware of the exploited
versions and extensions can deliver functionality that is enhanced by the markup document's use of
those versions and extensions.
For any such markup document, the markup producer can enable and precisely control graceful
degradation that might occur when the markup document is processed by a markup consumer that is
unaware of the exploited versions and extensions.
End of informative text
©ISO/IEC 2011 – All rights reserved 9
---------------------- Page: 14 ----------------------
ISO/IEC 29500-3:2011(E)
9. Markup Compatibility Fundamentals
9.1 Core Concepts
Any XML-based document specification can use the markup language described in this Part of ISO/IEC 29500 as
the basis of its compatibility with previous and future specification revisions, and to enable the creation of
independent extensions of its specification.
This Part of ISO/IEC 29500 is dependent on XML namespace names, expressed as URIs. A markup specification
defines a set of elements and attributes within one or more namespaces. A characteristic of a markup
consumer is that it can recognize the elements and attributes within understood namespaces, including those
containing elements and attributes defined in the markup specification. Markup consumers shall treat all
recognized elements and attributes of any understood namespace according to the requirements of the
markup specifications defining those elements or attributes. A markup specification might require that the
presence of unrecognized elements or attributes in an understood namespace be treated as an error
condition; however, markup consumers shall always treat the presence of an unrecognized element or
attribute from the Markup Compatibility namespace as an error condition. If a markup consumer encounters
an element or attribute from a non-understood namespace, the markup consumer shall treat the presence of
that element or attribute as an error condition, unless the markup producer has embedded in the markup
document explicit Markup Compatibility elements or attributes that override that behavior.
Within a markup document, a markup producer might use Markup Compatibility attributes to identify
ignorable namespaces. Markup consumers shall ignore elements and attributes from namespaces that are
both non-understood and ignorable, and shall not treat their presence as errors. A markup producer can
indicate to the markup consumer whether the content of an ignored element shall be disregarded together
with the ignored element, or if the content should be processed as if it was content of the ignored element’s
parent, located in the same contextual position as the ignored element.
Within a markup document, a markup producer might also use Markup Compatibility attributes to suggest to a
markup editor that the editor attempt to preserve some ignored elements or attributes. The markup editor can
attempt to persist these ignored elements and attributes when saving a markup document, despite the
editor’s inability to recognize the purpose of these ignored elements and attributes.
A markup producer, aware of the existence of markup consumers with overlapping but different sets of
understood namespaces, might choose to include in a markup document alternate content regions, each
holding a set of markup alternatives for use by different markup consumers. A markup consumer shall use
rules embedded in the markup document by the markup producer to select no more than one of these
alternatives for normal processing, and shall disregard all other alternatives.
Future versions of markup specifications shall specify new namespaces for any markup that is enhanced or
modified by the new version, which a markup consumer of that version of the markup specification would
10 ©ISO/IEC 2011 – All rights reserved
---------------------- Page: 15 ----------------------
ISO/IEC 29500-3:2011(E)
include as an understood namespace. Some of the namespaces introduced in the new markup specification
might each subsume one of the previous version’s understood namespaces. A new understood namespace
subsumes a previously understood namespace if it includes all of the elements, attributes, and attribute values
of the previously-understood namespace and uses identically the element local names, prefixed and
unprefixed attribute names, attribute values, and element contents. Regardless of whether a new namespace
subsumes a previously defined namespace, markup consumers based on a new version of a markup
specification shall support all understood namespaces of the previous version unless the new version makes an
explicit statement to the contrary.
This Part of ISO/IEC 29500 can be implemented using a preprocessing architecture in the form of a software
module called a markup preprocessor. A markup preprocessor can use the Markup Compatibility elements and
attributes to produce output that is free of all ignorable non-understood content, all Markup Compatibility
elements and attributes, and all elements and attributes in subsumed namespaces.
Markup consumers should report errors when processing non-conforming documents.
9.2 Markup Compatibility Namespace
The following is the Markup Compatibility namespace name:
http://schemas.openxmlformats.org/markup-compatibility/2006
The Markup Compatibility namespace includes XML elements and attributes that markup producers can use to
express to markup consumers how they shall respond to elements and attributes encountered that belong to
non-understood namespaces. The elements and attributes defined in this Part of ISO/IEC 29500 are contained
in the Markup Compatibility namespace. This namespace contains only those elements and attributes defined
in this Part of ISO/IEC 29500.
©ISO/IEC 2011 – All rights reserved 11
---------------------- Page: 16 ----------------------
ISO/IEC 29500-3:2011(E)
10. Markup Compatibility Attributes and
Elements
This Part of ISO/IEC 29500 defines attributes to express compatibility rules, and elements to specify alternate
content.
[Note: Whitespace characters that can appear in attribute values, as defined in the XML specification, are
described in the following table:
Table 10–1. Whitespace characters in attribute values
Character Syntax
space #x20
tab #x9
line feed #xA
carriage return #xD
end note]
Whitespace characters that appear in values of attributes defined in this Part of ISO/IEC 29500 shall be
normalized by markup consumers before processing markup compatibility elements and attributes, as follows:
1. Replace each tab, line feed, and carriage return with a space.
2. Collapse contiguous sequences of spaces into a single space.
3. Remove leading and trailing spaces.
[Note: The following table, and Table 10–3, summarize the Markup Compatibility attributes and elements,
respectively, which are further described in the subclauses that follow.
Table 10–2. Compatibility-rule attributes
Name Description
Ignorable A whitespace-delimited list of namespace prefixes identifying a set of
namespaces whose elements and attributes should be silently ignored by
markup consumers that do not understand the namespace of the element or
attribute in question.
ProcessContent A whitespace-delimited list of qualified element 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 of all
elements in the namespace shall be processed.
12 ©ISO/IEC 2011 – All rights reserved
---------------------- Page: 17 ----------------------
ISO/IEC 29500-3:2011(E)
Name Description
PreserveElements A whitespace-delimited list of element qualified names identifying the
expanded names of elements t
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.