⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2639.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 5 页
字号:
      IF NOT in the Printer object's "compression-supported" attribute,
         copy the attribute and the unsupported value to the Unsupported
         Attributes response group and REJECT/RETURN 'client-error-
         attributes-or-values-not-supported'.


   job-k-octets (integer(0:MAX))

      IF NOT a single 'integer' value equal to 4 octets,
      REJECT/RETURN 'client-error-bad-request'.
      IF NOT in the range of the Printer object's "job-k-octets-
         supported" attribute, copy the attribute and the unsupported
         value to the Unsupported Attributes response group and
         REJECT/RETURN 'client-error-attributes-or-values-not-
         supported'.


   job-impressions (integer(0:MAX))

      IF NOT a single 'integer' value equal to 4 octets,
      REJECT/RETURN 'client-error-bad-request'.




Hastings & Manros            Informational                     [Page 24]

RFC 2639              IPP/1.0: Implementer's Guide             July 1999


      IF NOT in the range of the Printer object's "job-impressions-
         supported" attribute, copy the attribute and the unsupported
         value to the Unsupported Attributes response group and
         REJECT/RETURN 'client-error-attributes-or-values-not-
         supported'.


   job-media-sheets (integer(0:MAX))

      IF NOT a single 'integer' value equal to 4 octets,
      REJECT/RETURN 'client-error-bad-request'.
      IF NOT in the range of the Printer object's "job-media-sheets-
         supported" attribute, copy the attribute and the unsupported
         value to the Unsupported Attributes response group and
         REJECT/RETURN 'client-error-attributes-or-values-not-
         supported'.


   message (text(127))

      IF NOT a single 'text' value, REJECT/RETURN 'client-error-bad-
         request'.
      IF the value length is greater than 127 octets,
      REJECT/RETURN 'client-error-request-value-too-long'.


   unknown or unsupported attribute

      IF the attribute syntax supplied by the client is supported but
         the length is not legal for that attribute syntax,
         REJECT/RETURN 'client-error-request-value-too-long'.
      ELSE copy the attribute and value to the Unsupported Attributes
         response group and change the attribute value to the "out-of-
         band" 'unsupported' value, but otherwise ignore the attribute.

      Note: Future Operation attributes may be added to the protocol
      specification that may occur anywhere in the specified group.
      When the operation is otherwise successful, the IPP object returns
      the 'successful-ok-ignored-or-substituted-attributes' status code.
      Ignoring unsupported Operation attributes in all operations is
      analogous to the handling of unsupported Job Template attributes
      in the create and Validate-Job operations when the client supplies
      the "ipp-attribute-fidelity" Operation attribute with the 'false'
      value.  This last rule is so that we can add OPTIONAL Operation
      attributes to future versions of IPP so that older clients can
      inter-work with new IPP objects and newer clients can inter-work
      with older IPP objects.  (If the new attribute cannot be ignored
      without performing unexpectedly, the major version number would



Hastings & Manros            Informational                     [Page 25]

RFC 2639              IPP/1.0: Implementer's Guide             July 1999


      have been increased in the protocol document and in the request).
      This rule for Operation attributes is independent of the value of
      the "ipp-attribute-fidelity" attribute.   For example, if an IPP
      object doesn't support the OPTIONAL "job-k-octets" attribute', the
      IPP object treats "job-k-octets" as an unknown attribute and only
      checks the length for the 'integer' attribute syntax supplied by
      the client.  If it is not four octets, the IPP object REJECTS the
      request and RETURNS the 'client-error-bad-request' status code,
      else the IPP object copies the attribute to the Unsupported
      Attribute response group, setting the value to the "out-of-band" '
      unsupported' value, but otherwise ignores the attribute.

2.2.2 Suggested Additional Processing Steps for Operations that
      Create/Validate Jobs and Add Documents

   This section in combination with the previous section recommends the
   processing steps for the Print-Job, Validate-Job, Print-URI, Create-
   Job, Send-Document, and Send-URI operations that IPP objects SHOULD
   use.  These are the operations that create jobs, validate a Print-Job
   request, and add documents to a job.

