Subject: RE: IPP> PRO Section 9.7 vs. MOD section 4.3: need clarifica

From: "Turner, Randy" <[email-masked]>
Date: Tue, 7 Apr 1998 00:16:48 -0700

Perhaps Bob's clarification text should actually be put into the std
document, that is, since it apparently was not clear to Carl.

Randy

	-----Original Message-----
	From:	Carl Kugler [SMTP:[email-masked]]
	Sent:	Monday, April 06, 1998 2:28 PM
	To:	[email-masked]
	Cc:	[email-masked]
	Subject:	Re: IPP> PRO Section 9.7 vs. MOD section 4.3:
need clarifica

	Thanks, Bob, I think I get it now.

	Maybe your answer also provides a clue to my next question:

	If attributes-charset and attributes-natural-language Job
Description
	Attributes are MANDATORY according to MOD/4.3, why aren't they
shown as
	MANDATORY in "Group 3: Job Object Attributes"  under

	 Print-Job Response:
	 Print-URI Response:
	 Create-Job Response:
	 Send-Document Response:
	 Send-URI Response:
	 Get-Job-Attributes Response:
	 Get-Jobs Response:

	in MOD/15.3.4.3 "Validate the presence of a single occurrence of
required
	Operation attributes"?

	Could it be that the word MANDATORY has different meanings in
these two
	sections?

	 4.3:  MANDATORY ... attribute[s] MUST be supported by Printer
objects.
	If it is not indicated as MANDATORY, then it is OPTIONAL

	 15.3.4.3:  MANDATORY attributes [are those] that an IPP object
MUST
	support and that a client MUST supply

	It's still not clear to me.

	 -Carl

	[email-masked] on 04/06/98 01:48:31 PM
	Please respond to [email-masked]
	To: [email-masked], Carl Kugler/Boulder/IBM@ibmus
	cc:
	Subject: Re: IPP> PRO Section 9.7 vs. MOD section 4.3: need
clarifica

	If I understand your question correctly, I think that you have
having the same
	confusion
	that many other people have had about the word "MANDATORY".  It
means that
	the "Printer" must support the attribute. It does NOT mean that
the attribute
	must
	be included in each request/response.

	In this particular case, attributes-charset is MANDATORY, i.e.
the printer
	must

	support the attribute, but in the get-jobs reponse it MUST be in
the operation
	attributes
	group and it is only in each job attribute group if the client
requested the
	attribute via the
	requested-attributes attribute in the request. Note, even if it
is present
	in a
	job attributes
	group it does not affect the charset of those attributes.  All
attributes in
	the entire
	response are in the charset specified by attributes-charset in
the operations
	attribute
	group, which I still believe must be first in that group (a
change we need to
	make
	to the model document).

	Note that in the example attributes-natural-language is in one
of the job
	attribute
	groups in order to override the natural-language in the
operation attributes.
	As I
	have been implementing IPP, I have come to believe that this was
a bad idea.
	It again
	requires a special ordering, i.e. attributes-natural-language
must precede all
	other
	attributes if processing is to be simple.

	Bob Herriot

	At 03:34 PM 4/3/98 , Carl Kugler wrote:
	>Looking at example 9.7, Get-Jobs Response, I don't see an
attributes-charset
	>attribute in any of the three job attributes groups.* But
section 4.3 of the
	>Model document, "Job Description Attributes", says that
attributes-charset is
	>MANDATORY in the "job-description" attribute group.* This is
causing me
	>cognitive dissonance.

---

From: Carl Kugler <[email-masked]>
Date: Tue, 7 Apr 1998 15:36:39 -0400

Bob-

Looking back over your earlier reply, I'm still having trouble reconciling
these sentences:

> Note, even if it [attributes-charset] is present in a job attributes group it
does not affect the charset of those attributes.  All attributes in the entire
response are in the charset specified by attributes-charset in the operations
attribute group...

>Note that in the example attributes-natural-language is in one of the job
attribute groups in order to override the natural-language in the operation
attributes.

The attributes-charset in the operations attribute group cannot be overridden
but the attributes-natural-language can?

   -Carl

[email-masked] on 04/06/98 05:18:21 PM
Please respond to [email-masked]
To: [email-masked], Carl Kugler/Boulder/IBM@ibmus
cc: [email-masked]
Subject: Re: IPP> PRO Section 9.7 vs. MOD section 4.3: need clarifica

