They must be in the first group of attributes (the operation attributes),
but they need not be first in the operation attributes group because the IPP
model document states that attributes in groups such as "operation
attributes" are unordered. Except for this case, that is good. But the
charset and natural language are special because they determine how name and
text values of all attributes should be interpreted. Such a text or name
attribute may precede the occurrence of "attributes-charset" and
This makes an implementation more difficult because it cannot convert the
octet string of the protocol to an internal String until it has found the
"attributes-charset" value which could come many attributes later.
We need to change the documents to state that two attributes need to be
first in the operations group, even though attributes in groups are
How are you other implementors coping with this?
By the way, XML doesn't have this problem because the charset comes at a
specific place at the very beginning and the language specification always
precedes the text which it applies to.