W3C

Efficient XML Interchange (EXI) Format 1.0 (Second Edition) Errata

6 January 2015


Abstract

This document records all known errors in the Efficient XML Interchange (EXI) Format 1.0 (Second Edition) (hereinafter, "the specification" or "the spec").

If you find errors in the specification that are not listed in this document, please report them to public-exi-comments@w3.org. Archives of the mailing list are available at public archive.

Table of Contents

1. Substantive Errata
2. Editorial Errata
3. Clarifications
A. Errata Changes


1. Substantive Errata

To be added upon receipt of errors.

2. Editorial Errata

Section 6. Encoding EXI Streams

6 January 2015

Change the paragraph that reads:

[Definition:] An event code is a sequence of 1 to 3 non-negative integers called parts used to identify each event in an EXI stream. The EXI grammars describe which events may occur at each point in an EXI stream and associate an even code with each one. (See 8.2 Grammar Event Codes for more description of event codes.)

to:

[Definition:] An event code is a sequence of 1 to 3 non-negative integers called parts used to identify each event in an EXI stream. The EXI grammars describe which events may occur at each point in an EXI stream and associate an event code with each one. (See 8.2 Grammar Event Codes for more description of event codes.)

3. Clarifications

Section 4. EXI Streams

18 October 2014

Change the third paragraph that reads:

The EXI events permitted at any given position in an EXI stream are determined by the EXI grammar. As is the case with XML, the events occur with nesting pairs of matching start element and end element events where any pair does not intersect with another except when it is fully contained in the other. The EXI grammar incorporates knowledge of the XML grammar and may be augmented and refined using schema information and fidelity options. The EXI grammar is formally specified in section 8. EXI Grammars.

to:

The EXI events permitted at any given position in an EXI stream are determined by a stack of EXI grammars. As is the case with XML, the events occur with nesting pairs of matching start element and end element events where any pair does not intersect with another except when it is fully contained in the other. Each start element event pushes the EXI grammar that describes its content to the grammar stack while each end element event pops a grammar from the grammar stack. The EXI grammars incorporate knowledge of the XML Infoset [XML Information Set] and may be augmented and refined using schema information and fidelity options. The EXI grammars are formally specified in section 8. EXI Grammars.

Section 8. EXI Grammars

18 October 2014

Change the third paragraph that reads:

The following sections describe the grammars used to inform the EXI encoding.

to:

The following sections describe the EXI grammars used to inform the encoding and decoding of EXI streams. The EXI grammars are right regular formal grammars that have exactly one terminal symbol followed by at most one non-terminal symbol on the right-hand side of their productions. Also, EXI grammars do not contain two or more grammar productions with the same non-terminal on the left-hand side and the same terminal symbol on the right-hand side.
Also, change the sentence in Section 8.5.4.1 EXI Proto-Grammars that reads:
EXI proto-grammars differ from normalized EXI grammars in that they may contain productions of the form:

to:

EXI proto-grammars differ from normalized EXI grammars in that they may contain unit productions of the form:
Also remove the sentence in Section 8.5.4.1 EXI Proto-Grammars that reads:
This is a restricted form of Greibach normal form [Greibach Normal Form].
Remove the sentence in Section 8.5.4.2 EXI Normalized Grammars that reads:
This is a restricted form of Greibach normal form [Greibach Normal Form].
Also change the sentence in Section 8.5.4.2 EXI Normalized Grammars that reads:
EXI proto-grammars differ from normalized EXI grammars in that they may contain productions of the form:

to:

EXI proto-grammars differ from normalized EXI grammars in that they may contain unit productions of the form:

8.5.4.4.2 Adding Productions when Strict is True

18 January 2016

In the list of Notes, add the following item after the one describing a constraint regarding the use of xsi:schemaLocation and xsi:noNamespaceSchemaLocation attributes.

A sequence of whitespace characters cannot be represented in element-only content model. When the xml:space attribute (if any) present at one of the ancestor elements closest to the whitespaces is set to true, those whitespaces SHOULD be preserved. However, when the value of the strict option is true, those whitespaces cannot be preserved due to the lack of a production of the form LeftHandSide : CH RightHandSide.

Section A.2 Other References

18 October 2014

Remove the reference to Greibach Normal Form:

Greibach Normal Form

A New Normal-Form Theorem for Context-Free Phrase Structure Grammars, Sheila A. Greibach, Author. Journal of the ACM Volume 12  Issue 1, January 1965, pp. 42–52.

Section 5.4 EXI Options

23 September 2014

Append the following text to the 2nd paragraph that starts with "The presence of EXI Options in its entirety is optional in EXI header"

When the EXI Options document is present the effective EXI options MUST be computed by starting with the default values from Table 5-1, and applying on that, the options from the EXI Options document. Note: the EXI option schemaId is special in this regard given that it does not have a default value. Hence, when the "schemaId" element is absent the schema information used to encode the EXI body MUST be communicated out of band.
and change the default values in Table 5-1 as follows:

Section 5.4 EXI Options

01 September 2014

Insert the following clarification just before the sentence "Below is a brief description of each EXI option.":

Setting particular values to some of the EXI options may affect, or involve a trade-off among, the processing speed, the level of compactness and the amount of memory required during processing.

Add the following sentence after the end of the second sentence of the paragraph that starts with "[Definition:] The selfContained option....":

The use of self-contained elements results in EXI streams which require more runtime memory during processing compared to equivalent streams without selfContained elements.

The first sentence in the paragraph that starts with "[Definition:] The valueMaxLength option specifies ...." reads:

The valueMaxLength option specifies the maximum length of value content items to be considered for addition to the string table

Change that sentence to:

The valueMaxLength option specifies the maximum number of characters for value content items represented with 7.1.10 String to be considered for addition to the string table.

Add the following sentence at the end of the paragraph that starts with "[Definition:] The valueMaxLength option specifies ....":

Large or "unbounded" values of the valueMaxLength option can lead to higher memory consumption in exchange for smaller sized EXI streams as compared to equivalent streams with small values of the valueMaxLength option. Setting valueMaxLength to 0 disables the "local" and "global" value partitions of the string table which has the same effect as setting valuePartitionCapacity to 0.

Add the following at the end of the paragraph that starts with "[Definition:] The valuePartitionCapacity option ...."

Large or "unbounded" values of the valuePartitionCapacity option lead to higher memory consumption in exchange for smaller sized EXI streams as compared to equivalent streams with small values of the valuePartitionCapacity option. Setting valuePartitionCapacity to 0 disables the "local" and "global" value partitions of the string table which has two consequences: 1) lower memory usage during processing compared to "unbounded" valuePartitionCapacity case with difference in memory consumption proportional to the number and the size of the string value content items in the stream; 2) larger EXI stream compared to "unbounded" valuePartitionCapacity case with difference in size proportional to the number and the size of the repeating string value content items in the stream.

Section 5.4 EXI Options

01 September 2014

Add the following at the end of the paragraph that starts with "[Definition:] The blockSize option specifies ....":

The element "blockSize" SHOULD NOT appear in an EXI options document when the "compression" element is absent or the alignment option has value different from pre-compression.

A. Errata Changes (in reverse chronological order)