Attributes-charset and attributes-natural-language must be in the operation
attributes group
for each request and each response.  This implies that the Printer must
support
these job
description attributes in order to show what values were sent with submit-job
operations.
Thus they are MANDATORY.

The job attributes group contains values of job attributes. For the Print-Job,
Print-URI,
Create-Job, Send-Document, Send-URI operations, there is no need for the job
attributes
group to contain the attributes-charset and attributes-natural-language of the
job because they
normally have the same value the ones in the operation attributes group, and
those are the
important values for the response anyway. It was a judgement call as to which
attributes
to return automatically. We picked likely useful ones.

For Get-Job-Attributes and Get-Jobs, attributes-charset and
attributes-natural-language
would be present in the job attributes group only if the client had named them
explicitly
or implicitly in the "requested-attributes" attribute in the request.  Their
values might differ
from those in the operation attributes group, especially if the job
belonged to
someone else.

Bob Herriot

At 02:28 PM 4/6/98 , Carl Kugler wrote:
>If attributes-charset and attributes-natural-language Job Description
>Attributes are MANDATORY according to MOD/4.3, why aren't they shown as
>MANDATORY in "Group 3: Job Object Attributes"* under
>
> Print-Job Response:
> Print-URI Response:
> Create-Job Response:
> Send-Document Response:
> Send-URI Response:
>in MOD/15.3.4.3 "Validate the presence of a single occurrence of required
>Operation attributes"?
>
>Could it be that the word MANDATORY has different meanings in these two
>sections?
>
> 4.3:* MANDATORY ... attribute[s] MUST be supported by Printer objects

---

From: Carl Kugler <[email-masked]>
Date: Tue, 7 Apr 1998 17:32:01 -0400

Thanks for the lucid explanation of Job Object attributes!

I think I've got it now.  Let me run this past you to make sure.
attributes-charset and attributes-natural-language only appear as Job Object
Attributes (or, more specifically, Job Description Attributes) in responses to
Get-Job-Attributes or Get-Jobs requests.  They MUST be sent if the client
requests them in requested-attributes, because they are MANDATORY Job
Description Attributes and thus MUST be supported.  Furthermore,
attributes-natural-language (but not necessarily attributes-charset)  MUST be
sent in the Job Object attribute group returned for any job that was submitted
with a natural language which differs from that specified in the
attributes-natural-language Operation Attribute of the response.  Right?

  -Carl

[email-masked] on 04/07/98 02:01:15 PM
Please respond to [email-masked]
To: [email-masked], Carl Kugler/Boulder/IBM@ibmus
cc: [email-masked], [email-masked]
Subject: Re: IPP> PRO Section 9.7 vs. MOD section 4.3: need clarifica

>
>But my question is specific to Job Description Attributes.* Aren't those
>distinct from Operation attributes?

Job Description attributes are one of two categories of Job (Object)
Attributes. The other category is job template attributes.

Operation attributes (i.e. those attributes in the operation attributes
group) are attributes that are passed as part of a request or response. Some
of these attributes in a request set the values of job description
attributes which have the same name but they never set job template
attributes. Attributes in the job attributes group of a request cause job
template attributes in the job object to be set, but not job description
attributes.

Now you're probably wondering why some job attributes are job template
attributes and others are job description attributes. Some attributes have
gone back and forth between these two categrories several times. The
original idea was that job template attributes are those collection of job
attributes which a client, even the end user, is allowed to modify.  These
attributes typically have a list of supported values for the client to
choose from and a default value if the client doesn't choose a value.  The
job description attributes are either set by the printer with no input from
the client, e.g. job-id, or they are characteristics of a job that a user
has no choice about, e.g. job-k-octets and document-format. These latter
attributes have supported values and sometimes a default, but a client
doesn't have a choice. The number of octets and the document-format are
inherent qualities of the document.

>
>Section 4.3 says that attributes-charset and attributes-natural-language
>Job Description Attributes MUST be supported by printer objects.
>
>(M*) indicates MANDATORY attributes that an IPP object MUST support, but
>that a client may omit in a request or an IPP object may omit in a response.
>
>Isn't that the case for these particular Job Description Attributes?* Or is
>there some subtle difference between the "job-description" attribute group
>described in section 4.3 and the "Group 3: Job Object Attributes"
described in
>15.3.4.3?

I hope the above explanation clears up the difference between job object
attributes and job description attributes for requests.  For reponses, the
job attributes group can contain any job attribute, including job
description and job template attributes.