RFC Errata
RFC 3382, "Internet Printing Protocol (IPP): The 'collection' attribute syntax", September 2002
Note: This RFC has been obsoleted by RFC 8010, RFC 8011
Source of RFC: ipp (app)
Errata ID: 3019
Status: Held for Document Update
Type: Technical
Publication Format(s) : TEXT
Reported By: Michael Sweet
Date Reported: 2011-11-10
Held for Document Update by: Peter Saint-Andre
Section 7.4 says:
The overall structure of the two collection values can be pictorially represented as: "media-col" = { "media-color" = 'blue'; "media-size" = { "x-dimension" = 6; "y-dimension" = 4 } }, The full encoding is in table 5. A simplified view of the encoding looks like this: Table 4 - Overview Encoding of "media-col" collection Tag Value Name Value begCollection media-col "" memberAttrName "" media-color keyword "" blue memberAttrName "" media-size begCollection "" "" memberAttrName "" x-dimension integer "" 6 memberAttrName "" y-dimension integer "" 4 endCollection "" "" endCollection "" "" Table 5 - Example Encoding of "media-col" collection Octets Symbolic Value Protocol comments field 0x34 begCollection value-tag beginning of the "media- col" collection attribute 0x0009 name- length of (collection) length attribute name media-col media-col name name of (collection) attribute 0x0000 value- defined to be 0 for this length type no value (since value- length was 0) 0x4A memberAttrName value-tag starts a new member attribute: "media-color" 0x0000 name- defined to be 0 for this length type, so part of 1setOf no name (since name-length was 0) 0x000B value- length of "media-color" length keyword media-color media-color value value is name of 1st member attribute 0x44 keyword type value-tag keyword type 0x0000 name- 0 indicates 1setOf length no name (since name-length was 0) Octets Symbolic Value Protocol comments field 0x0004 value- length blue blue value value of 1st member attribute 0x4A memberAttrName value-tag starts a new member attribute: "media-size" 0x0000 name- defined to be 0 for this length type, so part of 1setOf no name (since name-length was 0) 0x000A value- length of "media-size" length keyword media-size media-size value Name of 2nd member attribute 0x34 begCollection value-tag Beginning of the "media- size" collection attribute which is a sub-collection 0x0000 name- 0 indicates 1setOf length no name (since name-length was 0) 0x0000 value- collection attribute names length have no value no value (since value- length was 0) 0x4A memberAttrName value-tag starts a new member attribute: "x-dimension" Octets Symbolic Value Protocol comments field 0x0000 name- defined to be 0 for this length type, so part of 1setOf no name (since name-length was 0) 0x000B value- length of "x-dimension" length keyword x-dimension x-dimension value name of 1st sub- collection member attribute 0x21 integer type value-tag attribute type 0x0000 name- 0 indicates 1setOf length no name (since name-length was 0) 0x0004 value- length of an integer = 4 length 0x0006 value value of 1st sub- collection member attribute 0x4A memberAttrName value-tag starts a new member attribute: "y-dimension" 0x0000 name- defined to be 0 for this length type, so part of 1setOf no name (since name-length was 0) 0x000B value- length of the "y- length dimension" keyword Octets Symbolic Value Protocol comments field y-dimension y-dimension value name of 2nd sub- collection member attribute 0x21 integer type value-tag attribute type 0x0000 name- 0 indicates 1setOf length no name (since name-length was 0) 0x0004 value- length of an integer = 4 length 0x0004 value value of 2nd sub- collection member attribute 0x37 endCollection value-tag end of the sub-collection 0x0000 name- defined to be 0 for this length type, so part of 1setOf no name (since name-length was 0) 0x0000 value- defined to be 0 for this length type no value (since value- length was 0) 0x37 endCollection value-tag end of the 1st collection value in 1setOf 0x0000 name- defined to be 0 for this length type, so part of 1setOf Octets Symbolic Value Protocol comments field no name (since name-length was 0) 0x0000 value- defined to be 0 for this length type no value (since value- length was 0)
It should say:
The overall structure of the two collection values can be pictorially represented as: "media-col" = { "media-color" = 'blue'; "media-size" = { "x-dimension" = 15240; "y-dimension" = 10160 } }, The full encoding is in table 5. A simplified view of the encoding looks like this: Table 4 - Overview Encoding of "media-col" collection Tag Value Name Value begCollection media-col "" memberAttrName "" media-color keyword "" blue memberAttrName "" media-size begCollection "" "" memberAttrName "" x-dimension integer "" 15240 memberAttrName "" y-dimension integer "" 10160 endCollection "" "" endCollection "" "" Table 5 - Example Encoding of "media-col" collection Octets Symbolic Value Protocol comments field 0x34 begCollection value-tag beginning of the "media- col" collection attribute 0x0009 name- length of (collection) length attribute name media-col media-col name name of (collection) attribute 0x0000 value- defined to be 0 for this length type no value (since value- length was 0) 0x4A memberAttrName value-tag starts a new member attribute: "media-color" 0x0000 name- defined to be 0 for this length type, so part of 1setOf no name (since name-length was 0) 0x000B value- length of "media-color" length keyword media-color media-color value value is name of 1st member attribute 0x44 keyword type value-tag keyword type 0x0000 name- 0 indicates 1setOf length no name (since name-length was 0) Octets Symbolic Value Protocol comments field 0x0004 value- length blue blue value value of 1st member attribute 0x4A memberAttrName value-tag starts a new member attribute: "media-size" 0x0000 name- defined to be 0 for this length type, so part of 1setOf no name (since name-length was 0) 0x000A value- length of "media-size" length keyword media-size media-size value Name of 2nd member attribute 0x34 begCollection value-tag Beginning of the "media- size" collection attribute which is a sub-collection 0x0000 name- 0 indicates 1setOf length no name (since name-length was 0) 0x0000 value- collection attribute names length have no value no value (since value- length was 0) 0x4A memberAttrName value-tag starts a new member attribute: "x-dimension" Octets Symbolic Value Protocol comments field 0x0000 name- defined to be 0 for this length type, so part of 1setOf no name (since name-length was 0) 0x000B value- length of "x-dimension" length keyword x-dimension x-dimension value name of 1st sub- collection member attribute 0x21 integer type value-tag attribute type 0x0000 name- 0 indicates 1setOf length no name (since name-length was 0) 0x0004 value- length of an integer = 4 length 0x3b88 value value of 1st sub- collection member attribute 0x4A memberAttrName value-tag starts a new member attribute: "y-dimension" 0x0000 name- defined to be 0 for this length type, so part of 1setOf no name (since name-length was 0) 0x000B value- length of the "y- length dimension" keyword Octets Symbolic Value Protocol comments field y-dimension y-dimension value name of 2nd sub- collection member attribute 0x21 integer type value-tag attribute type 0x0000 name- 0 indicates 1setOf length no name (since name-length was 0) 0x0004 value- length of an integer = 4 length 0x27b0 value value of 2nd sub- collection member attribute 0x37 endCollection value-tag end of the sub-collection 0x0000 name- defined to be 0 for this length type, so part of 1setOf no name (since name-length was 0) 0x0000 value- defined to be 0 for this length type no value (since value- length was 0) 0x37 endCollection value-tag end of the 1st collection value in 1setOf 0x0000 name- defined to be 0 for this length type, so part of 1setOf Octets Symbolic Value Protocol comments field no name (since name-length was 0) 0x0000 value- defined to be 0 for this length type no value (since value- length was 0)
Notes:
The "media-col" attribute was defined in PWG 5100.3 (ftp://ftp.pwg.org/pub/pwg/candidates/cs-ippprodprint10-20010212-5100.3.pdf) with units consistent with RFC 3805 - namely hundredths of millimeters. However, since the example in RFC 3382 was for the same attribute, many implementers have made mistakes by using the RFC 3382 example information instead of the normative definitions in PWG 5100.3.
These changes make the example in RFC 3382 match the normative definition in PWG 5100.3.