This document records all known errors in the First Edition of the Extensible Markup Language (XML) 1.1 Specification ; for updates see the latest version.
The errata are numbered, classified as Substantive or Editorial, and listed in reverse chronological order of their date of publication in each category. Changes to the text of the spec are indicated thus: deleted text, new text, modified text . Substantive corrections are proposed by the XML Core Working Group, which has consensus that they are appropriate; they are not to be considered normative until approved by a Call for Review of Proposed Corrections or a Call for Review of an Edited Recommendation.
Please email error reports to [email protected].
Change the second sentence of paragraph following the "Notation Declared" validity contraint as follows:
It is meant to be converted to a URI reference (as defined in , updated by [IETF RFC 2732]), as part of the process of dereferencing it to obtain input for the XML processor to construct the entity's replacement text.
Change the first sentence of the immediately following paragraph as follows:
System identifiers (and other XML strings meant to be used as URI references) may contain characters that, according to and [IETF RFC 2732], must be escaped before a URI can be used to retrieve the referenced resource
Remove the entries for IETF RFC 2396 and IETF RFC 2732, and add an entry for IETF RFC 3986:
Change the first sentence of the description of the Entity Declared Validity Constraint, so that it begins:
In a document with an external subset or external parameter entity references with "standalone='no'
",...
To the list of constraints of production [60] "DefaultDecl", add a reference to the "No External Entity References" WFC.
Delete the first sentence of the last paragraph:
XML 1.1 processors should accept XML 1.0 documents as well.
Amend the "Attribute Default Value Syntactically Correct" validity constraint so that it reads:
Validity constraint: Attribute Default Value Syntactically Correct
The declared default value MUST meet the syntactic constraints of the declared attribute type. That is, the default value of an attribute:
of type IDREF or ENTITY must match the Name production;
of type IDREFS or ENTITIES must match the Names production;
of type NMTOKEN must match the Nmtoken production;
of type NMTOKENS must match the Nmtokens production;
of an enumerated type (either a NOTATION type or an enumeration) must match one of the enumerated values.
Note that only the syntactic constraints of the type are required here; other constraints (e.g. that the value be the name of a declared unparsed entity, for an attribute of type ENTITY) may come into play if the declared default value is actually used (an element without a specification for this attribute occurs) will be reported by a validating parser only if an element without a specification for this attribute actually occurs.
Amend list item 3 of the "Element Valid" validity contraint so that it reads:
The declaration matches Mixed , and the content (after replacing any entity references with their replacement text) consists of character data (including CDATA sections), comments, PIs and child elements whose types match names in the content model.
Amend list item 4 of the "Element Valid" validity contraint so that it reads:
The declaration matches ANY, and the content (after replacing any entity references with their replacement text) consists of character data, CDATA sections, comments, PIs and child elements whose types have been declared.
Amend production [32], changing #x20+ to S, so that it reads:
[32] SDDecl ::=
S
'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"'))
Amend the first paragraph after the example to read:
The
language specified by
xml:lang
is considered to
applies
to
all attributes and content of the element where it is specified
(including the values of its attributes), and to all elements in its content unless
overridden with
another instance of xml:lang
on another element within
that content. In particular, the empty value of xml:lang
is used on an element B to override
a specification of xml:lang
on an enclosing element A, without specifying another language. Within B,
it is considered that there is no language information available, just as if xml:lang
had not been specified
on B or any of its ancestors.
Applications determine which of an element's attribute values
and which parts of its character content, if any, are treated as language-dependent values described by xml:lang
.
The original text confusingly used the word "intent" and the phrase "is considered to". The new text clarifies that xml:lang specifies a language, but also makes it clear that applications may ignore the specification when not relevant.
The same correction was published for the XML 1.0 specification as E01.
Amend production [1] to read (parentheses introduced):
[1] document ::=
(
prolog
element
Misc*
) -
(
Char* RestrictedChar
Char*
)
Amend production [78] to read (parentheses introduced):
[78] extParsedEnt ::=
(
TextDecl? content
) -
(
Char* RestrictedChar
Char*
)
Amend the first sentence after production [39], so that it begins:
This specification does not constrain the application semantics, use, or (beyond syntax) names of the element types and attributes,...
Amend the second sentence of the first paragraph, so that it reads:
The string type may take any literal string as a value; the tokenized types have varying lexical and semantic constraintsare more constrained.
Add ranges to the list of ranges in the note at the end of the section, so that it reads:
[#x1-#x8], [#xB-#xC], [#xE-#x1F], [#x7F-#x84], [#x86-#x9F], [#xFDD0-#xFDDF],
[#x1FFFE-#x1FFFF], [#x2FFFE-#x2FFFF], [#x3FFFE-#x3FFFF],
[#x4FFFE-#x4FFFF], [#x5FFFE-#x5FFFF], [#x6FFFE-#x6FFFF],
[#x7FFFE-#x7FFFF], [#x8FFFE-#x8FFFF], [#x9FFFE-#x9FFFF],
[#xAFFFE-#xAFFFF], [#xBFFFE-#xBFFFF], [#xCFFFE-#xCFFFF],
[#xDFFFE-#xDFFFF], [#xEFFFE-#xEFFFF], [#xFFFFE-#xFFFFF],
[#x10FFFE-#x10FFFF].
Change the first sentence of the description of the Entity Declared Validity Constraint, so that it begins:
In a document with an external subset or external parameter entitiesentity references with "standalone='no'
",...
Amend the first paragraph to read:
[Definition: A data object is an XML document if it is well-formed, as defined in this specification. In addition, the XML document is valid if it meets certain further constraints.]
Add a note after the first paragraph, reading:
Note:
Only parsed entities that are referenced directly or indirectly within the document are required to be well-formed.
In the first paragraph, change the title attribute of the link corresponding to the text "unparsed entities" from "External Entity" to "Unparsed Entity".
Restore a missing closing parenthesis in the last sentence of the last paragraph, so that it reads:
... Applications which require DTD facilities not related to validation (such as the declaration of default attributes and internal entities that are or may be specified in external entities ) SHOULD use validating XML processors.
In production [60], mark up non-terminal S properly so that it links to the defining production ([3]).
In productions [62] and [63], mark up all instances of the non-terminal S properly so that they link to the defining production ([3]).
The sixth item in the numbered list of suggestions should read as follows:
6. The interlinear annotation characters ([#xFFF9-#xFFFB ]) should not be used in names.
In the fourth example, change <?xml version='1.0'?>
to <?xml version='1.1'?>
.
In the first paragraph, change the target location of the link corresponding to the text "unparsed entities" from "#dt-extent" to "#dt-unparsed".
Amend the list of code points in the note following production [2] so that it reads:
[#x7F-#x84], [#x86-#x9F], [#xFDD0-#xFDDF], [#x1FFFE-#x1FFFF], [#x2FFFE-#x2FFFF], [#x3FFFE-#x3FFFF], [#x4FFFE-#x4FFFF], [#x5FFFE-#x5FFFF], [#x6FFFE-#x6FFFF], [#x7FFFE-#x7FFFF], [#x8FFFE-#x8FFFF], [#x9FFFE-#x9FFFF], [#xAFFFE-#xAFFFF], [#xBFFFE-#xBFFFF], [#xCFFFE-#xCFFFF], [#xDFFFE-#xDFFFF], [#xEFFFE-#xEFFFF], [#xFFFFE-#xFFFFF], [#x10FFFE-#x10FFFF].
Amend production [1] to read (spaces added in two places):
[1] document ::= prolog
element
Misc*
- Char* RestrictedChar
Char*
Note that the normative XHTML version of the XML 1.1 specification has been fixed in place by adding those two spaces. The XML and XHTML with color-coded revision indicators versions have not been so modified.