2.2.2.1   Default "ipp-attribute-fidelity" if not supplied

   The Printer object checks to see if the client supplied an "ipp-
   attribute-fidelity" Operation attribute.  If the attribute is not
   supplied by the client, the IPP object assumes that the value is
   'false'.

2.2.2.2   Check that the Printer object is accepting jobs

   If the value of the Printer object's "printer-is-accepting-jobs" is
   'false', the Printer object REJECTS the request and RETURNS the
   'server-error-not-accepting-jobs' status code.

2.2.2.3   Validate the values of the Job Template attributes

   An IPP object validates the values of all Job Template attribute
   supplied by the client.  The IPP object performs the analogous
   syntactic validation checks of each Job Template attribute value that
   it performs for Operation attributes (see Section 2.2.1.5.):

      a)that the length of each value is correct for the attribute
        syntax tag supplied by the client according to [RFC2566] Section
        4.1.

      b)that the attribute syntax tag is correct for that attribute
        according to [RFC2566] Sections 4.2 to 4.4.




Hastings & Manros            Informational                     [Page 26]

RFC 2639              IPP/1.0: Implementer's Guide             July 1999


      c)that multiple values are supplied only for multi-valued
        attributes, i.e., that are 1setOf  X according to [RFC2566]
        Sections 4.2 to 4.4.

   As in Section 2.2.1.5, if any of these syntactic checks fail, the IPP
   object REJECTS the request and RETURNS the 'client-error-bad-request'
   or 'client-error-request-value-too-long' status code as appropriate,
   independent of the value of the "ipp-attribute-fidelity".  Since such
   an error is most likely to be an error detected by a client
   developer, rather than by an end-user, the IPP object NEED NOT return
   an indication of which attribute had the error in either the
   Unsupported Attributes Group or the Status Message.  The description
   for each of these syntactic checks is explicitly expressed in the
   first IF statement in the following table.

   Each Job Template attribute MUST occur no more than once.  If an IPP
   Printer receives a create request with multiple occurrences of a Job
   Template attribute, it MAY:

      1.reject the operation and return the 'client-error-bad syntax'
        error status code

      2.accept the operation and use the first occurrence of the
        attribute

      3.accept the operation and use the last occurrence of the
        attribute

   depending on implementation.  Therefore, clients MUST NOT supply
   multiple occurrences of the same Job Template attribute in the Job
   Attributes group in the request.

2.2.3 Algorithm for job validation

   The process of validating a Job-Template attribute "xxx" against a
   Printer attribute "xxx-supported" can use the following validation
   algorithm (see section 3.2.1.2 in [RFC2566]).

   To validate the value U of Job-Template attribute "xxx" against the
   value V of Printer "xxx-supported", perform the following algorithm:

      1.If U is multi-valued, validate each value X of U by performing
        the algorithm in Table 3 with each value X. Each validation is
        separate from the standpoint of returning unsupported values.

        Example: If U is "finishings" that the client supplies with
        'staple', 'bind' values, then X takes on the successive values:
        'staple', then 'bind'



Hastings & Manros            Informational                     [Page 27]

