Hi Pete,
I like your choice of answer C (most forgiving) below.
But I see some problems of implementation for the IPP Printer.
When the end of the Operation Attributes Group is encountered,
an implementation might (perhaps should?) validate that all of
the required operation attributes are present for the given
operation request. In which case, the 'misplaced' operation
attribute down in the Job Attributes Group might not be seen,
because the operation would fail immediately. (I do realize
that fidelity isn't one of these required operation attributes).
Also, the silent treatment of a 'misplaced' attribute (in the
wrong group in the operation request) as absent and therefore
defaulted seems pretty convoluted, for debugging purposes.
But I still like your 'forgive and print' philosopy. And I
agree that the Implementors Guide (and a future update to the
Model?) should address 'misplaced' attributes.
Cheers,
- Ira McDonald, consulting architect at Sharp and Xerox
High North Inc
-----Original Message-----
From: Zehler, Peter [mailto:PZehler at crt.xerox.com]
Sent: Monday, March 12, 2001 3:05 PM
To: IPP Discussion List (E-mail)
Subject: IPP> Misplaced attributes
All,
I have had some internal discussions around an issue I would like to resolve
across the IPP WG.
ISSUE: An IPP Client sends a print request with the
"ipp-attribute-fidelity" attribute containing a value of 'true'. The client
also supplies the job template attribute "sides" with a value of
'two-sided-long-edge'. The IPP Printer does not support two sided printing.
The IPP Client software generates the request but put the
"ipp-attribute-fidelity" in the job attributes group instead of the
operational attributes group. What should the Printer do?
A) Reject the request with 'client-error-bad-request' since
"ipp-attribute-fidelity" is in the wrong group.
B) Reject the job because the printer does not support two sided
printing. The IPP Printer would accept "ipp-attribute-fidelity" even though
it is in the wrong group. The printer would return a
"client-error-attributes-or-values-not-supported' error and return the
"side" attribute and value in the unsupported attribute group.
C) Accept the job and print it substituting 'one-sided'. The IPP Printer
uses the defaulted value (i.e. 'false' ) for "ipp-attribute-fidelity" since
it was not an operational attribute. The return code would be
'successful-ok-ignored-or-substituted-attributes' and the "sides" and
"ipp-attribute-fidelity" would be returned as unsupported attributes. (i.e.
"ipp-attribute-fidelity" is not a supported job template attribute)
As an IPP Printer implementer I would chose C. The response informs the
client that it is in error. The Printer is forgiving and the job is
printed. The extensibility of IPP is maintained.
The Implementer's guide with need to be updated to provide a recommendation
on how to handle "misplaced" attributes. There is currently a clause that
lumps "misplaced" attributes with missing or duplicate attributes. (section
3.1.2.1.4.3)
Pete
By the way my email address has changed from Peter.Zehler at usa.xerox.com to
pzehler at crt.xerox.com
Peter Zehler
XEROX
Xerox Architecture Center
Email: PZehler at crt.xerox.com
Voice: (716) 265-8755
FAX: (716) 265-8792
US Mail: Peter Zehler
Xerox Corp.
800 Phillips Rd.
M/S 139-05A
Webster NY, 14580-9701