Information technology — Document description and processing languages — Office Open XML File Formats — Part 3: Markup Compatibility and Extensibility

This Part of ISO/IEC 29500 defines a set of conventions for forward compatibility of markup specifications, applicable not only to Office Open XML specifications as described in Parts 1 and 4 of this Standard, but also to other markup specifications. These conventions allow XML documents created by applications of later versions or extensions to be handled by applications of earlier versions.

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

Status
Published
Publication Date
15-Jun-2015
Current Stage
9093 - International Standard confirmed
Completion Date
21-Sep-2020
Ref Project

Relations

Buy Standard

Standard
ISO/IEC 29500-3:2015 - Information technology -- Document description and processing languages -- Office Open XML File Formats
English language
33 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)

INTERNATIONAL ISO/IEC
STANDARD 29500-3
Fourth edition
2015-07-01
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:2015(E)
©
ISO/IEC 2015

---------------------- Page: 1 ----------------------
ISO/IEC 29500-3:2015(E)

COPYRIGHT PROTECTED DOCUMENT


©  ISO/IEC 2015
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form or by any
means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission.
Permission can be requested 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 2015 – All rights reserved

---------------------- Page: 2 ----------------------
ISO/IEC 29500-3:2015(E)

Contents
Foreword .iii
Introduction .v
1 Scope . 1
2 Normative References . 2
3 Terms and Definitions . 3
4 Notational Conventions . 4
5 General Description . 5
6 Overview . 6
7 MCE Elements and Attributes . 8
7.1 Introduction . 8
7.2 Ignorable Attribute . 8
7.3 ProcessContent Attribute. 9
7.4 MustUnderstand Attribute . 9
7.5 AlternateContent Element . 10
7.6 Choice Element . 11
7.7 Fallback Element . 11
8 Application-Defined Extension Elements .13
9 Semantic Definitions and Reference Processing Model .15
9.1 Overview . 15
9.2 Step 1: Processing the Ignorable and ProcessContent Attributes . 16
9.3 Step 2: Processing the AlternateContent, Choice and Fallback Elements . 17
9.4 Step 3: Processing the MustUnderstand Attribute and Creating the Output Document . 18
Annex A (informative) Examples .22
A.1 Syntactic Examples . 22
A.1.1 General . 22
A.1.2 Ignorable Attribute: Multiple Prefixes Bound to a Namespace . 22
A.1.3 Ignorable Attribute: Non-conformant Use . 22
A.1.4 ProcessContent Attribute: Multiple Prefixes Bound to a Namespace . 23
A.1.5 ProcessContent Attribute: Non-conformant Use . 23
A.1.6 MustUnderstand Attribute: Non-conformant Use . 23
A.1.7 AlternateContent Element: Future Extensibility . 24
A.2 Semantic Examples . 24
A.2.1 General . 24
A.2.2 Ignorable Attribute . 24
A.2.3 Ignorable and ProcessContent Attributes. 25
A.2.4 Non-Ignorable and Non-Understood Namespace . 27
A.2.5 MustUnderstand Attribute . 27
©ISO/IEC 2015 – All rights reserved i

---------------------- Page: 3 ----------------------
ISO/IEC 29500-3:2015(E)

A.2.6 AlternateContent Element . 28
A.2.7 Ignorable Content Inside Application-Defined Extension Elements . 29
Annex B (informative) Validation Using NVDL .31
Bibliography .33

ii ©ISO/IEC 2015 – All rights reserved