RFC 2639              IPP/1.0: Implementer's Guide             July 1999


      2.If V is multi-valued, validate X against each Z of V by
        performing the algorithm in Table 3 with each value Z.  If a
        value Z validates, the validation for the attribute value X
        succeeds. If it fails, the algorithm is applied to the next
        value Z of V. If there are no more values Z of V, validation
        fails.

        Example: If V is "sides-supported" with values: 'one-sided',
        'two-sided-long', and 'two-sided-short', then Z takes on the
        successive values: 'one-sided', 'two-sided-long', and
        'two-sided-short'.  If the client supplies "sides" with 'two-
        sided-long', the first comparison fails ('one-sided' is not
        equal to 'two-sided-long'), the second comparison succeeds
        ('two-sided-long' is equal to 'two-sided-long"), and the third
        comparison ('two-sided-short' with 'two-sided-long') is not even
        performed.

      3.If both U and V are single-valued, let X be U and Z be V and use
        the validation rules in Table 3.

            Table 3 - Rules for validating single values X against Z

     attribute    attribute       validated if:
     syntax of X  syntax of Z

     integer      rangeOfInteger  X is within the range of
                                   Z

     uri          uriScheme       the uri scheme in X is
                                   equal to Z

     any          boolean         the value of Z is TRUE

     any          any             X and Z are of the same
                                   type and are equal.

   If the value of the Printer object's "xxx-supported" attribute is '
   no-value' (because the system administrator hasn't configured a
   value), the check always fails.  If the check fails, the IPP object
   copies the attribute to the Unsupported Attributes response group
   with its unsupported value.  If the attribute contains more than one
   value, each value is checked and each unsupported value is separately
   copied, while supported values are not copied.  If an IPP object
   doesn't recognize/support a Job Template attribute, i.e., there is no
   corresponding Printer object "xxx-supported" attribute, the IPP
   object treats the attribute as an unknown or unsupported attribute
   (see the last row in the table below).




Hastings & Manros            Informational                     [Page 28]

RFC 2639              IPP/1.0: Implementer's Guide             July 1999


   If some Job Template attributes are supported for some document
   formats and not for others or the values are different for different
   document formats, the IPP object SHOULD take that into account in
   this validation using the value of the "document-format" supplied by
   the client (or defaulted to the value of the Printer's "document-
   format-default" attribute, if not supplied by the client).  For
   example, if "number-up" is supported for the 'text/plain' document
   format, but not for the 'application/postscript' document format, the
   check SHOULD (though it NEED NOT) depend on the value of the
   "document-format" operation attribute.  See "document-format" in
   [RFC2566] section 3.2.1.1 and 3.2.5.1.

   Note: whether the request is accepted or rejected is determined by
   the value of the "ipp-attribute-fidelity" attribute in a subsequent
   step, so that all Job Template attribute supplied are examined and
   all unsupported attributes and/or values are copied to the
   Unsupported Attributes response group.

   job-priority (integer(1:100))

      IF NOT a single 'integer' value with a length equal to 4 octets,
         REJECT/RETURN 'client-error-bad-request'.
      IF NOT supplied by the client, use the value of the Printer
         object's "job-priority-default" attribute at job submission
         time.
      IF NOT in the range 1 to 100, inclusive, copy the attribute and
         the unsupported value to the Unsupported Attributes response
         group.
      Map the value to the nearest supported value in the range 1:100 as
         specified by the number of discrete values indicated by the
         value of the Printer's "job-priority-supported" attribute.  See
         the formula in [RFC2566] Section 4.2.1.

   job-hold-until (type3 keyword | name)

      IF NOT a single 'keyword' or 'name' value, REJECT/RETURN 'client-
         error-bad-request'.
      IF the value length is greater than 255 octets, REJECT/RETURN
         'client-error-request-value-too-long'.
      IF NOT supplied by the client, use the value of the Printer
         object's "job-hold-until" attribute at job submission time.
      IF NOT in the Printer object's "job-hold-until-supported"
         attribute, copy the attribute and the unsupported value to the
         Unsupported Attributes response group.







Hastings & Manros            Informational                     [Page 29]

RFC 2639              IPP/1.0: Implementer's Guide             July 1999


   job-sheets (type3 keyword | name)

      IF NOT a single 'keyword' or 'name' value, REJECT/RETURN 'client-
         error-bad-request'.
      IF the value length is greater than 255 octets, REJECT/RETURN
         'client-error-request-value-too-long'.
      IF NOT in the Printer object's "job-sheets-supported" attribute,
         copy the attribute and the unsupported value to the Unsupported
         Attributes response group.

   multiple-document-handling (type2 keyword)

      IF NOT a single 'keyword' value, REJECT/RETURN 'client-error-bad-
         request'.
      IF the value length is greater than 255 octets, REJECT/RETURN
         'client-error-request-value-too-long'.
      IF NOT in the P

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -