witness{ 📎 5.3 EXI Format Version -------------------------------------------------------------------------------- 001 [Definition:] The fourth part in the EXI header is the EXI Format Version, 002 which identifies the version of the EXI format being used. 003 ESI format version numbers are integers. Each version of the EXI Format 004 Specification specifies the corresponding EXI format version number to be 005 used by conforming implementations. The EXI format version number that 006 corresponds with this version of the EXI format specification is 1 (one). 007 008 The first bit of the version field indicates whether the version is a 009 preview or final version of the EXI format. A value of 0 indicates this 010 is a final version and a value of 1 indicates this is a preview version. 011 Final versions correspond to final, approved versions of the EXI format 012 specification. An EXI processor that implements a final version of the 013 EXI format specification is REQUIRED to process EXI streams that have a 014 versionfield with its first bit set to 0 followed by a 015 version number that corresponds to the version of the EXI specification 016 the processor implements. The behavior of an EXI processor on an EXI 017 stream with its first bit set to 0 followed ba a version not corresponding 018 to a version implemented by the processor is not constrained by this 019 specification. For example, the EXI processor MAY reject such a stream 020 outright or it MAY attempt to process the EXI body. Preview versions of 021 the EXI format are useful for gaining implementation and deployment 022 experience prior to finalizing a particular version of the EXI format. 023 While preview versions may match drafts of this specification, they 024 are not governed by this specification and the behaviour of EXI 025 processors encountering preview versions of the EXI format is 026 implementation dependent. Implementers are free to coordinate 027 to achieve interoperability between different preview versions of the 028 EXI format. 029 030 Following the first bit of the version is a sequence of one or more 031 4-bit unsigned integers representing the version number. The version 032 number is determined by summing this sequence of 4-bit unsigned 033 values and adding 1 (0ne). The sequence is terminated by any 4-bit 034 unsigned integer with a value in the range 0 - 14. As such, the 035 first 15 version numbers are represented by 4 bits, the next 15 are 036 represented by 8 bits, etc. 037 038 Given an EXI stream with its stream cursor positioned just past 039 the first bit of the EXI format version field, the EXI format 040 version number can be computed by going through the following steps 041 with version number initially set to 1. 042 043 1. Read next 4 bits as an unsigned integer value. 044 2. Add the value that was just read to the version number. 045 3. If the value is 15, go to step 1, otherwise (i.e. the value 046 being in the range of 0-14), use the current value of the version 047 number as the EXI version number. 048 049 The following are example EXI format version numbers. table{ 📎 Example 5-1. EXI Format Version Examples header{ th{"EXI Format Version Field" } th{"Description" } } tr{ td{1 0 0 0 0 } td{"Preview version 1" } } tr{ td{0 0 0 0 0 } td{"Final version 1" } } tr{ td{0 1 1 1 0 } td{"Final version 15" } } tr{ td{0 1 1 1 1 0 0 0 0 } td{"Final version 16" } } tr{ td{0 1 1 1 1 0 0 0 1 } td{"Final version 17" } } } 050 EXI processors conforming with the final version of this specificatiuon 051 MUST use the 5-bit value 0 0000 as the version number. }
005003
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||