---------------------- Page: 4 ----------------------
ISO/IEC 29500-3:2015(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 standard 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 fourth edition cancels and replaces the third edition (ISO/IEC 29500-3:2012).
The major changes from the previous edition include:
 Specification of the core semantics in one place, and the interactions among semantic constructs
and/or the processing model.
 Removal of the specification of namespace subsumption
 Expansion of examples, in particular, by providing output documents
The intended semantics remains the same as long as namespace subsumption is not used.
The major changes in the third edition included:
 Removed all traces of the concept of markup editor
 Removed the attributes PreserveAttributes and PreserveElements
There were no major changes in the second edition.
ISO/IEC 29500 consists of the following parts, under the general title Information technology — Document
description and processing languages — Office Open XML File Formats:
©ISO/IEC 2015 – All rights reserved iii

---------------------- Page: 5 ----------------------
ISO/IEC 29500-3:2015(E)

 Part 1: Fundamentals and Markup Language Reference
 Part 2: Open Packaging Conventions
 Part 3: Markup Compatibility and Extensibility
 Part 4: Transitional Migration Features
iv ©ISO/IEC 2015 – All rights reserved

---------------------- Page: 6 ----------------------
ISO/IEC 29500-3:2015(E)
Introduction
ISO/IEC 29500 specifies a family of XML schemas, collectively called Office Open XML, that define the XML
vocabularies for word-processing, spreadsheet, and presentation office documents, as well as the packaging of
office 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.
©ISO/IEC 2015 – All rights reserved v

---------------------- Page: 7 ----------------------
INTERNATIONAL STANDARD ISO/IEC 29500-3:2015(E)

Information technology — Document description and
processing languages — Office Open XML File Formats
Part 3:
Markup Compatibility and Extensibility (MCE)

1 Scope
This Part of ISO/IEC 29500 defines a set of conventions for forward compatibility of markup specifications,
applicable not only to Office Open XML specifications as described in Parts 1 and 4 of this Standard, but also to
other markup specifications. These conventions allow XML documents created by applications of later versions
or extensions to be handled by applications of earlier versions.
©ISO/IEC 2015 – All rights reserved 1

---------------------- Page: 8 ----------------------
ISO/IEC 29500-3:2015(E)

2 Normative References
The following referenced standards are indispensable for the application of this standard. For dated
references, only the edition cited applies. For undated references, the latest edition of the referenced
standard (including any amendments) applies.
XML, Tim Bray, Jean Paoli, Eve Maler, C. M. Sperberg-McQueen, and François Yergeau (editors). Extensible
Markup Language (XML) 1.0, Fifth Edition. World Wide Web Consortium. 2008.
http://www.w3.org/TR/2008/PER-xml-20080205/. [Note: Implementations of this Part of ISO/IEC 29500 are
not required to support features of XML introduced by the Fifth Edition. end note]
XML Base, Marsh, Jonathan. XML Base. World Wide Web Consortium. 2009. http://www.w3.org/TR/2009/REC-
xmlbase-20090128/
XML Information Set, John Cowan and Richard Tobin (editors). XML Information Set (Second Edition), 4
February 2004. World Wide Web Consortium. http://www.w3.org/TR/2004/REC-xml-infoset-20040204/
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/
2 ©ISO/IEC 2015 – All rights reserved

---------------------- Page: 9 ----------------------
ISO/IEC 29500-3:2015(E)
3 Terms and Definitions
For the purposes of this standard, the following terms and definitions apply:
3.1
application configuration
set of names of understood namespaces
3.2
application-defined extension element
element defined by a markup specification, the attributes and content of which are not to be processed by an
MCE processor
3.3
markup configuration
set of expanded names of application-defined extension elements
3.4
markup specification
XML-based format specification that allows the use of elements and attributes in the MCE namespace
3.5
MCE processor
software used to process XML documents containing MCE elements and attributes
3.6
mismatch
incompatibility between the constraints specified by MCE elements and attributes, and the namespaces
specified by an application configuration
3.7
understood namespace
namespace, the elements and attributes of which a consuming application is able to process
©ISO/IEC 2015 – All rights reserved 3

---------------------- Page: 10 ----------------------
ISO/IEC 29500-3:2015(E)

4 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) The tag name of an XML element is written using a distinct style and typeface. [Example: The
bookmarkStart and bookmarkEnd elements specify … end example]
3) The name of an XML attribute is written using a distinct style and typeface. [Example: The dropCap
attribute specifies … end example]
4) The value of an XML attribute is written using a constant-width style. [Example: The attribute value of
auto specifies … end example]
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]

