You are reading an older version of the Implementers Guide. The newer one
has:
attributes-natural-language(naturalLanguage)
IF NOT any single non-empty 'naturalLanguage' value, REJECT/RETURN
'client-error-request-bad-request'.
IF the value length is greater than less than or equal to 63 octets,
REJECT/RETURN 'client-error-request-value-too-long'.
ACCEPT the request even if not a member of the set in the Printer object's
"generated-natural-language-supported" attribute.
However, the "any" is still strange. How about if we change the "any" to
"a" so that it would read as follows?
attributes-natural-language(naturalLanguage)
IF NOT a single non-empty 'naturalLanguage' value, REJECT/RETURN
'client-error-request-bad-request'.
IF the value length is greater than 63 octets, REJECT/RETURN
'client-error-request-value-too-long'.
ACCEPT the request even if not a member of the set in the Printer object's
"generated-natural-language-supported" attribute.
To answer your first question, the client MUST NOT send multiple values,
unless the attribute is specified as a 1SetOf.
Tom
>-----Original Message-----
>From: Manish Thakur [mailto:manish at teil.soft.net]
>Sent: Wednesday, February 10, 1999 07:13
>To: IPP Discussion List (E-mail)
>Cc: G. Sudarshan
>Subject: IPP> Processing Request
>>>Hi,
> I have the following doubt about a request coming from a
>IPP client.
>Can all attributes have multiple values associated with them in a
>request that come to a printer object, the implementers guide seems to
>suggest this:
>>attributes-natural-language(naturalLanguage)
> IF NOT any single non-empty 'naturalLanguage' value less than or
> equal to 63 octets, REJECT/RETURN 'client-error-request-value-too-
> long'.
> ACCEPT the request even if not a member of the set in the Printer
> object's "generated-natural-language-supported" attribute.
>
No, the client MUST supply only a single value, since this is not a 1SetOf.
>If in this case more than one value is sputtered by the printer object,
>which should be selected?
Use the "natural-language-configured" value. So I've added the following to
the IIG:
If the supplied value is not a member of the Printer object's
"generated-natural-language-supported" attribute, use the Printer object's
"natural-language-configured" value.
>>ipp-attribute-fidelity (boolean)
> IF NOT either a single 'true' or 'false' 'boolean' value equal to 1
> octet, REJECT/RETURN 'client-error-bad-request'.
>>Does it mean that a client sending a multiple values for
>attribute-fidelity e.g. first value single octet with value set to 0,
>another multi-octet value set to 1 - should not be treated as a bad
>request?
IF NEITHER a single 'true' NOR a single 'false' 'boolean' value,
REJECT/RETURN 'client-error-bad-request'.
IF the value length is NOT equal to 1 octet, REJECT/RETURN
'client-error-request-value-too-long'
>>Also if an attribute of the Job Template attributes group
>appears in the
>operation attributes group should this be treated as an unsupported
>attribute or should it return bad request error?
I would suggest as an unsupported operation attribute. Then the
implementation doesn't need to check to see if the attribute supplied in the
Operation Attribute group happens to be a Job Template attribute.
On the other hand, if that attribute is supported as a Job Template
attribute, the client and user may be confused, since the Unsupported
Attributes Group in the response is used for both unsupported Operation
attributes and unsupported Job Template attributes.
>>Any guidance in this regard would be appreciated.
>Thanx in advance
>Manish
>