IPP> OPS - Xerox comments on Set-Printer-Attributes and Set-Job-Attributes spec

IPP> OPS - Xerox comments on Set-Printer-Attributes and Set-Job-Attributes spec

Ron Bergman rbergma at hitachi-hkis.com
Tue Jan 11 12:13:34 EST 2000


Tom,

This is a  good discussion and looks like a possible solution to what has
the potential of being a real "rat hole".

I see one minor flaw.  For the attribute "attribute-scope" there are three
keywords defined.  I propose there only be two;
    "all-interpreters" which implies it is also a global Printer
       Description attribute.
    "single-interpreter" which applies only to the specified
       'document-format'.

An attribute is either interpreter unique or not.  The third state that
is defined is not valid.  Even in your examples, there are no unique
conditions for the third state.

    Ron Bergman
    Hitachi Koki Imaging Solutions


"Hastings, Tom N" wrote:

> A number of us at Xerox considered the issue 01 in the Set spec and have the
> following suggestions:
>
> ISSUE 01 - Is there a better way to model the Printer attributes that depend
> on the interpreter (that is still compatible with IPP/1.1)?  It should be
> clear to the operator whether the Set-Printer-Attributes operation is
> affecting all interpreters or just the one specified by the
> "document-format" operation attribute (or its default)?  There have been
> suggestions to have "xxx-exceptions" (collection) Printer Description
> attributes where "xxx" is the document-format that indicate for each
> interpreter explicitly which Printer attributes are specialized for it. For
> example:  "application-postscript-exceptions" (collection) and
> "application-vnd-hp-pcl-exceptions (collection).  Or have a
> "set-all-interpreters" (boolean) Set-Printer-Attributes operation attribute
> that sets all interpreters.
>
> We think that the Interpreter object is a fine way to model those
> implementations that have some Printer attributes whose values depend on the
> interpreter.  However, we have the following comments about completing the
> mechanism.
>
> 0. REQUIREMENT:  It must be clear that the concept of the Interpreter object
> is just a way of talking about the semantics at the interface between the
> client and the Printer object, i.e., the semantics of the IPP protocol, and
> is not placing any requirement on the internal implementation to have an
> Interpreter object or not.  So add to the Notes that the introduction of the
> Interpreter object is not specifying internal implementation of an IPP
> Printer.
>
> 1. REQUIREMENT:  It must be clear to the client whether the
> Set-Printer-Attributes operation is going to affect an attribute for all
> interpreters or just the target interpreter.
>
> 2. REQUIREMENT:  A client must be able to set the attributes for one
> interpreter or for all interpreters.
>
> 3. REQUIREMENT:  If an implementation doesn't support unique attributes for
> different interpreters, then there is no added complexity than in the
> current Set spec.
>
>         4. To meet requirement 1, there needs to be added a Printer
> Description attribute that contains the names of the Printer attributes
> whose values returned differ among interpreters or could differ among
> interpreters.  Such a difference of values includes the case when an
> attribute is supported by one interpreter and not by another, i.e., when a
> value is returned by one interpreter and an attribute is not returned by
> another interpreter.  Such a Printer attribute returns different values,
> depending on the Interpreter, and so is said to be an Interpreter object
> attribute.  Here is the suggested definition for such a Printer Description
> attribute:
>
> interpreter-unique-attributes (1setOf type2 keyword)
>
> This READ-ONLY attribute indicates which Printer attributes are represented
> as Interpreter object attributes, i.e., potentially return different values
> depending on the value of the "document-format" operation attribute supplied
> by the client in the Get-Printer-Attributes request (see the
> Get-Printer-Attributes "document-format" operation attribute description in
> [ipp-mod] section 3.2.5.1).  Any Printer attributes not identified by this
> attribute MUST be shared by all interpreters, i.e., always return the same
> values no matter what "document-format" is supplied in the
> Get-Printer-Attributes request.  If a Printer attribute is not supported by
> all interpreters, then such an attribute is considered an Interpreter object
> attribute by definition.  For implementations that support the
> Set-Printer-Attributes operation, the Printer attributes so identified by
> this attribute MAY include attributes that are settable as indicated in the
> Printer's "printer-settable-attributes".
>
> This attribute MUST be supported by an implementation that supports Printer
> attributes whose values can be returned with different values in a
> Get-Printer-Attributes request depending on the value of the
> "document-format" operation attribute supplied by the client.  This
> attribute, itself, MUST NOT be an Interpreter object attribute, i.e., its
> values MUST be the same for all document formats.
>
> Example:  Suppose a Printer supports PostScript, PCL, and text/plain with
> the following "xxx-supported" values where "copies" is the shared by all
> interpreters, "number-up" is supported by all interpreters but has different
> values, and "orientation-requested" is supported only for 'text/plain':
>
> PDL         number-up-supported  copies-supported
> orientation-requested-supported
> ---         -------------------  ------
> -------------------------------
> PostScript  1                    1-10              <not supported>
> PCL         1                    1-10              <not supported>
> text/plain  1,2,4                1-10              'portrait', 'landscape'
>
> The implementation MUST support the "interpreter-unique-attributes"
> attribute because several Printer attributes return differing values.  Such
> an implementation returns the "interpreter-unique-attributes" attribute
> values: 'number-up-supported' and 'orientation-requested-supported' (no
> matter what "document-format" is supplied in the Get-Printer-Attributes
> request).
>
> The following responses are returned for a request that requests all three
> attributes:
>
> "document-format"        Response
> -----------------        --------
> application/postscript   number-up-supported=1, copies-supported=1-10
> application/vnd.hp-PCL   number-up-supported=1, copies-supported=1-10
> text/plain               number-up-supported=1,2,4, copies-supported=1-10,
>                          orientation-requested-supported='portrait',
> 'landscape'
>
> 5. To meet requirement 2, there needs to be an operation attribute added to
> the Set-Printer-Attributes operation that the client uses to indicate
> whether the intent is to set (1) all Interpreter objects and the Printer
> object, (2) a single Interpreter object and the Printer object, or (3) just
> the Interpreter object.  Here is the description of the
> Set-Printer-Attributes operation attribute:
>
> "attribute-scope" (type2 keyword)
>
> The client MAY supply this attribute.  The Printer MUST support this
> attribute if it returns Printer attributes with different values in a
> Get-Printer-Attributes request depending on the value of the
> "document-format" operation attribute supplied by the client.  This value of
> this attribute indicates the client's intention with respect to Printer
> attributes that are common to all interpreters, i.e., are Printer object
> attributes, or are specific to an Interpreter, i.e., are Interpreter object
> attributes.
>
> Standard keyword values are:
>
>     'all-interpreters-and-printer' - all attributes supplied either set all
> Interpreter object attributes that support the attribute or set the single
> Printer object attribute
>
>     'single-interpreter-and-printer' - all attributes supplied either set
> the single interpreter or set the single Printer object attribute.  An error
> is returned if the attribute supplied isn't either the specified Interpreter
> object attribute or a Printer object attribute.
>
>     'single-interpreter-only' - all supplied attributes set the single
> Interpreter object only.  An error is returned if the attributes isn't the
> specified Interpreter object attribute doesn't support the supplied
> attribute or the attribute is a Printer attribute.
>
> Example:  Suppose that the "number-up-supported" attribute could be settable
> for the PCL and text/plain interpreters, but not the PostScript interpreter,
> the 'copies-supported' attribute could be settable for all interpreters, but
> the 'orientation-requested-supported' could not be set for any interpreters.
> Then the value of the "printer-settable-attributes" MUST be
> 'copies-supported' and 'number-up-supported' when the document-format is PCL
> and 'text/plain' and 'copies-supported' when the document-format is
> 'application/postscript'.  Also, since the value of "number-up-supported"
> could be different after being set, the "number-up-supported" MUST be a
> value in the "interpreter-unique-attributes" attribute (for all
> document-formats).
>
> Pictorially, the Printer object and the Interpreter objects can be drawn as
> follows:
>
> Printer object
> +---------------------------------+
> |"copies-supported"=1-10(settable)|
> +---------------------------------+
>
> PostScript Interpreter object
> +-------------------------------------+
> |"number-up-supported"=1(not-settable)|
> +-------------------------------------+
>
> PCL Interpreter object
> +---------------------------------+
> |"number-up-supported"=1(settable)|
> +---------------------------------+
>
> text/plain Interpreter object
> +-----------------------------------------------------------------------+
> |"number-up-supported"=1(settable)                                      |
> |"orientation-requested-supported"='portrait', 'landscape'(not-settable)|
> +-----------------------------------------------------------------------+
>
> Set-Printer-Attributes
> ----------------------
> Attempt to set "copies-supported"
>
> - "attribute-scope"='all-interpreters-and-printer'
> Sets the "copies-supported" Printer object attribute for all
> "document-format" values
>
> - "attribute-scope"='single-interpreter-and-printer'
> Sets the "copies-supported" Printer object attribute for all
> "document-format" values
>
> - "attribute-scope"='single-interpreter-only'
> Returns an error and does not change the "copies-supported" Printer object
> attribute
>
> Attempt to set "number-up-supported"
>
> - "attribute-scope"='all-interpreters-and-printer'
> Fails for each "document-format" values because not all Interpreter objects
> have this attribute as settable.
>
> - "attribute-scope"='single-interpreter-and-printer'
> Succeeds for "document-format" = PCL and text/plain, fails for PostScript
>
> - "attribute-scope"='single-interpreter-only'
> Succeeds for "document-format" = PCL and text/plain, fails for PostScript
>
> Attempt to set "orientation-requested-supported"
>
> - "attribute-scope"='all-interpreters-and-printer'
> Fails for each "document-format" values because all Interpreter objects
> either have this attribute as not-settable or do not support the attribute.
>
> - "attribute-scope"='single-interpreter-and-printer'
> Fails for each "document-format" values because all Interpreter objects
> either have this attribute as not-settable or do not support the attribute.
>
> - "attribute-scope"='single-interpreter-only'
> Fails for each "document-format" values because all Interpreter objects
> either have this attribute as not-settable or do not support the attribute.




More information about the Ipp mailing list