4 ©ISO/IEC 2015 – All rights reserved

---------------------- Page: 11 ----------------------
ISO/IEC 29500-3:2015(E)
5 General Description
This clause is informative
This Part of ISO/IEC 29500 is divided into the following subdivisions:
 Front matter (Clauses 1–5);
 Overview (Clause 6);
 Main body (Clauses 7–9);
 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–4, and 7–9
The following make up the informative pieces of this Part of ISO/IEC 29500:
 Foreword
 Introduction
 Clauses 5 and 6
 All annexes
 All notes and examples
End of informative text
©ISO/IEC 2015 – All rights reserved 5

---------------------- Page: 12 ----------------------
ISO/IEC 29500-3:2015(E)

6 Overview
This clause is informative
This Part of ISO/IEC 29500 describes a set of XML elements and attributes, called MCE elements and attributes,
the purpose of which is to enable producing applications to guide consuming applications in their handling of
any XML elements and attributes in namespaces not understood by the consuming applications.
MCE elements and attributes are intended to enable producing applications to use features added in new
versions or extensions of a markup specification in the production of new documents, which nevertheless
remain interoperable with consuming applications that do not understand these features. A producing
application includes MCE elements and attributes in documents to indicate to a consuming application how it
can adjust the content of the document to exclude those features that are not compatible with the version of
the markup specification that it understands, while at the same time allowing consuming applications that do
understand these features to make full use of them.
MCE elements and attributes define particular types of compatibility and extension constructs, as summarized
below:
 Namespaces can be declared to be ignorable, indicating that all elements and attributes in those
namespaces can be disregarded by consuming applications as if they were not present in the input
document, enabling graceful degradation of the document functionality. This allows implementations
to identify some markup as not core to the document content.
 Elements in ignorable namespaces can be marked for their content to be processed that would
otherwise be ignored. This allows producing applications to prevent loss of content nested within an
element in an ignorable namespace when processed by consuming applications that do not
understand that namespace but do understand the namespace(s) of the nested content.
 Namespaces can be declared that must be understood by consuming applications in order to process
the document. This allows producing applications to set minimum compatibility requirements for
consuming applications.
 Alternative representations of document content can be specified. This allows producing applications
to include content alternatives for consuming applications with differing sets of understood
namespaces and corresponding capabilities.
 Application-defined extension elements enable producing applications to introduce additional features
scoped to particular elements defined by a markup specification. Consuming applications might
preserve application-defined extension elements even if they do not process them in any other way.
Conceptually, a consuming application does not directly process input documents containing MCE elements
and attributes but rather uses an MCE processor to produce an output document understood by the
consuming application.
6 ©ISO/IEC 2015 – All rights reserved

---------------------- Page: 13 ----------------------
ISO/IEC 29500-3:2015(E)
See Annex A for examples of input documents using MCE elements and attributes, and output documents that
would be produced by an MCE processor.
End of informative text
©ISO/IEC 2015 – All rights reserved 7

---------------------- Page: 14 ----------------------
ISO/IEC 29500-3:2015(E)

7 MCE Elements and Attributes
7.1 Introduction
This subclause specifies the syntactic definitions of all MCE elements and attributes, which shall be in the
Markup Compatibility namespace:
http://schemas.openxmlformats.org/markup-compatibility/2006
[Guidance: External DTD subsets should not specify default values for attributes in the Markup Compatibility
namespace, as some non-validating XML processors do not use such default values. end guidance]
Attributes within the Markup Compatibility namespace may occur on any XML element, including Markup
Compatibility elements.
Elements within the Markup Compatibility namespace shall not contain attributes within the XML namespace
http://www.w3.org/XML/1998/namespace.
7.2 Ignorable Attribute
An Ignorable attribute shall be an attribute in the Markup Compatibility namespace with local name
“Ignorable”. Its value shall be a whitespace-delimited list of zero or more namespace prefixes, optionally
having leading and/or trailing whitespace. For each namespace prefix in the list, there shall be an in-scope
namespace to which that prefix is bound, and it shall not be the Markup Compatibility namespace. This in-
scope namespace is said to be declared as ignorable by this Ignorable attribute.
[Example:
  xmlns:mce="http://schemas.openxmlformats.org/markup-compatibility/2006">
     xmlns:i1="http://www.example.com/i1"
   xmlns:i2="http://www.example.com/i2">
  …
 

The foo element and the bar element each have an Ignorable attribute. The Ignorable attribute of foo
specifies the prefix “i1”, which is bound to the in-scope namespace “http://www.example.com/i1”. The
Ignorable attribute of bar specifies the prefix “i2”, which is bound to the in-scope namespace
“http://www.example.com/i2”. Thus, these namespaces are declared as ignorable. end example]

8 ©ISO/IEC 2015 – All rights reserved

---------------------- Page: 15 ----------------------
ISO/IEC 29500-3:2015(E)
7.3 ProcessContent Attribute
A ProcessContent attribute shall be an attribute in the Markup Compatibility namespace with local name
“ProcessContent”. Its value shall be a whitespace-delimited list of zero or more tokens, optionally having
leading and/or trailing whitespace. Each token shall be a namespace prefix followed by “:” followed either by a
local name or by “*”. For each token in the list, there shall be an in-scope namespace to which the namespace
prefix part of the token is bound. This in-scope namespace shall not be the Markup Compatibility namespace
and shall be declared as ignorable by an Ignorable attribute at the same element or an ancestor element. The
pair of this in-scope namespace and the local part or “*” in this token is said to be declared as a process-
content name pair by this ProcessContent attribute.
If (n1, l1) is the namespace-name and local-name pair of an element, that element matches a process-content
name pair (n2, l2) if
1) n1 and n2 are the same sequence of characters, and
2) Either
a) l1 and l2 are the same sequence of characters, or
b) l2 is “*”
[Example:
  xmlns:mce="http://schemas.openxmlformats.org/markup-compatibility/2006">
     mce:ProcessContent="i1:bar1"
   xmlns:i1="http://www.example.com/i1"
   xmlns:i2="http://www.example.com/i2">
      mce:ProcessContent="i2:*">…
  …
 

The foo1, foo2, and foo3 elements have ProcessContent attributes. That of the foo1 element has a token
"i1:bar1", where "i1" is a namespace prefix bound to an in-scope namespace "http://www.example.com/i1",
which is declared as ignorable at this element. That of the foo2 element has a token "i2:*", where i2 is a
namespace prefix bound to an in-scope namespace "http://www.example.com/i2", which is declared as
ignorable at this element. That of the foo3 element has a token "i1:bar2", where i1 is a namespace prefix
bound to an in-scope namespace "http://www.example.com/i1", which is declared as ignorable at the parent
foo1 element. end example]
7.4 MustUnderstand Attribute
A MustUnderstand attribute shall be an attribute in the Markup Compatibility namespace with local name
“MustUnderstand”. Its value shall be a whitespace-delimited list of zero or more namespace prefixes
©ISO/IEC 2015 – All rights reserved 9

---------------------- Page: 16 ----------------------
ISO/IEC 29500-3:2015(E)

optionally having leading and/or trailing whitespace. For each namespace prefix in the list, there shall be an in-
scope namespace name to which that prefix is bound, and this namespace shall not be the Markup
Compatibility namespace. This in-scope namespace is said to be declared as a must-understand namespace by
this MustUnderstand attribute.
[Example:
  xmlns:mce="http://schemas.openxmlformats.org/markup-compatibility/2006"
  xmlns:n1="http://www.example.com/n1"
  mce:MustUnderstand="n1">

In this example, the root element has a MustUnderstand attribute. The value contains n1, which is bound to
an in-scope namespace name "http://www.example.com/n1". end example]
7.5 AlternateContent Element
An AlternateContent element shall be an element in the Markup Compatibility namespace with local name
“AlternateContent”. An AlternateContent element shall not have unqualified attributes, but may have
qualified attributes. The namespace of each qualified attribute shall be either the Markup Compatibility
namespace or a namespace declared as ignorable by the Ignorable attribute of this AlternateContent element
or one of its ancestors.
An AlternateContent element shall contain one or more Choice child elements, optionally followed by a single
Fallback child element. No other elements in the Markup Compatibility namespace shall appear as child
elements. Elements in other namespaces may appear as preceding, intervening, or trailing child elements, but
the namespace of such a child element shall be declared as ignorable.
[Note: Ignorable elements are allowed as child elements of AlternateContent to allow for future extensions to
this construct. If AlternateContent were specified to contain only Choice and Fallback elements from the
Markup Compatibility namespace (§7.5), this would prevent the use of other Markup Compatibility elements
that would allow extension of AlternateContent in future versions of MCE. Any MCE processor that
encounters a child element of AlternateContent that is in the namespace of an intended future extension of
MCE will not fail to process the document, provided the namespace of this child element is ignorable, because
it will discard all elements in ignorable namespaces that are not understood before making a selection
between the remaining Choice and Fallback elements. end note]
[Note: The AlternateContent element can appear as the root element of a markup document. end note]
[Example:
  xmlns:mce="http://schemas.openxmlformats.org/markup-compatibility/2006"
  xmlns:n1="http://www.example.com/n1"
  xmlns:n2="http://www.example.com/n2">
10 ©ISO/IEC 2015 – All rights reserved

---------------------- Page: 17 ----------------------
ISO/IEC 29500-3:2015(E)
 
  …
  …
 

In this example, the AlternateContent element has a MustUnderstand attribute and no other attributes. The
AlternateContent element has a Choice element followed by a Fallback element. end example]
7.6 Choice Element
A Choice element shall be an element in the Markup Compatibility namespace with local name “Choice”.
Parent elements of Choice elements shall be AlternateContent elements. A Choice element shall have an
unqualified attribute with local name “Requires” and shall have no other unqualified attributes. The value of
the Requires attribute shall be a whitespace-delimited list of one or more namespace prefixes, optionally
having leading and/or trailing whitespace.
[Note: With the exception of empty lists, the syntactical constraints associated with the Requires attribute are
the same as those associated with the MustUnderstand attribute. end note]
A Choice element may have qualified attributes. The namespace of each qualified attribute shall be either the
Markup Compatibility namespace or a namespace declared as ignorable.
[Example:
  xmlns:mce="http://schemas.openxmlformats.org/markup-compatibility/2006"
  xmlns:i1="http://www.example.com/i1"
  xmlns:n1="http://www.example.com/n1">
 
  …
 

In this example, the Choice element specifies the i1:foo attribute. The namespace of this attribute is declared
as ignorable at the parent AlternateContent element. This document is conformant, but would be non-
conformant if the i1 namespace was not ignorable. end example]
7.7 Fallback Element
A Fallback element shall be an element in the Markup Compatibility namespace with local name “Fallback”.
Parent elements of Fallback elements shall be AlternateContent elements.
A Fallback element shall not have unqualified attributes. A Fallback element may have qualified attributes.
The namespace of each qualified attribute shall be either the Markup Compatibility namespace or a
namespace declared as ignorable.
©ISO/IEC 2015 – All rights reserved 11

---------------------- Page: 18 ----------------------
ISO/IEC 29500-3:2015(E)

[Example:
  xmlns:mce="http://schemas.openxmlformats.org/markup-compatibility/2006"
  xmlns:i1="http://www.example.com/i1"
  xmlns:n1="http://www.example.com/n1">
 
  …
  …
 

In this example, the Fallback element specifies the
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.