Network Working Group                                         R. Herriot
Request for Comments: 3995                     Global Workflow Solutions
Category: Standards Track                                    T. Hastings
Updates: 2911, 2910                                    Xerox Corporation
                                                              March 2005
        
Network Working Group                                         R. Herriot
Request for Comments: 3995                     Global Workflow Solutions
Category: Standards Track                                    T. Hastings
Updates: 2911, 2910                                    Xerox Corporation
                                                              March 2005
        

Internet Printing Protocol (IPP): Event Notifications and Subscriptions

Internet打印协议(IPP):事件通知和订阅

Status of This Memo

关于下段备忘

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (C) The Internet Society (2005).

版权所有(C)互联网协会(2005年)。

Abstract

摘要

This document describes an OPTIONAL extension to the Internet Printing Protocol/1.1: Model and Semantics (RFC 2911, RFC 2910). This extension allows a client to subscribe to printing related Events. Subscriptions are modeled as Subscription Objects. The Subscription Object specifies that when one of the specified Events occurs, the Printer delivers an asynchronous Event Notification to the specified Notification Recipient via the specified Push or Pull Delivery Method (i.e., protocol).

本文档描述了Internet打印协议/1.1的可选扩展:模型和语义(RFC 2911,RFC 2910)。此扩展允许客户端订阅与打印相关的事件。订阅被建模为订阅对象。订阅对象指定,当某个指定事件发生时,打印机通过指定的推送或拉送传递方法(即协议)向指定的通知收件人发送异步事件通知。

A client associates Subscription Objects with a particular Job by performing the Create-Job-Subscriptions operation or by submitting a Job with subscription information. A client associates Subscription Objects with the Printer by performing a Create-Printer-Subscriptions operation. Four other operations are defined for Subscription Objects: Get-Subscriptions-Attributes, Get-Subscriptions, Renew-Subscription, and Cancel-Subscription.

客户端通过执行“创建作业订阅”操作或提交包含订阅信息的作业,将订阅对象与特定作业关联。客户端通过执行“创建打印机订阅”操作将订阅对象与打印机关联。为订阅对象定义了四个其他操作:获取订阅属性、获取订阅、续订订阅和取消订阅。

Table of Contents

目录

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  5
       1.1.  Notification Overview. . . . . . . . . . . . . . . . . .  5
   2.  Models for Notification. . . . . . . . . . . . . . . . . . . .  8
       2.1.  Model for Simple Notification (Normative). . . . . . . .  8
       2.2.  Additional Models for Notification (Informative) . . . .  9
   3.  Terminology. . . . . . . . . . . . . . . . . . . . . . . . . .  9
       3.1.  Conformance Terminology. . . . . . . . . . . . . . . . .  9
       3.2.  Other Terminology. . . . . . . . . . . . . . . . . . . . 10
   4.  Object Relationships . . . . . . . . . . . . . . . . . . . . . 12
       4.1.  Printer and Per-Printer Subscription Objects . . . . . . 13
       4.2.  Printer, Job and Per-Job Subscription Objects. . . . . . 13
   5.  Subscription Object. . . . . . . . . . . . . . . . . . . . . . 13
       5.1.  Rules for Support of Subscription Template Attributes. . 14
       5.2.  Rules for Processing Subscription Template Attributes. . 15
       5.3.  Subscription Template Attributes . . . . . . . . . . . . 18
             5.3.1.  notify-recipient-uri (uri) . . . . . . . . . . . 20
             5.3.2.  notify-pull-method (type2 keyword) . . . . . . . 21
             5.3.3.  notify-events (1setOf type2 keyword) . . . . . . 22
             5.3.4.  notify-attributes (1setOf type2 keyword) . . . . 29
             5.3.5.  notify-user-data (octetString(63)) . . . . . . . 30
             5.3.6.  notify-charset (charset) . . . . . . . . . . . . 31
             5.3.7.  notify-natural-language (naturalLanguage). . . . 31
             5.3.8.  notify-lease-duration (integer(0:67108863)). . . 32
             5.3.9.  notify-time-interval (integer(0:MAX)). . . . . . 33
       5.4.  Subscription Description Attributes. . . . . . . . . . . 34
             5.4.1.  notify-subscription-id  (integer (1:MAX)). . . . 35
             5.4.2.  notify-sequence-number (integer (0:MAX)) . . . . 35
             5.4.3.  notify-lease-expiration-time (integer(0:MAX)). . 36
             5.4.4.  notify-printer-up-time (integer(1:MAX)). . . . . 37
             5.4.5.  notify-printer-uri (uri) . . . . . . . . . . . . 37
             5.4.6.  notify-job-id (integer(1:MAX)) . . . . . . . . . 37
             5.4.7.  notify-subscriber-user-name (name(MAX)). . . . . 38
   6.  Printer Description Attributes Related to Notification . . . . 38
       6.1.  printer-state-change-time (integer(1:MAX)) . . . . . . . 39
       6.2.  printer-state-change-date-time (dateTime). . . . . . . . 39
   7.  New Values for Existing Printer Description Attributes . . . . 39
       7.1.  operations-supported (1setOf type2 enum) . . . . . . . . 40
   8.  Attributes Only in Event Notifications . . . . . . . . . . . . 40
       8.1.  notify-subscribed-event (type2 keyword). . . . . . . . . 40
       8.2.  notify-text (text(MAX)). . . . . . . . . . . . . . . . . 41
   9.  Event Notification Content . . . . . . . . . . . . . . . . . . 41
       9.1.  Content of Machine Consumable Event Notifications. . . . 44
             9.1.1.  Event Notification Content Common to All Events. 44
             9.1.2.  Additional Event Notification Content for Job
                     Events . . . . . . . . . . . . . . . . . . . . . 45
        
   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  5
       1.1.  Notification Overview. . . . . . . . . . . . . . . . . .  5
   2.  Models for Notification. . . . . . . . . . . . . . . . . . . .  8
       2.1.  Model for Simple Notification (Normative). . . . . . . .  8
       2.2.  Additional Models for Notification (Informative) . . . .  9
   3.  Terminology. . . . . . . . . . . . . . . . . . . . . . . . . .  9
       3.1.  Conformance Terminology. . . . . . . . . . . . . . . . .  9
       3.2.  Other Terminology. . . . . . . . . . . . . . . . . . . . 10
   4.  Object Relationships . . . . . . . . . . . . . . . . . . . . . 12
       4.1.  Printer and Per-Printer Subscription Objects . . . . . . 13
       4.2.  Printer, Job and Per-Job Subscription Objects. . . . . . 13
   5.  Subscription Object. . . . . . . . . . . . . . . . . . . . . . 13
       5.1.  Rules for Support of Subscription Template Attributes. . 14
       5.2.  Rules for Processing Subscription Template Attributes. . 15
       5.3.  Subscription Template Attributes . . . . . . . . . . . . 18
             5.3.1.  notify-recipient-uri (uri) . . . . . . . . . . . 20
             5.3.2.  notify-pull-method (type2 keyword) . . . . . . . 21
             5.3.3.  notify-events (1setOf type2 keyword) . . . . . . 22
             5.3.4.  notify-attributes (1setOf type2 keyword) . . . . 29
             5.3.5.  notify-user-data (octetString(63)) . . . . . . . 30
             5.3.6.  notify-charset (charset) . . . . . . . . . . . . 31
             5.3.7.  notify-natural-language (naturalLanguage). . . . 31
             5.3.8.  notify-lease-duration (integer(0:67108863)). . . 32
             5.3.9.  notify-time-interval (integer(0:MAX)). . . . . . 33
       5.4.  Subscription Description Attributes. . . . . . . . . . . 34
             5.4.1.  notify-subscription-id  (integer (1:MAX)). . . . 35
             5.4.2.  notify-sequence-number (integer (0:MAX)) . . . . 35
             5.4.3.  notify-lease-expiration-time (integer(0:MAX)). . 36
             5.4.4.  notify-printer-up-time (integer(1:MAX)). . . . . 37
             5.4.5.  notify-printer-uri (uri) . . . . . . . . . . . . 37
             5.4.6.  notify-job-id (integer(1:MAX)) . . . . . . . . . 37
             5.4.7.  notify-subscriber-user-name (name(MAX)). . . . . 38
   6.  Printer Description Attributes Related to Notification . . . . 38
       6.1.  printer-state-change-time (integer(1:MAX)) . . . . . . . 39
       6.2.  printer-state-change-date-time (dateTime). . . . . . . . 39
   7.  New Values for Existing Printer Description Attributes . . . . 39
       7.1.  operations-supported (1setOf type2 enum) . . . . . . . . 40
   8.  Attributes Only in Event Notifications . . . . . . . . . . . . 40
       8.1.  notify-subscribed-event (type2 keyword). . . . . . . . . 40
       8.2.  notify-text (text(MAX)). . . . . . . . . . . . . . . . . 41
   9.  Event Notification Content . . . . . . . . . . . . . . . . . . 41
       9.1.  Content of Machine Consumable Event Notifications. . . . 44
             9.1.1.  Event Notification Content Common to All Events. 44
             9.1.2.  Additional Event Notification Content for Job
                     Events . . . . . . . . . . . . . . . . . . . . . 45
        
             9.1.3.  Additional Event Notification Content for
                     Printer Events . . . . . . . . . . . . . . . . . 46
       9.2.  Content of Human Consumable Event Notification . . . . . 46
             9.2.1.  Event Notification Content Common to All Events. 47
             9.2.2.  Additional Event Notification Content for Job
                     Events . . . . . . . . . . . . . . . . . . . . . 49
             9.2.3.  Additional Event Notification Content for
                     Printer Events . . . . . . . . . . . . . . . . . 49
   10. Delivery Methods . . . . . . . . . . . . . . . . . . . . . . . 50
   11. Operations for Notification. . . . . . . . . . . . . . . . . . 52
       11.1. Subscription Creation Operations . . . . . . . . . . . . 52
             11.1.1. Create-Job-Subscriptions Operation . . . . . . . 52
             11.1.2. Create-Printer-Subscriptions operation . . . . . 55
             11.1.3. Job Creation Operations - Extensions for
                     Notification . . . . . . . . . . . . . . . . . . 56
       11.2 Other Operations. . . . . . . . . . . . . . . . . . . . . 58
             11.2.1. Restart-Job Operation - Extensions for
                     Notification . . . . . . . . . . . . . . . . . . 58
             11.2.2. Validate-Job Operation - Extensions for
                     Notification . . . . . . . . . . . . . . . . . . 59
             11.2.3. Get-Printer-Attributes - Extensions for
                     Notification . . . . . . . . . . . . . . . . . . 59
             11.2.4. Get-Subscription-Attributes operation. . . . . . 60
             11.2.5. Get-Subscriptions operation. . . . . . . . . . . 63
             11.2.6. Renew-Subscription operation . . . . . . . . . . 66
             11.2.7. Cancel-Subscription operation. . . . . . . . . . 68
   12. Status Codes . . . . . . . . . . . . . . . . . . . . . . . . . 70
       12.1. successful-ok-ignored-subscriptions (0x0003) . . . . . . 70
       12.2. client-error-ignored-all-subscriptions (0x0414). . . . . 71
   13. Status Codes in Subscription Attributes Groups . . . . . . . . 71
       13.1. client-error-uri-scheme-not-supported (0x040C) . . . . . 71
       13.2. client-error-attributes-or-values-not-supported (0x040B) 71
       13.3. client-error-too-many-subscriptions (0x0415) . . . . . . 72
       13.4. successful-ok-too-many-events (0x0005) . . . . . . . . . 72
       13.5. successful-ok-ignored-or-substituted-attributes (0x0001) 72
   14. Encodings of Additional Attribute Tags . . . . . . . . . . . . 72
   15. Conformance Requirements . . . . . . . . . . . . . . . . . . . 72
       15.1. Conformance requirements for clients . . . . . . . . . . 73
       15.2. Conformance requirements for Printers. . . . . . . . . . 73
   16. Model for Notification with Cascading Printers (Informative) . 74
   17. Distributed Model for Notification (Informative) . . . . . . . 75
   18. Extended Notification Recipient (Informative). . . . . . . . . 76
   19. Object Model for Notification (Normative). . . . . . . . . . . 77
       19.1. Object relationships . . . . . . . . . . . . . . . . . . 78
       19.2. Printer Object and Per-Printer Subscription Objects. . . 79
       19.3. Job Object and Per-Job Subscription Objects. . . . . . . 79
   20. Per-Job versus Per-Printer Subscription Objects (Normative). . 79
   21. Normative References . . . . . . . . . . . . . . . . . . . . . 80
        
             9.1.3.  Additional Event Notification Content for
                     Printer Events . . . . . . . . . . . . . . . . . 46
       9.2.  Content of Human Consumable Event Notification . . . . . 46
             9.2.1.  Event Notification Content Common to All Events. 47
             9.2.2.  Additional Event Notification Content for Job
                     Events . . . . . . . . . . . . . . . . . . . . . 49
             9.2.3.  Additional Event Notification Content for
                     Printer Events . . . . . . . . . . . . . . . . . 49
   10. Delivery Methods . . . . . . . . . . . . . . . . . . . . . . . 50
   11. Operations for Notification. . . . . . . . . . . . . . . . . . 52
       11.1. Subscription Creation Operations . . . . . . . . . . . . 52
             11.1.1. Create-Job-Subscriptions Operation . . . . . . . 52
             11.1.2. Create-Printer-Subscriptions operation . . . . . 55
             11.1.3. Job Creation Operations - Extensions for
                     Notification . . . . . . . . . . . . . . . . . . 56
       11.2 Other Operations. . . . . . . . . . . . . . . . . . . . . 58
             11.2.1. Restart-Job Operation - Extensions for
                     Notification . . . . . . . . . . . . . . . . . . 58
             11.2.2. Validate-Job Operation - Extensions for
                     Notification . . . . . . . . . . . . . . . . . . 59
             11.2.3. Get-Printer-Attributes - Extensions for
                     Notification . . . . . . . . . . . . . . . . . . 59
             11.2.4. Get-Subscription-Attributes operation. . . . . . 60
             11.2.5. Get-Subscriptions operation. . . . . . . . . . . 63
             11.2.6. Renew-Subscription operation . . . . . . . . . . 66
             11.2.7. Cancel-Subscription operation. . . . . . . . . . 68
   12. Status Codes . . . . . . . . . . . . . . . . . . . . . . . . . 70
       12.1. successful-ok-ignored-subscriptions (0x0003) . . . . . . 70
       12.2. client-error-ignored-all-subscriptions (0x0414). . . . . 71
   13. Status Codes in Subscription Attributes Groups . . . . . . . . 71
       13.1. client-error-uri-scheme-not-supported (0x040C) . . . . . 71
       13.2. client-error-attributes-or-values-not-supported (0x040B) 71
       13.3. client-error-too-many-subscriptions (0x0415) . . . . . . 72
       13.4. successful-ok-too-many-events (0x0005) . . . . . . . . . 72
       13.5. successful-ok-ignored-or-substituted-attributes (0x0001) 72
   14. Encodings of Additional Attribute Tags . . . . . . . . . . . . 72
   15. Conformance Requirements . . . . . . . . . . . . . . . . . . . 72
       15.1. Conformance requirements for clients . . . . . . . . . . 73
       15.2. Conformance requirements for Printers. . . . . . . . . . 73
   16. Model for Notification with Cascading Printers (Informative) . 74
   17. Distributed Model for Notification (Informative) . . . . . . . 75
   18. Extended Notification Recipient (Informative). . . . . . . . . 76
   19. Object Model for Notification (Normative). . . . . . . . . . . 77
       19.1. Object relationships . . . . . . . . . . . . . . . . . . 78
       19.2. Printer Object and Per-Printer Subscription Objects. . . 79
       19.3. Job Object and Per-Job Subscription Objects. . . . . . . 79
   20. Per-Job versus Per-Printer Subscription Objects (Normative). . 79
   21. Normative References . . . . . . . . . . . . . . . . . . . . . 80
        
   22. Informative References . . . . . . . . . . . . . . . . . . . . 80
   23. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 81
       23.1. Attribute Registrations. . . . . . . . . . . . . . . . . 82
       23.2. Additional Enum Attribute Value Registrations within
             the IPP registry . . . . . . . . . . . . . . . . . . . . 83
       23.3. Operation Registrations. . . . . . . . . . . . . . . . . 83
       23.4. Status code Registrations. . . . . . . . . . . . . . . . 83
       23.5. Attribute Group tag Registrations. . . . . . . . . . . . 84
       23.6. Registration of Events . . . . . . . . . . . . . . . . . 84
       23.7. Registration of Event Notification Delivery Methods. . . 85
             23.7.1. Requirements for Registration of Event
                     Notification Delivery Methods. . . . . . . . . . 85
             23.7.2. Registration Procedure . . . . . . . . . . . . . 86
             23.7.3. Delivery Method Document Registrations . . . . . 87
             23.7.4. Registration Template. . . . . . . . . . . . . . 88
   24. Internationalization Considerations. . . . . . . . . . . . . . 89
   25. Security Considerations. . . . . . . . . . . . . . . . . . . . 89
       25.1. Client access rights . . . . . . . . . . . . . . . . . . 89
       25.2. Printer security threats . . . . . . . . . . . . . . . . 91
       25.3. Notification Recipient security threats. . . . . . . . . 91
   26. Description of the base IPP documents (Informative). . . . . . 92
   27. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 93
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 94
   Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 95
        
   22. Informative References . . . . . . . . . . . . . . . . . . . . 80
   23. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 81
       23.1. Attribute Registrations. . . . . . . . . . . . . . . . . 82
       23.2. Additional Enum Attribute Value Registrations within
             the IPP registry . . . . . . . . . . . . . . . . . . . . 83
       23.3. Operation Registrations. . . . . . . . . . . . . . . . . 83
       23.4. Status code Registrations. . . . . . . . . . . . . . . . 83
       23.5. Attribute Group tag Registrations. . . . . . . . . . . . 84
       23.6. Registration of Events . . . . . . . . . . . . . . . . . 84
       23.7. Registration of Event Notification Delivery Methods. . . 85
             23.7.1. Requirements for Registration of Event
                     Notification Delivery Methods. . . . . . . . . . 85
             23.7.2. Registration Procedure . . . . . . . . . . . . . 86
             23.7.3. Delivery Method Document Registrations . . . . . 87
             23.7.4. Registration Template. . . . . . . . . . . . . . 88
   24. Internationalization Considerations. . . . . . . . . . . . . . 89
   25. Security Considerations. . . . . . . . . . . . . . . . . . . . 89
       25.1. Client access rights . . . . . . . . . . . . . . . . . . 89
       25.2. Printer security threats . . . . . . . . . . . . . . . . 91
       25.3. Notification Recipient security threats. . . . . . . . . 91
   26. Description of the base IPP documents (Informative). . . . . . 92
   27. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 93
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 94
   Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 95
        

Tables

桌子

   Table 1  - Subscription Template Attributes. . . . . . . . . . . . 20
   Table 2  - Subscription Description Attributes . . . . . . . . . . 35
   Table 3  - Printer Description Attributes Associated with
              Notification. . . . . . . . . . . . . . . . . . . . . . 39
   Table 4  - Operation-id assignments. . . . . . . . . . . . . . . . 40
   Table 5  - Attributes in Event Notification Content. . . . . . . . 45
   Table 6  - Additional Event Notification Content for Job Events. . 46
   Table 7  - Combinations of Events and Subscribed Events for
              "job-impressions-completed" . . . . . . . . . . . . . . 46
   Table 8  - Additional Event Notification Content for Printer
              Events. . . . . . . . . . . . . . . . . . . . . . . . . 46
   Table 9  - Printer Name in Event Notification Content. . . . . . . 48
   Table 10 - Event Name in Event Notification Content. . . . . . . . 48
   Table 11 - Event Time in Event Notification Content. . . . . . . . 48
   Table 12 - Job Name in Event Notification Content. . . . . . . . . 49
   Table 13 - Job State in Event Notification Content . . . . . . . . 49
   Table 14 - Printer State in Event Notification Content . . . . . . 50
   Table 15 - Information about the Delivery Method . . . . . . . . . 51
   Table 16 - Printer Conformance Requirements for Operations . . . . 74
        
   Table 1  - Subscription Template Attributes. . . . . . . . . . . . 20
   Table 2  - Subscription Description Attributes . . . . . . . . . . 35
   Table 3  - Printer Description Attributes Associated with
              Notification. . . . . . . . . . . . . . . . . . . . . . 39
   Table 4  - Operation-id assignments. . . . . . . . . . . . . . . . 40
   Table 5  - Attributes in Event Notification Content. . . . . . . . 45
   Table 6  - Additional Event Notification Content for Job Events. . 46
   Table 7  - Combinations of Events and Subscribed Events for
              "job-impressions-completed" . . . . . . . . . . . . . . 46
   Table 8  - Additional Event Notification Content for Printer
              Events. . . . . . . . . . . . . . . . . . . . . . . . . 46
   Table 9  - Printer Name in Event Notification Content. . . . . . . 48
   Table 10 - Event Name in Event Notification Content. . . . . . . . 48
   Table 11 - Event Time in Event Notification Content. . . . . . . . 48
   Table 12 - Job Name in Event Notification Content. . . . . . . . . 49
   Table 13 - Job State in Event Notification Content . . . . . . . . 49
   Table 14 - Printer State in Event Notification Content . . . . . . 50
   Table 15 - Information about the Delivery Method . . . . . . . . . 51
   Table 16 - Printer Conformance Requirements for Operations . . . . 74
        

Figures

数字

   Figure 1 - Model for Notification. . . . . . . . . . . . . . . . .  9
   Figure 2 - Model for Notification with Cascading Printers. . . . . 75
   Figure 3 - Opaque Use of a Notification Server Transparent to the
              Client. . . . . . . . . . . . . . . . . . . . . . . . . 76
   Figure 4 - Use of an Extended Notification Recipient transparent
              to the Printer. . . . . . . . . . . . . . . . . . . . . 77
   Figure 5 - Object Model for Notification . . . . . . . . . . . . . 78
        
   Figure 1 - Model for Notification. . . . . . . . . . . . . . . . .  9
   Figure 2 - Model for Notification with Cascading Printers. . . . . 75
   Figure 3 - Opaque Use of a Notification Server Transparent to the
              Client. . . . . . . . . . . . . . . . . . . . . . . . . 76
   Figure 4 - Use of an Extended Notification Recipient transparent
              to the Printer. . . . . . . . . . . . . . . . . . . . . 77
   Figure 5 - Object Model for Notification . . . . . . . . . . . . . 78
        
1. Introduction
1. 介绍

This IPP notification specification is an OPTIONAL extension to Internet Printing Protocol/1.1: Model and Semantics [RFC2911, RFC2910]. See Appendix 29 for a description of the base IPP documents. This document in combination with the following documents is intended to meet the most important notification requirements described in [RFC3997]:

本IPP通知规范是Internet打印协议/1.1:模型和语义[RFC2911,RFC2910]的可选扩展。有关基本IPP文件的说明,请参见附录29。本文件与以下文件结合旨在满足[RFC3997]中所述的最重要的通知要求:

Internet Printing Protocol (IPP): "Job Progress Attributes" [RFC3381]

Internet打印协议(IPP):“作业进度属性”[RFC3381]

Internet Printing Protocol (IPP): "The 'ippget' Delivery Method for Event Notifications" [RFC3996]

Internet打印协议(IPP):“事件通知的“ippget”传递方法”[RFC3996]

This specification REQUIRES that clients and Printers support the 'ippget' Pull Delivery Method [RFC3996]. Conforming client and Printer implementations MAY support additional Push or Pull Delivery Methods as well. Note: this document does not define any Delivery Methods itself, but it does define the rules for conformance for Delivery Method Documents and their registration with IANA (see section 23.7.3).

本规范要求客户端和打印机支持“ippget”拉式交付方法[RFC3996]。符合要求的客户端和打印机实现也可能支持其他推送或拉送方式。注:本文件本身未定义任何交付方法,但定义了交付方法文件的一致性规则及其在IANA的注册(见第23.7.3节)。

Refer to the Table of Contents for the layout of this document.

有关本文件的布局,请参阅目录。

1.1. Notification Overview
1.1. 通知概述

This document defines operations that a client can perform in order to create Subscription Objects in a Printer and carry out other operations on them. A Subscription Object represents a Subscription abstraction. The Subscription Object specifies that when one of the specified Events occurs, the Printer delivers an asynchronous Event Notification to the specified Notification Recipient via the specified Delivery Method (i.e., protocol).

本文档定义了客户端可以执行的操作,以便在打印机中创建订阅对象并对其执行其他操作。订阅对象表示订阅抽象。Subscription对象指定当某个指定事件发生时,打印机通过指定的传递方法(即协议)向指定的通知收件人传递异步事件通知。

When a client (called a Subscribing Client) performs an operation that creates a Subscription Object, the operation contains one or more Subscription Template Attributes Groups. Each such group holds

当客户端(称为订阅客户端)执行创建订阅对象的操作时,该操作包含一个或多个订阅模板属性组。每一个这样的团体都持有

information used by the Printer to initialize a newly created Subscription Object. The Printer creates one Subscription Object for each Subscription Template Attributes Group in the operation. This group is like the Job Template Attributes group defined in [RFC2911]. The following is an example of the information included in a Subscription Template Attributes Group (see section 5 for details on the Subscription Object attributes):

打印机用于初始化新创建的订阅对象的信息。打印机为操作中的每个订阅模板属性组创建一个订阅对象。该组类似于[RFC2911]中定义的作业模板属性组。以下是订阅模板属性组中包含的信息示例(有关订阅对象属性的详细信息,请参见第5节):

1. The names of Subscribed Events that are of interest to the Notification Recipient.

1. 通知收件人感兴趣的已订阅事件的名称。

2. The address (URL) of one Notification Recipient for a Push Delivery Method or the method for a Pull Delivery Method.

2. 推送传递方法或拉送传递方法的一个通知收件人的地址(URL)。

3. The Delivery Method (i.e., the protocol) which the Printer uses to deliver the Event Notification.

3. 打印机用于传递事件通知的传递方法(即协议)。

4. Some opaque data that the Printer delivers to the Notification Recipient in the Event Notification. For example, the Notification Recipient might use this opaque data as a forwarding address for the Event Notification.

4. 打印机在事件通知中传递给通知收件人的某些不透明数据。例如,通知收件人可能使用此不透明数据作为事件通知的转发地址。

5. The charset to use in text fields within an Event Notification

5. 要在事件通知的文本字段中使用的字符集

6. The natural language to use in the text fields of the Event Notification

6. 在事件通知的文本字段中使用的自然语言

7. The requested lease time in seconds for the Subscription Object

7. 订阅对象请求的租用时间(以秒为单位)

An operation that creates a Subscription Object is called a Subscription Creation Operation. These operations include the following operations (see section 11.1 for further details):

创建订阅对象的操作称为订阅创建操作。这些操作包括以下操作(详见第11.1节):

- Job Creation operation: When a client performs such an operation (Print-Job, Print-URI, and Create-Job), a client can include zero or more Subscription Template Attributes Groups in the request. The Printer creates one Subscription Object for each Subscription Template Attributes Group in the request, and the Printer associates each such Subscription Object with the newly created Job. This document extends these operations' definitions in [RFC2911] by adding Subscription Template Attributes Groups in the request and Subscription Attributes Groups in the response.

- 作业创建操作:当客户端执行此类操作(打印作业、打印URI和创建作业)时,客户端可以在请求中包含零个或多个订阅模板属性组。打印机为请求中的每个订阅模板属性组创建一个订阅对象,并将每个此类订阅对象与新创建的作业相关联。本文档通过在请求和响应中的订阅属性组中添加订阅模板属性组,扩展了[RFC2911]中这些操作的定义。

- Create-Job-Subscriptions operation: A client can include one or more Subscription Template Attributes Groups in the request. The Printer creates one Subscription Object for each

- 创建作业订阅操作:客户端可以在请求中包含一个或多个订阅模板属性组。打印机为每个用户创建一个订阅对象

Subscription Template Attributes Group and associates each with the job that is the target of this operation.

订阅模板属性组,并将每个属性与此操作的目标作业相关联。

- Create-Printer-Subscriptions operation: A client can include one or more Subscription Template Attributes Groups in the request. The Printer creates one Subscription Object for each Subscription Template Attributes Group and associates each with the Printer that is the target of this operation.

- 创建打印机订阅操作:客户端可以在请求中包含一个或多个订阅模板属性组。打印机为每个订阅模板属性组创建一个订阅对象,并将每个订阅对象与此操作的目标打印机相关联。

For each of the above operations:

对于上述每个操作:

- the Printer associates a Subscription Object with the Printer or a specific Job. When a Subscription Object is associated with a Job Object, it is called a Per-Job Subscription Object. When a Subscription Object is associated with a Printer Object, it is called a Per-Printer Subscription Object.

- 打印机将订阅对象与打印机或特定作业关联。当订阅对象与作业对象关联时,称为每作业订阅对象。当订阅对象与打印机对象关联时,称为每打印机订阅对象。

- the response contains one Subscription Attributes Group for each Subscription Template Attributes Group in the request and in the same order. When the Printer successfully creates a Subscription Object, its corresponding Subscription Attributes Group contains the "notify-subscription-id" attribute. This attribute uniquely identifies the Subscription Object and is analogous to a "job-id" for a Job object. Some operations described below use the "notify-subscription-id" to identify the target Subscription Object.

- 响应包含请求中每个订阅模板属性组的一个订阅属性组,且顺序相同。当打印机成功创建订阅对象时,其相应的订阅属性组包含“通知订阅id”属性。此属性唯一标识订阅对象,类似于作业对象的“作业id”。下面描述的某些操作使用“通知订阅id”来标识目标订阅对象。

This document defines the following additional operations (see section 11.2 for further details):

本文件规定了以下附加操作(详见第11.2节):

- Restart-Job operation: When a client performs the Restart-Job operation [RFC2911], the Printer re-uses the same Job and its Subscription Objects.

- 重新启动作业操作:当客户端执行重新启动作业操作[RFC2911]时,打印机将重新使用同一作业及其订阅对象。

- Validate-Job operation: When a client performs this operation, a client can include zero or more Subscription Template Attributes Groups in the request. The Printer determines if it could create one Subscription Object for each Subscription Template Attributes Group in the request. This document extends this operation's definition in [RFC2911] by adding Subscription Template Attributes Groups in the request and Subscription Attributes Groups in the response.

- 验证作业操作:当客户端执行此操作时,客户端可以在请求中包含零个或多个订阅模板属性组。打印机确定是否可以为请求中的每个订阅模板属性组创建一个订阅对象。本文档通过在请求中添加订阅模板属性组和在响应中添加订阅属性组,扩展了[RFC2911]中此操作的定义。

- Get-Subscription-Attributes operation: This operation allows a client to obtain the specified attributes of a target Subscription Object.

- 获取订阅属性操作:此操作允许客户端获取目标订阅对象的指定属性。

- Get-Subscriptions operation: This operation allows a client to obtain the specified attributes of all Subscription Objects associated with the Printer or a specified Job.

- 获取订阅操作:此操作允许客户端获取与打印机或指定作业关联的所有订阅对象的指定属性。

- Renew-Subscription operation: This operation renews the lease on the target Per-Printer Subscription Object before it expires. A newly created Per-Printer Subscription Object receives an initial lease. It is the duty of the client to use this operation frequently enough to preserve a Per-Printer Subscription Object. The Printer deletes a Per-Printer Subscription Object when its lease expires. A Per-Job Subscription Object last exactly as long as its associated Job Object and thus doesn't have a lease.

- 续订订阅操作:此操作在目标每打印机订阅对象的租约到期之前续订租约。新创建的每打印机订阅对象接收初始租约。客户机有责任频繁地使用此操作以保留每打印机订阅对象。当租约到期时,打印机将删除每打印机订阅对象。每个作业订阅对象的持续时间与其关联作业对象的持续时间相同,因此没有租约。

- Cancel-Subscription operation: This operation (1) cancels the lease on the specified Per-Printer Subscription Object and thereby deletes the Per-Printer Subscription Object or (2) deletes the Per-Job Subscription Object.

- 取消订阅操作:此操作(1)取消指定的每打印机订阅对象的租约,从而删除每打印机订阅对象,或(2)删除每作业订阅对象。

When an Event occurs, the Printer finds all Subscription Objects listening for the Event (see section 9 for details on finding such Subscription Objects). For each such Subscription Object, the Printer:

当事件发生时,打印机将查找所有侦听该事件的订阅对象(有关查找此类订阅对象的详细信息,请参阅第9节)。对于每个此类订阅对象,打印机:

a) generates an Event Notification with information specified in section 9, AND

a) 使用第9节中指定的信息生成事件通知,以及

b) either:

b) 要么:

i) If the Delivery Method is a Push Delivery Method as indicated by the presence of the Subscription Object's "notify-recipient-uri" attribute, delivers the Event Notification using the Delivery Method and target address identified in the Subscription Object's "notify-recipient-uri" attribute, OR

i) 如果传递方法是存在订阅对象的“通知收件人uri”属性所指示的推送传递方法,则使用订阅对象的“通知收件人uri”属性中标识的传递方法和目标地址传递事件通知,或

ii) If the Delivery Method is a Pull Delivery Method as indicated by the presence of the Subscription Object's "notify-pull-method" attribute, saves Event Notification for a time period called the Event Life defined by the Delivery Method, i.e., the Notification Recipient is expected to fetch the Event Notifications.

ii)如果传递方法是订阅对象的“notify Pull Method”属性所指示的拉式传递方法,则将事件通知保存一段称为传递方法所定义的事件生命期的时间段,即,预期通知接收方将获取事件通知。

2. Models for Notification
2. 通知模式
2.1. Model for Simple Notification (Normative)
2.1. 简单通知模型(规范性)

As part of a Subscription Creation Operation, an IPP Printer (i.e., located in an output device or a server) creates one or more Subscription Objects. In a Subscription Creation Operation, the

作为订阅创建操作的一部分,IPP打印机(即位于输出设备或服务器中)创建一个或多个订阅对象。在订阅创建操作中

client specifies the Notification Recipient to which the Printer is to deliver Event Notifications. A Notification Recipient can be the Subscribing Client or a third party.

客户端指定打印机向其发送事件通知的通知收件人。通知收件人可以是订阅客户端或第三方。

Figure 1 shows the Notification model for a simple Client-Printer relationship.

图1显示了一个简单的客户端-打印机关系的通知模型。

embedded printer:

嵌入式打印机:

                                        output device or server
   PDA, desktop, or server                 +---------------+
        +--------+                         |  ###########  |
        | client |-----Subscription ---------># Printer #  |
        +--------+  Creation Operation     |  # Object  #  |
     +------------+                        |  #####|#####  |
     |Notification|                        +-------|-------+
     |Recipient   |<----IPP Event Notifications----+
     +------------+    (Job and/or Printer Events)
        
                                        output device or server
   PDA, desktop, or server                 +---------------+
        +--------+                         |  ###########  |
        | client |-----Subscription ---------># Printer #  |
        +--------+  Creation Operation     |  # Object  #  |
     +------------+                        |  #####|#####  |
     |Notification|                        +-------|-------+
     |Recipient   |<----IPP Event Notifications----+
     +------------+    (Job and/or Printer Events)
        

Figure 1 - Model for Notification

图1-通知模型

2.2. Additional Models for Notification (Informative)
2.2. 其他通知模型(信息型)

Additional models have been proposed (see Appendices 16, 17, and 18).

已提出其他模型(见附录16、17和18)。

3. Terminology
3. 术语

This section defines terminology used throughout this document. Other terminology is defined in [RFC2911].

本节定义了本文件中使用的术语。[RFC2911]中定义了其他术语。

3.1. Conformance Terminology
3.1. 一致性术语

Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, MAY, NEED NOT, and OPTIONAL, have special meaning relating to conformance as defined in RFC 2119 [RFC2119] and [RFC2911] section 12.1. If an implementation supports the extension defined in this document, then these terms apply; otherwise, they do not. These terms define conformance to this document only; they do not affect conformance to other documents, unless explicitly stated otherwise.

如RFC 2119[RFC2119]和[RFC2911]第12.1节所定义,大写术语(如必须、不得、必需、应该、不应该、可能、不需要和可选)具有与合规性相关的特殊含义。如果实施支持本文件中定义的扩展,则这些条款适用;否则,他们不会。这些术语仅定义与本文件的一致性;除非另有明确说明,否则它们不影响与其他文件的一致性。

Note: a feature that is OPTIONAL in this document becomes REQUIRED if the Printer implements a Delivery Method that REQUIRES the feature.

注意:如果打印机实现了需要此功能的传送方法,则本文档中的可选功能将成为必需功能。

READ-ONLY - an adjective used in an attribute definition to indicate that an IPP Printer MUST NOT allow the attribute's value to be modified.

只读-属性定义中使用的形容词,表示IPP打印机不得修改属性值。

3.2. Other Terminology
3.2. 其他术语

This document uses the same terminology as [RFC2911], such as "client", "Printer", "attribute", "attribute value", "keyword", "operation", "request", "response", "administrator", "operator", and "support". In addition, the following terms are defined for use in this document and the Delivery Method Documents:

本文档使用与[RFC2911]相同的术语,如“客户端”、“打印机”、“属性”、“属性值”、“关键字”、“操作”、“请求”、“响应”、“管理员”、“操作员”和“支持”。此外,本文件和交付方法文件中定义了以下术语:

Compound Event Notification - two or more Event Notifications that a Printer delivers together as a single request or response. The Delivery Method Document specifies whether the Delivery Method supports Compound Event Notifications.

复合事件通知—打印机作为单个请求或响应一起发送的两个或多个事件通知。传递方法文档指定传递方法是否支持复合事件通知。

Delivery Method - the mechanism by which the Printer delivers an Event Notification.

传递方法—打印机传递事件通知的机制。

Delivery Method Document - a document, separate from this document, that defines a Delivery Method.

交付方法文档-与本文档分开的定义交付方法的文档。

Event - some occurrence (either expected or unexpected) within the printing system of a change of state, condition, or configuration of a Job or Printer object. An Event occurs only at one instant in time and does not span the time the physical Event takes place. For example, jam-occurred and jam-cleared are two distinct, instantaneous Events, even though the jam may last for a while.

事件-打印系统内作业或打印机对象的状态、条件或配置发生变化(预期或意外)。事件仅在一个瞬间发生,不跨越物理事件发生的时间。例如,阻塞发生和阻塞清除是两个不同的瞬时事件,即使阻塞可能会持续一段时间。

Event Life - For a Pull Delivery Method, the length of time in seconds after an Event occurs during which the Printer will retain that Event for delivery in an Event Notification. After the Event Life expires, the Printer will no longer deliver an Event Notification for that Event in such a response.

事件寿命-对于拉式传递方法,事件发生后打印机将保留该事件以在事件通知中传递的时间长度(秒)。事件寿命到期后,打印机将不再在此类响应中发送该事件的事件通知。

Event Notification - the information about an Event that the Printer delivers when an Event occurs.

事件通知—事件发生时打印机传递的有关事件的信息。

Event Notification Attributes Group - The attributes group which is used to deliver an Event Notification in a request (Push Delivery Methods) or a response (Pull Delivery Methods).

事件通知属性组—用于在请求(推送传递方法)或响应(拉送传递方法)中传递事件通知的属性组。

Human Consumable Event Notification - localized text for human consumption only. There is no standardized format and thus programs should not try to parse this text.

人员消耗事件通知-仅限人员消耗的本地化文本。没有标准化的格式,因此程序不应该尝试解析此文本。

Job Creation operation - One of the operations that creates a Job object: Print-Job, Print-URI and Create-Job. The Restart-Job operation [RFC2911] is not considered a Job Creation operation, since the Printer re-uses the existing Job object. The Validate-Job operation is not considered a Job Creation operation because no Job

作业创建操作-创建作业对象的操作之一:打印作业、打印URI和创建作业。重新启动作业操作[RFC2911]不被视为作业创建操作,因为打印机重新使用现有作业对象。验证作业操作不被视为作业创建操作,因为没有作业

object is created. Therefore, when a statement also applies to either the Restart-Job and/or the Validate-Job operation, they are mentioned explicitly.

对象被创建。因此,当一条语句也适用于重启作业和/或验证作业操作时,会明确提到它们。

Job Event - an Event caused by some change in a particular job on the Printer, e.g., 'job-completed'.

作业事件-由打印机上特定作业的某些更改引起的事件,例如“作业已完成”。

Machine Consumable Event Notification - bytes for program consumption. The bytes are formatted according to the Delivery Method document.

机器消耗事件通知-程序消耗的字节数。字节根据交付方法文档进行格式化。

Notification - when not in the phrases 'Event Notification' and 'Notification Recipient' - the concepts of this specification, i.e., Events, Subscription Objects, and Event Notifications.

通知-当不在短语“事件通知”和“通知接收者”中时-指本规范的概念,即事件、订阅对象和事件通知。

Notification Recipient - the entity to which the Printer delivers an Event Notification. For Push Delivery Methods, the IPP Printer sends the Notifications to a Notification Recipient. For Pull Delivery Methods, the Notification Recipient is acting in the role of an IPP client and requests Event Notifications and so the terms "client" and

通知收件人—打印机向其发送事件通知的实体。对于推送传递方法,IPP打印机将通知发送给通知收件人。对于拉式传递方法,通知接收方扮演IPP客户端的角色,请求事件通知以及术语“客户端”和

"Notification Recipient" are used interchangeably with such Delivery Methods. For example, see [RFC3996].

“通知接收人”可与此类交付方法互换使用。例如,请参见[RFC3996]。

Per-Job Subscription Object - A Subscription Object that is associated with a single Job. The Create-Job-Subscriptions operation and Job Creation operations create such an object.

每作业订阅对象-与单个作业关联的订阅对象。创建作业订阅操作和作业创建操作创建这样的对象。

Per-Printer Subscription Object - A Subscription Object that is associated with the Printer as a whole. The Create-Printer-Subscriptions operation creates such an object.

每打印机订阅对象-作为一个整体与打印机关联的订阅对象。“创建打印机订阅”操作将创建这样的对象。

Printer Event - an Event caused by some change in the Printer that is not specific to a job, e.g., 'printer-state-changed'.

打印机事件—由打印机中的某些更改引起的事件,这些更改不是特定于某个作业的,例如“打印机状态已更改”。

Pull Delivery Method - The Printer saves Event Notifications for some event life time and expects the Notification Recipient to request Event Notifications. The Printer delivers the Event Notifications in a response to such a request.

Pull Delivery Method(拉式传递方法)—打印机将事件通知保存到某个事件生存期,并希望通知收件人请求事件通知。打印机在响应此类请求时发送事件通知。

Push Delivery Method -The Printer delivers the Event Notification shortly after an Event occurs.

推送传递方法-打印机在事件发生后不久传递事件通知。

Subscribed Event - an Event that the Subscribing Client expresses interest in by making it a value of the "notify-events" attribute on a Subscription Object.

Subscribed Event—订阅客户端通过将其设置为订阅对象上“notify events”属性的值表示感兴趣的事件。

Subscribed Job Event - a Subscribed Event that is a Job Event.

订阅的作业事件-作为作业事件的订阅事件。

Subscribed Printer Event - a Subscribed Event that is a Printer Event.

订阅的打印机事件-作为打印机事件的订阅事件。

Subscribing Client - The client that creates the Subscription Object.

订阅客户端-创建订阅对象的客户端。

Subscription Attributes Group - The attributes group in a response that contains Subscription Object attributes.

订阅属性组-响应中包含订阅对象属性的属性组。

Subscription Creation Operation - An operation that creates a Subscription Object: Job Creation operations, Create-Job-Subscriptions operation, Create-Printer-Subscriptions operation. In the context of a Job Creation operation, a Subscription Creation Operation is the part of the Job Creation operation that creates one or more Subscription objects. The Restart-Job operation [RFC2911] is not considered a Subscription Creation Operation, since the Printer re-uses the Job's existing Subscription Objects, rather than creating any new Subscription Objects.

订阅创建操作-创建订阅对象的操作:作业创建操作、创建作业订阅操作、创建打印机订阅操作。在作业创建操作的上下文中,订阅创建操作是创建一个或多个订阅对象的作业创建操作的一部分。重新启动作业操作[RFC2911]不被视为订阅创建操作,因为打印机重新使用作业的现有订阅对象,而不是创建任何新的订阅对象。

Subscription Creation Request - The request portion of a Subscription Creation Operation.

订阅创建请求-订阅创建操作的请求部分。

Subscription Description Attributes - Subscription Object attributes that a Printer supplies during a Subscription Creation Operation.

订阅说明属性—打印机在订阅创建操作期间提供的订阅对象属性。

Subscription Object - An object containing a set of attributes that indicate: the Notification Recipient (for Push Delivery Method only), the Delivery Method, the Subscribed Events that cause the Printer to deliver an Event Notification, and the information to include in an Event Notification.

订阅对象—包含一组属性的对象,这些属性指示:通知收件人(仅适用于推送传递方法)、传递方法、导致打印机传递事件通知的订阅事件,以及要包含在事件通知中的信息。

Subscription Template Attributes - Subscription Object attributes that a client can supply in a Subscription Creation Operation and associated Printer Object attributes that specify supported and default values for the Subscription Object attributes.

订阅模板属性—客户端可以在订阅创建操作中提供的订阅对象属性,以及指定订阅对象属性的支持值和默认值的关联打印机对象属性。

Subscription Template Attributes Group - The attributes group in a request that contains Subscription Object attributes that are Subscription Template Attributes.

Subscription Template Attributes Group—请求中包含属于订阅模板属性的订阅对象属性的属性组。

4. Object Relationships
4. 对象关系

This section defines the object relationships between the Printer, Job, and Subscription Objects. It does not define the implementation. For an illustration of these relationships, see Appendix 19.

本节定义打印机、作业和订阅对象之间的对象关系。它没有定义实现。有关这些关系的说明,请参见附录19。

4.1. Printer and Per-Printer Subscription Objects
4.1. 打印机和每打印机订阅对象

1. A Printer object can be associated with zero or more Per-Printer Subscription Objects.

1. 打印机对象可以与零个或多个每打印机订阅对象关联。

2. Each Per-Printer Subscription Object is associated with exactly one Printer object.

2. 每个每打印机订阅对象仅与一个打印机对象关联。

4.2. Printer, Job and Per-Job Subscription Objects
4.2. 打印机、作业和每作业订阅对象

1. A Printer object is associated with zero or more Job objects.

1. 打印机对象与零个或多个作业对象关联。

2. Each Job object is associated with exactly one Printer object.

2. 每个作业对象仅与一个打印机对象关联。

3. A Job object is associated with zero or more Per-Job Subscription Objects.

3. 作业对象与零个或多个每个作业订阅对象关联。

4. Each Per-Job Subscription Object is associated with exactly one Job object.

4. 每个每个作业订阅对象仅与一个作业对象关联。

5. Subscription Object
5. 订阅对象

A Subscribing Client creates a Subscription Object with a Subscription Creation Operation in order to indicate its interest in certain Events. See section 11 for a description of these operations. When an Event occurs, the Subscription Object specifies to the Printer where to deliver Event Notifications for Push Delivery Methods only, how to deliver them, and what to include in them. See section 9 for details on the contents of an Event Notification.

订阅客户端通过订阅创建操作创建订阅对象,以表明其对某些事件的兴趣。有关这些操作的说明,请参见第11节。当事件发生时,Subscription对象向打印机指定仅在何处传递推送传递方法的事件通知、如何传递以及其中包含的内容。有关事件通知内容的详细信息,请参见第9节。

Using the IPP Job Template attributes as a model (see [RFC2911] section 4.2), the attributes of a Subscription Object are divided into two categories: Subscription Template Attributes and Subscription Description Attributes.

使用IPP作业模板属性作为模型(请参见[RFC2911]第4.2节),订阅对象的属性分为两类:订阅模板属性和订阅描述属性。

Subscription Template attributes are, in turn, like the Job Template attributes, divided into

订阅模板属性与作业模板属性类似,又分为

1. Subscription Object attributes that a client can supply in a Subscription Creation Request and

1. 客户端可以在订阅创建请求中提供的订阅对象属性,以及

2. their associated Printer Object attributes that specify supported and default values for the Subscription Object attributes

2. 它们的关联打印机对象属性,指定订阅对象属性的支持值和默认值

The remainder of this section specifies general rules for Subscription Template Attributes and describes each attribute in a Subscription Object.

本节的其余部分指定订阅模板属性的一般规则,并描述订阅对象中的每个属性。

5.1. Rules for Support of Subscription Template Attributes
5.1. 支持订阅模板属性的规则

Subscription Template Attributes are fundamental to the Notification model described in this specification. The client supplies these attributes in Subscription Creation Operations and the Printer uses these attributes to populate a newly created Subscription Object.

订阅模板属性是本规范中描述的通知模型的基础。客户端在订阅创建操作中提供这些属性,打印机使用这些属性填充新创建的订阅对象。

Subscription Objects attributes that are Subscription Template Attributes conform to the following rules:

作为订阅模板属性的订阅对象属性符合以下规则:

1. Each attribute's name starts with the prefix string "notify-" and this document calls such attributes "notify-xxx".

1. 每个属性的名称都以前缀字符串“notify-”开头,本文档将这些属性称为“notify xxx”。

2. For each "notify-xxx" Subscription Object attribute defined in column 1 of Table 1 in section 5.3, Table 1 specifies corresponding Printer attributes: "notify-xxx-default", "notify-xxx-supported", "yyy-supported" and "notify-max-xxx-supported" defined in column 2 of Table 1. Note "xxx" stands for the same string in each case and "yyy" stands for some other string.

2. 对于第5.3节表1第1列中定义的每个“notify xxx”订阅对象属性,表1指定了相应的打印机属性:“notify xxx default”、“notify xxx supported”、“yyy supported”和表1第2列中定义的“notify max xxx supported”。注:在每种情况下,“xxx”代表相同的字符串,“yyy”代表其他字符串。

3. If a Printer supports "notify-xxx" in column 1 of Table 1, then the Printer MUST support all associated attributes specified in column 2 of Table 1. For example, Table 1 shows that if the Printer supports "notify-events", it MUST support "notify-events-default", "notify-events-supported" and "notify-max-events-supported".

3. 如果打印机支持表1第1列中的“通知xxx”,则打印机必须支持表1第2列中指定的所有相关属性。例如,表1显示,如果打印机支持“notify events”,则必须支持“notify events default”、“notify events supported”和“notify max events supported”。

4. If a Printer does not support "notify-xxx" in column 1 of Table 1, then the Printer MUST NOT support any associated "notify-yyy" attributes specified in column 2 of Table 1. For example, Table 1 shows that if the Printer doesn't support "notify-events", it MUST NOT support "notify-events-default", "notify-events-supported" and "notify-max-events-supported". Note this rule does not apply to attributes whose names do not start with the string "notify-" and are thus defined in another object and used by other attributes.

4. 如果打印机不支持表1第1列中的“通知xxx”,则打印机不得支持表1第2列中指定的任何相关“通知yyy”属性。例如,表1显示,如果打印机不支持“notify events”,则它不能支持“notify events default”、“notify events supported”和“notify max events supported”。注意:此规则不适用于名称不以字符串“notify-”开头的属性,因此在另一个对象中定义并由其他属性使用。

5. Most "notify-xxx" attributes have a corresponding "yyy-supported" attribute that specifies the supported values for "notify-xxx". Column 2 of Table 1 specifies the name of each "yyy-supported" attribute. The naming rules of IPP/1.1 (see [RFC2911]) are used when "yyy-supported" is "notify-xxx-supported".

5. 大多数“notify xxx”属性具有相应的“yyy supported”属性,该属性指定“notify xxx”的支持值。表1的第2列指定了每个“yyy支持”属性的名称。当“支持yyy”为“支持通知xxx”时,使用IPP/1.1(参见[RFC2911])的命名规则。

6. Some "notify-xxx" attributes have a corresponding "notify-xxx-default" attribute that specifies the value for "notify-xxx" if the client does not supply it. Column 2 of Table 1 specifies the name of each "notify-xxx-default" attribute. The naming rules of IPP/1.1 (see [RFC2911]) are used.

6. 某些“notify xxx”属性具有相应的“notify xxx default”属性,该属性指定了如果客户端不提供“notify xxx”的值。表1的第2列指定了每个“notify xxx default”属性的名称。使用IPP/1.1(见[RFC2911])中的命名规则。

If a client wishes to present an end user with a list of supported values from which to choose, the client SHOULD query the Printer for its supported value attributes. The client SHOULD also query the default value attributes. If the client then limits selectable values to only those values that are supported, the client can guarantee that the values supplied by the client in the create request all fall within the set of supported values at the Printer. When querying the Printer, the client MAY enumerate each attribute by name in the Get-Printer-Attributes Request, or the client MAY just supply the 'subscription-template' group name in order to get the complete set of supported attributes (both supported and default attributes - see section 11.2.3).

如果客户机希望向最终用户提供支持值列表以供选择,则客户机应向打印机查询其支持值属性。客户机还应该查询默认值属性。如果客户端随后将可选值限制为仅支持的值,则客户端可以保证客户端在创建请求中提供的值都在打印机支持的值集内。查询打印机时,客户机可以在获取打印机属性请求中按名称枚举每个属性,或者客户机可以只提供“订阅模板”组名称,以获取完整的支持属性集(支持属性和默认属性-请参阅第11.2.3节)。

5.2. Rules for Processing Subscription Template Attributes
5.2. 处理订阅模板属性的规则

This section defines a detailed set of rules that a Printer follows when it processes Subscription Template Attributes in a Subscription Creation Request. These rules are similar to the rules for processing Operation attributes in [RFC2911]. That is, the Printer may or may not support an attribute and a client may or may not supply the attribute. Some combinations of these cases are OK. Others return warnings or errors, and perhaps a list of unsupported attributes.

本节定义打印机在处理订阅创建请求中的订阅模板属性时遵循的一组详细规则。这些规则类似于[RFC2911]中处理操作属性的规则。也就是说,打印机可能支持也可能不支持属性,客户机可能提供也可能不提供属性。这些情况的一些组合是可以的。另一些则返回警告或错误,可能还返回不受支持的属性列表。

A Printer MUST implement the following behavior for processing Subscription Template Attributes in a Subscription Creation Request:

打印机必须实现以下行为才能处理订阅创建请求中的订阅模板属性:

1. If a client supplies a "notify-xxx" attribute from column 1 of Table 1 and the Printer supports it and its value, the Printer MUST populate the attribute on the created Subscription Object.

1. 如果客户端提供表1第1列中的“notify xxx”属性,并且打印机支持该属性及其值,则打印机必须在创建的订阅对象上填充该属性。

2. If a client supplies a "notify-xxx" attribute from column 1 of Table 1 and the Printer doesn't support it or its value, the Printer MUST NOT populate the attribute on the created Subscription Object with it. The Printer MUST do one of the following:

2. 如果客户端提供表1第1列中的“notify xxx”属性,而打印机不支持该属性或其值,则打印机不得使用该属性填充已创建订阅对象上的属性。打印机必须执行以下操作之一:

a) If the value of the "notify-xxx" attribute is unsupported, the Printer MUST return the attribute with its value in the Subscription Attributes Group of the response.

a) 如果“notify xxx”属性的值不受支持,打印机必须在响应的订阅属性组中返回该属性及其值。

b) If "notify-xxx" is an unsupported attribute, the Printer MUST return the attribute in the Subscription Attributes Group of the response with the 'unsupported' out-of-band value.

b) 如果“notify xxx”是不受支持的属性,则打印机必须在响应的订阅属性组中返回带外值为“unsupported”的属性。

Note: The rules of this step are the same as for Unsupported Attributes [RFC2911] section 3.1.7. except that the unsupported attributes are returned in the Subscription Attributes Group

注:此步骤的规则与[RFC2911]第3.1.7节中不支持的属性的规则相同。除了在订阅属性组中返回不受支持的属性之外

rather than the Unsupported Attributes Group because Subscription Creation Operations can create more than one Subscription Object).

而不是不支持的属性组,因为订阅创建操作可以创建多个订阅对象)。

3. If a client is REQUIRED to supply a "notify-xxx" attribute from column 1 of Table 1 and the Printer doesn't support the supplied value, the Printer MUST NOT create a Subscription Object. The rules for Unsupported Attributes in step #2 still apply.

3. 如果要求客户端提供表1第1列中的“notify xxx”属性,并且打印机不支持提供的值,则打印机不得创建订阅对象。步骤2中不支持的属性的规则仍然适用。

4. If a client does not supply a "notify-xxx" attribute from column 1 of Table 1 and the attribute is REQUIRED for the client to supply, the Printer MUST reject the Subscription Creation Operation (including Job Creation operations) without creating a Subscription Object, and MUST return in the response:

4. 如果客户端未提供表1第1列中的“notify xxx”属性,并且客户端需要提供该属性,则打印机必须拒绝订阅创建操作(包括作业创建操作),而不创建订阅对象,并且必须在响应中返回:

a) the status code 'client-error-bad-request' AND

a) 状态代码“客户端错误错误请求”和

b) no Subscription Attribute Groups.

b) 没有订阅属性组。

5. If a client does not supply a "notify-xxx" attribute from column 1 of Table 1 that is OPTIONAL for the client to supply, and column 2 of Table 1 either:

5. 如果客户机未提供表1第1列中的“notify xxx”属性,该属性是客户机可以提供的可选属性,以及表1第2列中的以下任一属性:

a) specifies a "notify-xxx-default" attribute, the Printer MUST behave as if the client had supplied the "notify-xxx-default" attribute (see step #1) and populate the Subscription object with the value of the "notify-xxx-default" attribute as part of the Subscription Creation operation (unlike Job Template attributes where the Printer does not populate the Job object with defaults - see [RFC2911]) OR

a) 指定“notify xxx default”属性,打印机的行为必须与客户端提供了“notify xxx default”属性(请参见步骤#1)一样,并使用“notify xxx default”属性的值填充订阅对象,作为订阅创建操作的一部分(与打印机不使用默认值填充作业对象的作业模板属性不同-请参见[RFC2911])或

b) does not specify a "notify-xxx-default" attribute, the Printer MUST populate the "notify-xxx" attribute on the Subscription Object according to the definition of the "notify-xxx" attribute in a section 5.3. For some attributes, the "notify-xxx" is populated with the value of some other attribute, and for others, the "notify-xxx" is NOT populated on the Subscription object at all.

b) 如果未指定“notify xxx default”属性,打印机必须根据第5.3节中“notify xxx”属性的定义在订阅对象上填充“notify xxx”属性。对于某些属性,“notify xxx”由其他属性的值填充,而对于其他属性,“notify xxx”根本不在订阅对象上填充。

6. A Printer MUST create a Subscription Object for each Subscription Template Attributes group in a request unless the Printer:

6. 打印机必须为请求中的每个订阅模板属性组创建订阅对象,除非打印机:

a) encounters some attributes in a Subscription Template Attributes Group that require the Printer not to create the Subscription Object OR

a) 遇到订阅模板属性组中的某些属性,这些属性要求打印机不创建订阅对象或

b) would create a Per-Job Subscription Object when it doesn't have space for another Per-Job Subscription Object OR

b) 将在没有空间容纳另一个每作业订阅对象时创建每作业订阅对象,或

c) would create a Per-Printer Subscription Object when it doesn't have space for another Per-Printer Subscription Object.

c) 将在没有空间容纳另一个每打印机订阅对象时创建每打印机订阅对象。

7. A response MUST contain one Subscription Attributes Group for each Subscription Template Attributes Group in the request (and in the same order) whether the Printer creates a Subscription Object from the Subscription Template Attributes Group or not. However, the attributes in each Subscription Attributes Group can be in any order.

7. 对于请求中的每个订阅模板属性组,响应必须包含一个订阅属性组(且顺序相同),无论打印机是否从订阅模板属性组创建订阅对象。但是,每个订阅属性组中的属性可以是任意顺序。

8. The Printer MUST populate each Subscription Attributes Group of the response such that each contains:

8. 打印机必须填充响应的每个订阅属性组,以便每个组包含:

a) the "notify-subscription-id" attribute (see section 5.4.1), if and only if the Printer creates a Subscription Object.

a) 当且仅当打印机创建订阅对象时,“通知订阅id”属性(请参见第5.4.1节)。

b) the "notify-lease-duration" attribute (see section 5.3.8), if and only if the Printer creates a Per-Printer Subscription Object. The value of this attribute is the value of the Subscription Object's "notify-lease-duration" attribute. This value MAY be different from the client-supplied value (see section 5.3.8). If a client supplies this attribute in the creation of a Per-Job Subscription Object, it MUST appear in this group with the out-of-band value 'unsupported' to indicate that the Printer doesn't support it in this context.

b) “通知租赁期限”属性(参见第5.3.8节),当且仅当打印机创建每打印机订阅对象时。此属性的值是订阅对象的“通知租赁期限”属性的值。该值可能不同于客户提供的值(见第5.3.8节)。如果客户端在创建每作业订阅对象时提供此属性,则该属性必须显示在此组中,并带有带外值“unsupported”,以指示打印机在此上下文中不支持该属性。

c) all of the unsupported Subscription Template Attributes from step #2. Note, they are not returned in the Unsupported Attributes Group in order to separate the unsupported attributes for each Subscription Object.

c) 步骤2中所有不受支持的订阅模板属性。注意,不支持属性组中不会返回这些属性,以便为每个订阅对象分离不支持的属性。

d) the "notify-status-code" attribute if the Printer does not create the Subscription Object or if there are unsupported attributes from step #2. The possible values of the "notify-status-code" attribute are shown below (see section 13 for more details). The Printer returns the first value in the list below that describes the status.

d) 如果打印机未创建订阅对象或步骤2中存在不受支持的属性,则为“通知状态代码”属性。“通知状态代码”属性的可能值如下所示(有关更多详细信息,请参阅第13节)。打印机返回下面列表中描述状态的第一个值。

'client-error-uri-scheme-not-supported': the Subscription Object was not created because the scheme of the "notify-recipient-uri" attribute is not supported. See section 13.1 for more details about this status code. See step #3 in this section for the case that causes this error, and the resulting step #6a) that causes the Printer not to create the Subscription Object.

“不支持客户端错误uri方案”:未创建订阅对象,因为不支持“通知收件人uri”属性的方案。有关此状态代码的更多详细信息,请参见第13.1节。请参阅本节中的步骤#3了解导致此错误的情况,以及导致打印机不创建订阅对象的结果步骤#6a)。

'client-error-attributes-or-values-not-supported': the Subscription Object was not created because the method of the "notify-pull-method" attribute is not supported. See section 13.1 for more details about this status code. See step #3 in this section for the case that causes this error, and the resulting step #6a) that causes the Printer not to create the Subscription Object.

“不支持客户端错误属性或值”:未创建订阅对象,因为不支持“notify pull method”属性的方法。有关此状态代码的更多详细信息,请参见第13.1节。请参阅本节中的步骤#3了解导致此错误的情况,以及导致打印机不创建订阅对象的结果步骤#6a)。

'client-error-too-many-subscriptions': the Subscription Object was not created because the Printer has no space for additional Subscription Objects. The client MAY try again later. See section 13.3 for more details about this status code. See steps #6b) and #6c) in this section for the cases that causes this error.

“客户端错误订阅过多”:未创建订阅对象,因为打印机没有空间容纳其他订阅对象。客户端可能稍后重试。有关此状态代码的更多详细信息,请参见第13.3节。有关导致此错误的情况,请参阅本节中的步骤#6b)和#6c)。

'successful-ok-too-many-events': the Subscription Object was created without the "notify-events" values included in this Subscription Attributes Group because the "notify-events" attribute contains too many values. See section 13.4 for more details about this status code. See step #2 in this section and section 5.3.3 for the cases that cause this status code.

“成功确定太多事件”:创建订阅对象时没有包含在此订阅属性组中的“通知事件”值,因为“通知事件”属性包含太多值。有关此状态代码的更多详细信息,请参见第13.4节。有关导致该状态代码的情况,请参见本节第2步和第5.3.3节。

'successful-ok-ignored-or-substituted-attributes': the Subscription Object was created but some supplied Subscription Template Attributes are unsupported. These unsupported attributes are also in the Subscription Attributes Group. See section 13.5 for more details about this status code. See step #2 in this section for the cases that cause this status code.

“成功确定忽略或替换的属性”:已创建订阅对象,但不支持提供的某些订阅模板属性。这些不受支持的属性也位于“订阅属性”组中。有关此状态代码的更多详细信息,请参见第13.5节。有关导致此状态代码的情况,请参阅本节中的步骤#2。

9. The Printer MUST validate all Subscription Template Attributes and MUST return all unsupported attributes and values in the corresponding Subscription Attributes Group of the response (see step #2) unless it determines that it could not create additional Subscription Objects because of condition #6b) or condition #6c). Then, the Printer NEED NOT validate these additional Subscription Template Attributes and the client MUST NOT expect to find unsupported attributes from step #2 in such additional Subscription Attribute Groups.

9. 打印机必须验证所有订阅模板属性,并且必须在响应的相应订阅属性组中返回所有不受支持的属性和值(请参见步骤#2),除非它确定由于条件#6b)或条件#6c)而无法创建其他订阅对象。然后,打印机无需验证这些附加订阅模板属性,客户端也不得期望在这些附加订阅属性组中从步骤#2中找到不受支持的属性。

5.3. Subscription Template Attributes
5.3. 订阅模板属性

This section contains the Subscription Template Attributes defined for the Subscription and Printer objects.

本节包含为订阅和打印机对象定义的订阅模板属性。

Table 1 below shows the Subscription Template Attributes and has two columns:

下表1显示了订阅模板属性,共有两列:

- Attribute in Subscription Object: the name and attribute syntax of each Subscription Object Attribute that is a Subscription Template Attribute

- 订阅对象中的属性:作为订阅模板属性的每个订阅对象属性的名称和属性语法

- Default and Supported Printer Attributes: the default attribute and supported Printer attributes that are associated with the attribute in column 1.

- 默认和支持的打印机属性:与第1列中的属性关联的默认属性和支持的打印机属性。

The "notify-recipient-uri" attribute is for use with Push Delivery Methods. The "notify-pull-method" attribute is for use with Pull Delivery Methods.

“NotifyRecipientURI”属性用于推送传递方法。“notifypullmethod”属性用于pulldelivery方法。

For Push Delivery Methods, a Printer MUST support all attributes in Table 1 below except for "notify-pull-method" and "notify-attributes" (and "notify-pull-method-supported" and "notify-attributes-supported"). For Pull Delivery Methods, a Printer MUST support all attributes in Table 1 below except for "notify-recipient-uri" and "notify-attributes" (and "notify-schemes-supported" and "notify-attributes-supported"). If a Printer supports both Push and Pull Delivery Methods, then it MUST support both "notify-recipient-uri" and "notify-pull-method" attributes.

对于推送交付方法,打印机必须支持下表1中的所有属性,但“notify pull method”和“notify attributes”(以及“notify pull method supported”和“notify attributes supported”)除外。对于拉式交付方法,打印机必须支持下表1中的所有属性,但“通知收件人uri”和“通知属性”(以及“支持的通知方案”和“支持的通知属性”)除外。如果打印机同时支持推送和拉送传递方法,则它必须同时支持“通知收件人uri”和“通知拉送方法”属性。

For Pull Delivery Methods, a client MUST supply "notify-recipient-uri" and MAY omit any of the rest of the attributes in column 1 of Table 1 in a Subscription Creation Request. For Push Delivery Methods, a client MUST supply "notify-pull-method" and MAY omit any of the rest of the attributes in column 1 of Table 1 in a Subscription Creation Request. A client MUST NOT supply both "notify-recipient-uri" and "notify-pull-method" attributes in the same Subscription Creation Request.

对于拉式传递方法,客户端必须提供“NotifyRecipientURI”,并且可以在订阅创建请求中省略表1第1列中的任何其他属性。对于推送传递方法,客户端必须提供“notify pull method”,并且可以在订阅创建请求中省略表1第1列中的任何其他属性。客户端不能在同一订阅创建请求中同时提供“通知收件人uri”和“通知请求方法”属性。

Note: The Default and Supported Printer attributes listed in column 2 of Table 1 do not have separate sections in this specification defining their semantics. Instead, the section for the corresponding Subscription Object attribute (column 1 of Table 1) contains the semantics of these Printer attributes. This approach follows the precedence of the Job Template attributes in section 4.2 of [RFC2911] where the corresponding "xxx-default" and "xxx-supported" Printer attributes are defined in the same section as the "xxx" Job attribute.

注意:表1第2列中列出的默认和支持的打印机属性在本规范中没有定义其语义的单独部分。相反,对应的订阅对象属性(表1的第1列)部分包含这些打印机属性的语义。此方法遵循[RFC2911]第4.2节中作业模板属性的优先级,其中相应的“xxx默认”和“xxx支持”打印机属性与“xxx”作业属性在同一节中定义。

Table 1 - Subscription Template Attributes

表1-订阅模板属性

Attribute in Subscription Default and Supported Printer Object Attributes

订阅默认和支持的打印机对象属性中的属性

notify-recipient-uri (uri) * notify-schemes-supported (1setOf uriScheme) notify-pull-method (type2 notify-pull-method-supported (1setOf keyword) ** type2 keyword) notify-events (1setOf type2 notify-events-default (1setOf type2 keyword) keyword) notify-events-supported (1setOf type2 keyword) notify-max-events-supported (integer(2:MAX))

notify recipient uri(uri)*支持的notify schemes(1setOf uriScheme)notify pull方法(支持的type2 notify pull方法(1setOf关键字)**type2关键字)notify事件(1setOf type2 notify events默认值(1setOf type2关键字)关键字)支持的notify events(1setOf type2关键字)支持的notify max事件(整数(2:max))

notify-attributes (1setOf notify-attributes-supported (1setOf type2 keyword) type2 keyword) notify-user-data (octetString(63)) notify-charset (charset) charset-supported (1setOf charset) notify-natural-language generated-natural-language-supported (naturalLanguage) (1setOf naturalLanguage) notify-lease-duration notify-lease-duration-default (integer(0:MAX)) (integer(0:67108863)) notify-lease-duration-supported (1setOf (integer(0: 67108863) | rangeOfInteger(0:67108863))) notify-time-interval (integer(0:MAX))

notify attributes(1setOf notify attributes supported(1setOf type2关键字)type2关键字)notify user data(八进制字符串(63))notify charset(字符集)notify charset supported(1setOf charset)notify natural language生成的natural language supported(natural language)(1setOf natural language)notify lease duration notify lease默认值支持(整数(0:MAX))(整数(0:67108863))通知租赁期限(1setOf(整数(0:67108863)| rangeOfInteger(0:67108863)))通知时间间隔(整数(0:MAX))

* "notify-recipient-uri" is for Push Delivery Methods only. ** "notify-pull-method" is for Pull Delivery Methods only.

* “通知收件人uri”仅适用于推送传递方法。**“通知拉动方法”仅适用于拉动交付方法。

5.3.1. notify-recipient-uri (uri)
5.3.1. 通知收件人uri(uri)

This attribute's value is a URL, which is a special case of a URI. Its value consists of a scheme and an address. The address specifies the Notification Recipient and the scheme specifies the Push Delivery Method for each Event Notification associated with this Subscription Object.

该属性的值是URL,这是URI的一个特例。它的值由一个方案和一个地址组成。地址指定通知收件人,方案指定与此订阅对象关联的每个事件通知的推送传递方法。

If a Printer supports any Push Delivery Methods, a Printer MUST support this attribute and return the value as supplied by the client (no case conversion or other canonicalization) in any operation response that includes this attribute.

如果打印机支持任何推送传递方法,则打印机必须支持此属性,并在包含此属性的任何操作响应中返回客户端提供的值(无大小写转换或其他规范化)。

For a Push Delivery Method, a client MUST supply this attribute in a Subscription Creation Operation. Thus there is no need for a default Printer attribute.

对于推送传递方法,客户端必须在订阅创建操作中提供此属性。因此,不需要默认打印机属性。

The URI scheme of the value of this attribute on a Subscription object MUST be a value of the "notify-schemes-supported (1setOf uriScheme)" Printer attribute (see section 5.3.1.1). Note: According to [RFC2396] the ":" terminates the scheme and so is not part of the scheme. Therefore, values of the "notify-schemes-supported" Printer attribute do not include the ":" character.

订阅对象上此属性值的URI模式必须是“notify schemes supported(1setOf URI模式)”打印机属性的值(请参阅第5.3.1.1节)。注:根据[RFC2396]:“终止方案,因此不属于方案的一部分。因此,“支持的通知方案”打印机属性的值不包括“:”字符。

If the client supplies an unsupported scheme in the value of this attribute, then the Printer MUST NOT create the Subscription Object and MUST return the "notify-status-code" attribute with the 'client-error-uri-scheme-not-supported' value in the Subscription Attributes Group in the response.

如果客户端在此属性的值中提供了不受支持的方案,则打印机不得创建订阅对象,并且必须在响应中的订阅属性组中返回“通知状态代码”属性和“客户端错误uri方案不受支持”值。

5.3.1.1. notify-schemes-supported (1setOf uriScheme)
5.3.1.1. 支持的通知方案(1个URI方案)

This attribute contains the URI schemes supported in the "notify-recipient-uri" Subscription Template attribute. See sections 5.1 and 5.2 for the behavior of "xxx-supported" Subscription Template Printer attributes.

此属性包含“通知收件人URI”订阅模板属性中支持的URI方案。有关“支持xxx”订阅模板打印机属性的行为,请参见第5.1节和第5.2节。

5.3.2. notify-pull-method (type2 keyword)
5.3.2. 通知拉取方法(type2关键字)

This attribute's value is a type2 keyword indicating which Pull Delivery Method is to be used.

该属性的值是一个type2关键字,指示要使用哪个Pull传递方法。

Since a Printer MUST support the 'ippget' Pull Delivery Method [RFC3996] (see section 15), a Printer MUST support this attribute and return the value as supplied by the client in any operation response that includes this attribute.

由于打印机必须支持“ippget”拉式传送方法[RFC3996](请参见第15节),因此打印机必须支持此属性,并返回客户端在包含此属性的任何操作响应中提供的值。

For a Pull Delivery Method, a client MUST supply this attribute in a Subscription Creation Operation. Thus there is no need for a default Printer attribute.

对于拉式传递方法,客户端必须在订阅创建操作中提供此属性。因此,不需要默认打印机属性。

The keyword value of this attribute on a Subscription object MUST be a value of the "notify-pull-method-supported (1setOf type2 keyword)" Printer attribute.

订阅对象上此属性的关键字值必须是“支持的通知拉取方法(1setOf type2关键字)”打印机属性的值。

If the client supplies an unsupported method in the value of this attribute, then the Printer MUST NOT create the Subscription Object and MUST return the "notify-status-code" attribute with the 'client-error-attributes-or-values-not-supported' value in the Subscription Attributes Group in the response.

如果客户端在此属性值中提供了不受支持的方法,则打印机不得创建订阅对象,并且必须在响应中的订阅属性组中返回“通知状态代码”属性和“客户端错误属性或不支持的值”。

5.3.2.1. notify-pull-method-supported (1setOf type2 keyword)
5.3.2.1. 支持notify pull方法(1setOf type2关键字)

See sections 5.1 and 5.2 for the behavior of "xxx-supported" Subscription Template Printer attributes.

有关“支持xxx”订阅模板打印机属性的行为,请参见第5.1节和第5.2节。

5.3.3. notify-events (1setOf type2 keyword)
5.3.3. 通知事件(1setOf type2关键字)

This attribute contains a set of Subscribed Events. When an Event occurs and it "matches" a value of this attribute, the Printer delivers an Event Notification using information in the Subscription Object. The details of "matching" are described subsection 5.3.3.5.

此属性包含一组订阅的事件。当事件发生且与此属性的值“匹配”时,打印机将使用订阅对象中的信息发送事件通知。第5.3.3.5小节描述了“匹配”的细节。

A Printer MUST support this attribute.

打印机必须支持此属性。

A client MAY supply this attribute in a Subscription Creation Operation. If the client does not supply this attribute in Subscription Creation Operation, the Printer MUST populate this attribute on the Subscription Object with its "notify-events-default" attribute value.

客户端可以在订阅创建操作中提供此属性。如果客户端在订阅创建操作中未提供此属性,则打印机必须使用其“notify events default”属性值在订阅对象上填充此属性。

Each keyword value of this attribute on a Subscription Object MUST be a value of the "notify-events-supported (1setOf type2 keyword)" Printer attribute.

订阅对象上此属性的每个关键字值必须是“支持的通知事件(1setOf type2关键字)”打印机属性的值。

The number of values of this attribute MUST NOT exceed the value of the "notify-max-events-supported" attribute. A Printer MUST support at least 2 values per Subscription Object. If the number of values supplied by a client in a Subscription Creation Operation exceeds the value of this attribute, the Printer MUST treat extra values as unsupported values and MUST use the value of 'successful-ok-too-many-events' for the "notify-status-code" attribute in the Subscription Attributes Group of the response.

此属性的值数量不得超过“notify max events supported”(通知支持的最大事件)属性的值。打印机必须支持每个订阅对象至少2个值。如果客户端在订阅创建操作中提供的值数量超过此属性的值,打印机必须将额外值视为不受支持的值,并且必须将“成功确定太多事件”的值用于响应的订阅属性组中的“通知状态码”属性。

5.3.3.1. notify-events-default (1setOf type2 keyword)
5.3.3.1. 通知事件默认值(1setOf type2关键字)

See sections 5.1 and 5.2 for the behavior of "xxx-default" Subscription Template Printer attributes.

有关“xxx默认”订阅模板打印机属性的行为,请参见第5.1节和第5.2节。

5.3.3.2. notify-events-supported (1setOf type2 keyword)
5.3.3.2. 支持的通知事件(1setOf type2关键字)

See sections 5.1 and 5.2 for the behavior of "xxx-supported" Subscription Template Printer attributes.

有关“支持xxx”订阅模板打印机属性的行为,请参见第5.1节和第5.2节。

5.3.3.3. notify-max-events-supported (integer(2:MAX))
5.3.3.3. 通知支持的最大事件数(整数(2:max))

This attribute specified the maximum number of events that the Printer supports for the "notify-events" Subscription Template attribute. See sections 5.1 and 5.2 for the behavior of "xxx-supported" Subscription Template Printer attributes.

此属性指定打印机支持的“通知事件”订阅模板属性的最大事件数。有关“支持xxx”订阅模板打印机属性的行为,请参见第5.1节和第5.2节。

5.3.3.4. Standard Values for Subscribed Events
5.3.3.4. 订阅事件的标准值

Each value of this attribute is a keyword and it specifies a Subscribed Event that represents certain changes. Some keywords represent a subset of changes of another keyword, e.g., 'job-completed' is an Event value which is a sub-value of 'job-state-change'. See section 5.3.3.5 for the case where this attribute contains both a value and a sub-value.

此属性的每个值都是一个关键字,它指定一个表示某些更改的订阅事件。某些关键字表示另一关键字更改的子集,例如,“作业完成”是事件值,是“作业状态更改”的子值。有关此属性同时包含值和子值的情况,请参见第5.3.3.5节。

The values in this section are divided into three categories: No Events, Job Events and Printer Events.

本节中的值分为三类:无事件、作业事件和打印机事件。

A Printer MUST support the Events indicated as "REQUIRED" and MAY support the Events indicated as "OPTIONAL".

打印机必须支持指示为“必需”的事件,也可以支持指示为“可选”的事件。

5.3.3.4.1. No Events
5.3.3.4.1. 无事件

The standard and only keyword value for No Events is:

无事件的标准且唯一的关键字值为:

'none': REQUIRED - no Event Notifications for any Events. As the sole value of "notify-events-supported", this value means that the Printer does not support the delivery of Event Notifications. As the sole value of "notify-events-default", this value means that a client MUST specify the "notify-events" attribute in order for a Subscription Creation Operation to succeed. If the Printer receives this value as the sole value of a Subscription Creation Operation, it does not create a Subscription Object. If a Printer receives this value with other values of a Subscription Creation Operation, the Printer MUST treat this value as an unsupported value.

“无”:必需-没有任何事件的事件通知。作为“notify events supported”的唯一值,此值表示打印机不支持事件通知的传递。作为“notify events default”的唯一值,此值意味着客户端必须指定“notify events”属性才能成功创建订阅操作。如果打印机收到此值作为订阅创建操作的唯一值,则不会创建订阅对象。如果打印机收到此值以及订阅创建操作的其他值,则打印机必须将此值视为不受支持的值。

5.3.3.4.2. Subscribed Printer Events
5.3.3.4.2. 订阅的打印机事件

The standard keyword values for Subscribed Printer Events are:

订阅打印机事件的标准关键字值为:

'printer-state-changed': REQUIRED - the Printer changed state from any state to any other state. Specifically, the value of the Printer's "printer-state", "printer-state-reasons" or "printer-is-accepting-jobs" attributes changed.

“打印机状态已更改”:必需-打印机已将状态从任何状态更改为任何其他状态。具体而言,打印机的“打印机状态”、“打印机状态原因”或“打印机正在接受作业”属性的值已更改。

This Subscribed Event value has the following sub-values: 'printer-restarted' and 'printer-shutdown'. A client can listen for any of these sub-values if it doesn't want to listen to all printer-state changes:

此订阅的事件值具有以下子值:“打印机重新启动”和“打印机关闭”。如果客户端不想侦听所有打印机状态更改,则可以侦听以下任何子值:

'printer-restarted': OPTIONAL - when the printer is powered up.

“打印机重新启动”:可选-打印机通电时。

'printer-shutdown': OPTIONAL - when the device is being powered down.

“打印机关闭”:可选-设备断电时。

'printer-stopped: REQUIRED - when the printer stops printing, i.e., the value of the "printer-state" Printer attribute becomes 'stopped'.

'打印机停止:必需-当打印机停止打印时,即“打印机状态”打印机属性的值变为'停止'。

'printer-config-changed': OPTIONAL - when the configuration of a Printer has changed, i.e., the value of the "printer-message-from-operator" or any "configuration" Printer attribute has changed. A "configuration" Printer attribute is an attribute which can change value because of some human interaction either direct or indirect, and which is not covered by one of the other Events in this section. Examples of "configuration" Printer attributes are any of the Job Template attributes, such as "xxx-supported", "xxx-ready" and "xxx-default". The client has to perform a Get-Printer-Attributes to find out the new values of these changed attributes. This Event is useful for GUI clients and drivers to update the available printer capabilities to the user.

“打印机配置已更改”:可选-当打印机的配置已更改,即“来自操作员的打印机消息”或任何“配置”打印机属性的值已更改时。“配置”打印机属性是一种属性,它可以因某些直接或间接的人类交互而更改值,本节中的其他事件之一不包括该属性。“配置”打印机属性的示例是任何作业模板属性,例如“支持xxx”、“准备xxx”和“xxx默认”。客户端必须执行获取打印机属性的操作,以找出这些更改属性的新值。此事件对于GUI客户端和驱动程序向用户更新可用打印机功能非常有用。

This Event value has the following sub-values: 'printer-media-changed' and 'printer-finishings-changed'. A client can listen for any of these sub-values if it doesn't want to listen to all printer-configuration changes:

此事件值具有以下子值:“打印机介质已更改”和“打印机饰面已更改”。如果客户端不想侦听所有打印机配置更改,则可以侦听以下任何子值:

'printer-media-changed': OPTIONAL - when the media loaded on a printer has been changed, i.e., the "media-ready" attribute has changed. This Event includes two cases: an input tray that goes empty and an input tray that receives additional media of the same type or of a different type. The client must check the "media-ready" Printer attribute (see [RFC2911] section 4.2.11) separately to find out what changed.

“打印机介质已更改”:可选-当打印机上加载的介质已更改,即“介质就绪”属性已更改时。此事件包括两种情况:一种输入托盘变空,另一种输入托盘接收相同类型或不同类型的其他介质。客户必须单独检查“介质就绪”打印机属性(参见[RFC2911]第4.2.11节),以了解更改的内容。

'printer-finishings-changed': OPTIONAL - when the finisher on a printer has been changed, i.e., the "finishings-ready" attribute has changed. This Event includes two cases: a finisher that goes empty and a finisher that is refilled (even if it is not full). The client must check the

“打印机完成更改”:可选-当打印机上的完成器已更改,即“完成就绪”属性已更改时。此事件包括两种情况:一种是空的排纸器,另一种是重新填充的排纸器(即使未装满)。客户必须检查

"finishings-ready" Printer attribute separately to find out what changed.

“finishings ready”(完成准备就绪)打印机属性,以了解更改的内容。

'printer-queue-order-changed': OPTIONAL - the order of jobs in the Printer's queue has changed, so that an application that is monitoring the queue can perform a Get-Jobs operation to determine the new order. This Event does not include when a job enters the queue (the 'job-created' Event covers that) and does not include when a job leaves the queue (the 'job-completed' Event covers that).

“打印机队列顺序已更改”:可选-打印机队列中的作业顺序已更改,因此监视队列的应用程序可以执行获取作业操作以确定新顺序。此事件不包括作业进入队列时的事件(“作业已创建”事件包括该事件),也不包括作业离开队列时的事件(“作业已完成”事件包括该事件)。

5.3.3.4.3. Subscribed Job Events
5.3.3.4.3. 订阅的作业事件

The standard keyword values for Subscribed Job Events are:

订阅作业事件的标准关键字值为:

'job-state-changed': REQUIRED - the job has changed from any state to any other state. Specifically, the Printer delivers this Event whenever the value of the "job-state" attribute or "job-state-reasons" attribute changes. When a Job is removed from the Job Retention or Job History phases (see [RFC2911] section 4.3.7.1), no Event is generated.

“作业状态已更改”:必需-作业已从任何状态更改为任何其他状态。具体地说,每当“作业状态”属性或“作业状态原因”属性的值更改时,打印机都会传递此事件。从作业保留或作业历史记录阶段删除作业时(参见[RFC2911]第4.3.7.1节),不会生成任何事件。

This Event value has the following sub-values: 'job-created', 'job-completed' and 'job-stopped'. A client can listen for any of these sub-values if it doesn't want to listen to all 'job-state changes'.

此事件值具有以下子值:“作业已创建”、“作业已完成”和“作业已停止”。如果客户端不想侦听所有“作业状态更改”,则可以侦听这些子值中的任何一个。

'job-created': REQUIRED - the Printer has accepted a Job Creation operation, a Restart-Job operation [RFC2911], or any job operation that creates a Job object from an existing Job object. The Printer populates the job's "time-at-creation" attribute value (see [RFC2911] section 4.3.14.1). The Printer puts the job in the 'pending', 'pending-held' or 'processing' states.

“已创建作业”:必需-打印机已接受作业创建操作、重新启动作业操作[RFC2911]或从现有作业对象创建作业对象的任何作业操作。打印机填充作业的“创建时间”属性值(参见[RFC2911]第4.3.14.1节)。打印机将作业置于“挂起”、“挂起”或“处理”状态。

'job-completed': REQUIRED - the job has reached one of the completed states, i.e., the value of the job's "job-state" attribute has changed to: 'completed', 'aborted', or 'canceled'. The Job's "time-at-completed" and "date-time-at-completed" (if supported) attributes are set (see [RFC2911] section 4.3.14). When a Job completes, a Notification Recipient MAY query the Job using the Get-Job-Attributes operation. To allow such a query, the Printer retains the Job in the Job Retention and/or the Job History phases (see [RFC2911] section 4.3.7.1) for a suitable amount of time that depends on implementation and the Delivery Methods supported. The Printer also delivers this Event when a Job is removed with the Purge-Job operation (see [RFC2911] section 3.2.9). In this

“作业已完成”:必需-作业已达到其中一个已完成状态,即作业的“作业状态”属性的值已更改为:“已完成”、“已中止”或“已取消”。设置作业的“完成时间”和“完成日期时间”(如果支持)属性(请参阅[RFC2911]第4.3.14节)。作业完成后,通知收件人可以使用“获取作业属性”操作查询作业。为了允许这样的查询,打印机在作业保留和/或作业历史记录阶段(参见[RFC2911]第4.3.7.1节)保留作业一段适当的时间,这取决于支持的实施和交付方法。当通过清除作业操作删除作业时,打印机也会发送此事件(请参阅[RFC2911]第3.2.9节)。在这个

case, the Event Notification MUST report the 'job-state' as 'canceled' and the Job object is no longer present for query.

在这种情况下,事件通知必须将“作业状态”报告为“已取消”,并且作业对象不再存在以供查询。

'job-stopped: OPTIONAL - when the job stops printing, i.e., the value of the "job-state" Job attribute becomes 'processing-stopped'.

'作业已停止:可选-当作业停止打印时,即“作业状态”作业属性的值变为'处理已停止'。

'job-config-changed': OPTIONAL - when the configuration of a job has changed, i.e., the value of the "job-message-from-operator" or any of the "configuration" Job attributes have changed. A "configuration" Job attribute is an attribute that can change value because of some human interaction either direct or indirect. Examples of "configuration" Job attributes are any of the job template attributes and the "job-name" attribute. The client performs a Get-Job-Attributes to find out the new values of the changed attributes. This Event is useful for GUI clients and drivers to update the job information to the user.

“作业配置已更改”:可选-作业的配置已更改,即“来自操作员的作业消息”或任何“配置”作业属性的值已更改时。“配置”作业属性是一种属性,它可以由于某些直接或间接的人员交互而更改值。“配置”作业属性的示例包括任何作业模板属性和“作业名称”属性。客户端执行“获取作业属性”以查找更改属性的新值。此事件对于GUI客户端和驱动程序向用户更新作业信息非常有用。

'job-progress': OPTIONAL - when the Printer has completed Printing a sheet. See the separate [RFC3381] specification for additional attributes that a Printer MAY deliver in an Event Notification caused by this Event. The "notify-time-interval" attribute affects this Event by causing the Printer NOT to deliver an Event Notification every time a 'job-progress' Events occurs. See section 5.3.9 for full details.

“作业进度”:可选-打印机完成打印工作表时。请参阅单独的[RFC3381]规范,了解打印机在此事件引起的事件通知中可能传递的其他属性。“notify time interval”(通知时间间隔)属性会影响此事件,因为每次发生“作业进度”事件时,打印机都不会发送事件通知。详情见第5.3.9节。

5.3.3.5. Rules for Matching of Subscribed Events
5.3.3.5. 订阅事件的匹配规则

When an Event occurs, the Printer MUST find each Subscription object whose "notify-events" attribute "matches" the Event. The rules for "matching" of Subscribed Events are described separately for Printer Events and for Job Events. This section also describes some special cases.

发生事件时,打印机必须找到其“通知事件”属性与事件“匹配”的每个订阅对象。对于打印机事件和作业事件,分别描述了订阅事件的“匹配”规则。本节还介绍了一些特殊情况。

5.3.3.5.1. Rules for Matching of Printer Events
5.3.3.5.1. 打印机事件的匹配规则

Given that the Printer causes Printer Event E to occur, for each Per-Job or Per-Printer Subscription S in the Printer, if E equals a value of this attribute in S or E is a sub-value of a value of this attribute in S, the Printer MUST generate an Event Notification.

假设打印机导致打印机事件E发生,对于打印机中的每个每作业或每打印机订阅S,如果E等于S中此属性的值,或者E是S中此属性值的子值,则打印机必须生成事件通知。

Consider the example. There are three Subscription Objects each with the Subscribed Printer Event 'printer-state-changed'. Subscription Object A is a Per-Printer Subscription Object. Subscription Object B is a Per-Job Subscription Object for Job 1, and Subscription Object C is a Per-Job Subscription Object for Job 2. When the Printer enters the 'stopped' state, the Printer delivers an Event Notification to the Notification Recipients of Subscription Objects A, B, and C

考虑这个例子。有三个订阅对象,每个订阅对象都具有订阅的打印机事件“打印机状态已更改”。订阅对象A是每打印机订阅对象。订阅对象B是作业1的每作业订阅对象,订阅对象C是作业2的每作业订阅对象。当打印机进入“停止”状态时,打印机将向订阅对象A、B和C的通知收件人发送事件通知

because this is a Printer Event. Note if Job 1 has already completed, the Printer would not deliver an Event Notification for its Subscription Object, even if Job 1 is retained in the Job Retention and/or the Job History phases (see [RFC2911] section 4.3.7.1).

因为这是打印机事件。注意:如果作业1已完成,打印机将不会为其订阅对象发送事件通知,即使作业1保留在作业保留和/或作业历史记录阶段(请参阅[RFC2911]第4.3.7.1节)。

5.3.3.5.2. Rules for Matching of Job Events
5.3.3.5.2. 作业事件的匹配规则

Given that Job J causes Job Event E to occur:

假设作业J导致作业事件E发生:

1. For each Per-Printer Subscription S in the Printer, if E equals a value of this attribute in S or E is a sub-value of a value of this attribute in S, the Printer MUST generate an Event Notification.

1. 对于打印机中的每个每打印机订阅S,如果E等于S中此属性的值或E是S中此属性值的子值,则打印机必须生成事件通知。

2. For each Per-Job Subscription S associated with Job J, if E equals a value of this attribute in S or E is a sub-value of a value of this attribute in S, the Printer MUST generate an Event Notification.

2. 对于与作业J关联的每个每作业订阅S,如果E等于S中该属性的值或E是S中该属性值的子值,则打印机必须生成事件通知。

3. For each Per-Job Subscription S that is NOT associated Job J, if E equals a value of this attribute in S or E is a sub-value of a value of this attribute in, the Printer MUST NOT generate an Event Notification from S.

3. 对于未关联作业J的每个每作业订阅S,如果E等于S中此属性的值或E是中此属性值的子值,则打印机不得从S生成事件通知。

Consider the example: There are three Subscription Objects listening for the Job Event 'job-completed'. Subscription Object A is a Per-Printer Subscription Object. Subscription Object B is a Per-Job Subscription Object for Job 1, and Subscription Object C is a Per-Job Subscription Object for Job 2. In addition, Per-Printer Subscription Object D is listening for the Job Event 'job-state-changed'. When Job 1 completes, the Printer delivers an Event Notification to the Notification Recipient of Subscription Object A (because it is Per-Printer) and Subscription Object B because it is a Per-Job Subscription Object associated with the Job generating the Event. The Printer also delivers an Event Notification to the Notification Recipient of Subscription Object D because 'job-completed' is a sub-value of 'job-state-changed' - the value that Subscription Object D is listening for. The Printer does not deliver an Event Notification to the Notification Recipients of Subscription Object C because it is a Per-Job Subscription Object associated with some Job other than the Job generating the Event.

考虑这个例子:有三个订阅对象监听作业事件“任务完成”。订阅对象A是每打印机订阅对象。订阅对象B是作业1的每作业订阅对象,订阅对象C是作业2的每作业订阅对象。此外,每打印机订阅对象D正在侦听作业事件“作业状态已更改”。当作业1完成时,打印机将向订阅对象A(因为它是每打印机)和订阅对象B的通知收件人发送事件通知,因为它是与生成事件的作业关联的每作业订阅对象。打印机还向订阅对象D的通知收件人发送事件通知,因为“作业已完成”是“作业状态已更改”(订阅对象D正在侦听的值)的子值。打印机不会将事件通知传递给订阅对象C的通知收件人,因为它是与生成事件的作业以外的某个作业关联的每作业订阅对象。

5.3.3.5.3. Special Cases for Matching Rules
5.3.3.5.3. 匹配规则的特殊情况

This section contains two rules for the special case where a single Event produces multiple Event Notifications destined for the same Notification Recipient. These two rules clarify whether a Printer

本节包含两条特殊情况的规则,其中一个事件生成多个以同一通知收件人为目标的事件通知。这两条规则阐明了打印机

should send multiple Event Notifications or consolidate them into a single Event Notification.

应发送多个事件通知或将其合并为单个事件通知。

If an Event matches Subscribed Events in two different Subscription Objects and the Printer would deliver two identical Event Notifications (except for the "notify-subscription-id" attribute) to the same Notification Recipient using the same Delivery Method, the Printer MUST deliver both Event Notifications. That is, the Printer MUST NOT try to consolidate seemingly identical Event Notifications that occur in separate Subscription objects. Incidentally, the Printer MUST NOT reject Subscription Creation Operations that would create this scenario.

如果事件与两个不同订阅对象中的订阅事件相匹配,并且打印机将使用相同的传递方法向同一通知收件人传递两个相同的事件通知(“通知订阅id”属性除外),则打印机必须传递这两个事件通知。也就是说,打印机不得尝试合并单独订阅对象中出现的看似相同的事件通知。顺便说一句,打印机不得拒绝将创建此场景的订阅创建操作。

Consider the example: At the time a Job completes, there are two Per-Printer Subscription Objects A and B with the same Notification Recipient R. Subscription Object A has the Subscribed Job Event 'job-state-changed'. Subscription Object B has the Subscribed Job Event 'job-completed'. Both Subscription Objects match the Event 'job-completed'. The Printer delivers two Event Notifications to the Notification Recipient R. One with the value of 'job-state-changed' for the "notify-subscribed-event" attribute and the other with the value of 'job-completed' for the "notify-subscribed-event" attribute.

考虑这个例子:在作业完成时,每个打印机订阅对象A和B具有相同的通知接收者R订阅对象A具有订阅的作业事件“作业状态改变”。订阅对象B具有订阅的作业事件“作业已完成”。两个订阅对象都匹配事件“作业已完成”。打印机向通知接收者R发送两个事件通知。一个为“通知已订阅事件”属性,值为“作业状态已更改”,另一个为“通知已订阅事件”属性,值为“作业已完成”。

If an Event matches two Subscribed Events in a single Subscription object (e.g., a value and its sub-value), a Printer MAY deliver one Event Notification for each matched value in the Subscription Object or it MAY deliver only a single Event Notification. The rules in sections 5.3.3.5.1 and 5.3.3.5.2 are purposefully flexible about the number of Event Notifications sent when Event E matches two or more values in a Subscription Object.

如果一个事件与单个订阅对象中的两个订阅事件(例如,一个值及其子值)匹配,则打印机可以为订阅对象中的每个匹配值发送一个事件通知,也可以仅发送一个事件通知。第5.3.3.5.1节和第5.3.3.5.2节中的规则针对事件E与订阅对象中的两个或多个值匹配时发送的事件通知数量有目的地灵活。

Consider the example: At the time a Job completes, a Subscription Object A has two Subscribed Job Events 'job-state-changed' and 'job-completed'. Both Subscribed Job Events match the Event 'job-completed'. The Printer delivers either one or two Event Notifications to the Notification Recipient of Subscription Object A, depending on implementation. If it delivers two Event Notifications, one has the value of 'job-state-changed' for the "notify-subscribed-event" attribute, and the other has the value of 'job-completed' for the "notify-subscribed-event" attribute. If it delivers one Event Notification, it has the value of either 'job-state-changed' or 'job-completed' for the "notify-subscribed-event" attribute, depending on implementation. The algorithm for choosing such a value is implementation dependent.

考虑这个例子:在一个作业完成的时候,订阅对象A有两个订阅的作业事件“工作状态改变”和“作业完成”。两个订阅的作业事件都与事件“作业已完成”匹配。打印机向订阅对象A的通知收件人发送一个或两个事件通知,具体取决于实现。如果它传递两个事件通知,则其中一个具有“通知已订阅事件”属性的值“作业状态已更改”,另一个具有“通知已订阅事件”属性的值“作业已完成”。如果它传递一个事件通知,则“通知订阅的事件”属性的值为“作业状态已更改”或“作业已完成”,具体取决于实现。选择该值的算法取决于实现。

5.3.4. notify-attributes (1setOf type2 keyword)
5.3.4. 通知属性(1setOf type2关键字)

This attribute contains a set of attribute names. When a Printer delivers a Machine Consumable Event Notification, it includes a fixed set of attributes (see section 9.1). If this attribute is present and the Event Notification is Machine Consumable, the Printer also includes the attributes specified by this attribute.

此属性包含一组属性名称。当打印机发送机器耗材事件通知时,它包括一组固定的属性(见第9.1节)。如果存在此属性且事件通知是机器可消费的,则打印机还包括此属性指定的属性。

A Printer MAY support this attribute.

打印机可能支持此属性。

A client MAY supply this attribute in a Subscription Creation Operation. If the client does not supply this attribute in Subscription Creation Operation or the Printer does not support this attribute, the Subscription Object either (1) MAY contain the "notify-attributes" attribute with a 'none' value or (2) NEED NOT contain the attribute at all. There is no "notify-attributes-default" Printer attribute.

客户端可以在订阅创建操作中提供此属性。如果客户端在订阅创建操作中未提供此属性,或者打印机不支持此属性,则订阅对象(1)可能包含具有“无”值的“通知属性”属性,或者(2)根本不需要包含该属性。没有“通知属性默认”打印机属性。

Each keyword value of this attribute on a Subscription Object MUST be a value of the "notify-attributes-supported (1setOf type2 keyword)" Printer attribute (see section 5.3.4.1). The "notify-attributes-supported" MAY contain any Printer attribute, Job attribute or Subscription Object attribute that the Printer supports in an Event Notification. It MUST NOT contain any of the attributes in Section 9.1 that a Printer automatically puts in an Event Notification; it would be redundant. If a client supplies an attribute in Section 9.1, the Printer MUST treat it as an unsupported attribute value of the "notify-attributes" attribute.

订阅对象上此属性的每个关键字值必须是“支持的通知属性(1setOf type2关键字)”打印机属性的值(请参阅第5.3.4.1节)。“支持的通知属性”可以包含打印机在事件通知中支持的任何打印机属性、作业属性或订阅对象属性。不得包含第9.1节中打印机自动放入事件通知的任何属性;这是多余的。如果客户端提供第9.1节中的属性,打印机必须将其视为“notify attributes”属性的不受支持的属性值。

The following rules apply to each keyword value N of the "notify-attributes" attribute: If the value N names:

以下规则适用于“notify attributes”属性的每个关键字值N:如果值N为:

a) a Subscription attribute, the Printer MUST use the attribute N in the Subscription Object that is being used to generate the Event Notification.

a) 作为订阅属性,打印机必须使用用于生成事件通知的订阅对象中的属性N。

b) a Job attribute and the Printer is generating an Event Notification from a Per-Job Subscription Object S, the Printer MUST use the attribute N in the Job object associated with S.

b) 作业属性,并且打印机正在从每作业订阅对象S生成事件通知,则打印机必须在与S关联的作业对象中使用属性N。

c) a Job attribute and the Printer is generating an Event Notification from a Per-Printer Subscription Object and the Event is:

c) 作业属性,打印机正在从每打印机订阅对象生成事件通知,事件为:

- a Job Event, the Printer MUST use the attribute N in the Job object that caused the Event.

- 如果是作业事件,打印机必须在导致该事件的作业对象中使用属性N。

- a Printer Event, the Printer MUST use the attribute N in the active Job.

- 如果发生打印机事件,打印机必须在活动工单中使用属性N。

If a Printer supports this attribute and a Subscription Object contains this attribute and the Delivery Method generates a Machine Consumable Event Notification, the Printer MUST include in each Event Notification:

如果打印机支持此属性,并且订阅对象包含此属性,并且传递方法生成机器耗材事件通知,则打印机必须在每个事件通知中包括:

a) the attributes specified in section 9.1 and

a) 第9.1节中规定的属性和

b) each attribute named by this attribute.

b) 由该属性命名的每个属性。

The Printer MUST NOT use this attribute to generate a Human Consumable Event Notification.

打印机不得使用此属性生成人工耗材事件通知。

5.3.4.1. notify-attributes-supported (1setOf type2 keyword)
5.3.4.1. 支持的通知属性(1setOf type2关键字)

See sections 5.1 and 5.2 for the behavior of "xxx-supported" Subscription Template Printer attributes.

有关“支持xxx”订阅模板打印机属性的行为,请参见第5.1节和第5.2节。

5.3.5. notify-user-data (octetString(63))
5.3.5. 通知用户数据(八进制字符串(63))

This attribute contains opaque data that some Delivery Methods include in each Machine Consumable Event Notification. The opaque data might contain, for example:

此属性包含不透明数据,某些传递方法包含在每个机器可消费事件通知中。不透明数据可能包含,例如:

- the identity of the Subscriber

- 订户的身份

- a path or index to some Subscriber information

- 某些订户信息的路径或索引

- a key that identifies to the Notification Recipient the ultimate recipient of the Event Notification

- 向通知接收者标识事件通知最终接收者的密钥

- the id for a Notification Recipient that had previously registered with an Instant Messaging Service

- 先前已向即时消息服务注册的通知收件人的id

A Printer MUST support this attribute.

打印机必须支持此属性。

A client MAY supply this attribute in a Subscription Creation Operation. If the client does not supply this attribute in the Subscription Creation Operation, the Subscription Object either (1) MAY contain the "notify-user-data" attribute with a zero length value or (2) NEED NOT contain the attribute at all. There is no "notify-user-data-default" Printer attribute.

客户端可以在订阅创建操作中提供此属性。如果客户端在订阅创建操作中不提供此属性,订阅对象(1)可能包含长度值为零的“notify user data”属性,或者(2)根本不需要包含该属性。没有“通知用户数据默认值”打印机属性。

There is no "notify-user-data-supported" Printer attribute. Rather, any octetString whose length does not exceed 63 octets is a supported value. If the length exceeds 63 octets, the Printer MUST treat it as an unsupported value.

没有“支持通知用户数据”打印机属性。相反,长度不超过63个八位字节的任何八位字节字符串都是受支持的值。如果长度超过63个八位字节,打印机必须将其视为不受支持的值。

5.3.6. notify-charset (charset)
5.3.6. 通知字符集(字符集)

This attribute specifies the charset to be used in the Event Notification content sent to the Notification Recipient, whether the Event Notification content is Machine Consumable or Human Consumable.

此属性指定在发送给通知收件人的事件通知内容中要使用的字符集,无论事件通知内容是机器可消费还是人类可消费。

A Printer MUST support this attribute.

打印机必须支持此属性。

A client MAY supply this attribute in a Subscription Creation Operation. If the client does not supply this attribute in Subscription Creation Operation or supplies an unsupported value, the Printer MUST populate this attribute in the Subscription Object with the value of the "attributes-charset" operation attribute, which is a REQUIRED attribute in all IPP requests (see [RFC2911]). If the value of the "attributes-charset" attribute is unsupported, the Printer MUST populate this attribute in the Subscription Object with the value of the Printer's "charset-configured" attribute. There is no "notify-charset-default" Printer attribute.

客户端可以在订阅创建操作中提供此属性。如果客户端未在订阅创建操作中提供此属性或提供不受支持的值,则打印机必须在订阅对象中使用“attributes charset”操作属性的值填充此属性,这是所有IPP请求中的必需属性(请参阅[RFC2911])。如果“attributes charset”属性的值不受支持,则打印机必须使用打印机的“charset configured”属性的值填充订阅对象中的该属性。没有“notify charset default”打印机属性。

The value of this attribute on a Subscription Object MUST be a value of the "charset-supported (1setOf charset)" Printer attribute.

订阅对象上此属性的值必须是“支持的字符集(1setOf charset)”打印机属性的值。

5.3.7. notify-natural-language (naturalLanguage)
5.3.7. 通知自然语言(自然语言)

This attribute specifies the natural language to be used in any human consumable text in the Event Notification content sent to the Notification Recipient, whether the Event Notification content is Machine Consumable or Human Consumable.

此属性指定发送给通知收件人的事件通知内容中任何人类可消费文本中使用的自然语言,无论事件通知内容是机器可消费文本还是人类可消费文本。

A Printer MUST support this attribute.

打印机必须支持此属性。

A client MAY supply this attribute in a Subscription Creation Operation. If the client does not supply this attribute in Subscription Creation Operation or supplies an unsupported value, the Printer MUST populate this attribute in the Subscription Object with the value of the "attributes-natural-language" operation attribute, which is a REQUIRED attribute in all IPP requests (see [RFC2911] section 3.1.4). If the value of the "attributes-natural-language" attribute is unsupported, the Printer MUST populate this attribute in the Subscription Object with the value of the Printer's "natural-language-configured" attribute (see [RFC2911] section 4.4.19). There is no "notify-natural-language-default" Printer attribute.

客户端可以在订阅创建操作中提供此属性。如果客户端未在订阅创建操作中提供此属性或提供不支持的值,则打印机必须使用“属性自然语言”操作属性的值填充订阅对象中的此属性,这是所有IPP请求中的必需属性(请参阅[RFC2911]第3.1.4节)。如果“attributes natural language”属性的值不受支持,则打印机必须使用打印机的“natural language configured”属性的值填充订阅对象中的该属性(请参阅[RFC2911]第4.4.19节)。没有“通知自然语言默认值”打印机属性。

The value of this attribute on a Subscription Object MUST be a value of the "generated-natural-language-supported (1setOf type2 naturalLanguage)" Printer attribute (see [RFC2911] section 4.4.20).

订阅对象上此属性的值必须是“支持生成的自然语言(1setOf type2 naturalLanguage)”打印机属性的值(请参见[RFC2911]第4.4.20节)。

5.3.8. notify-lease-duration (integer(0:67108863))
5.3.8. 通知租赁期限(整数(0:67108863))

This attribute specifies the duration of the lease (in seconds) associated with the Per-Printer Subscription Object at the time the Subscription Object was created or the lease was renewed. The duration of the lease is infinite if the value is 0, i.e., the lease never expires. See section 5.4.3 on "notify-lease-expiration-time (integer(0:MAX))" for more details.

此属性指定创建订阅对象或续订租约时与每打印机订阅对象关联的租约的持续时间(秒)。如果值为0,则租约的期限是无限的,即租约永不过期。有关更多详细信息,请参见第5.4.3节“通知租赁到期时间(整数(0:MAX))”。

This attribute is not present on a Per-Job Subscription Object because the Subscription Object lasts exactly as long as the associated Job object. See discussion of the 'job-completed' event in section 5.3.3.4.3 about retention of the Job object after completion.

每个作业订阅对象上不存在此属性,因为订阅对象的持续时间与关联作业对象的持续时间相同。请参阅第5.3.3.4.3节中关于完成后保留作业对象的“作业已完成”事件的讨论。

A Printer MUST support this attribute.

打印机必须支持此属性。

For a Subscription Object Creation operation of a Per-Job Subscription Object, the client MUST NOT supply this attribute. If the client does supply this attribute, the Printer MUST treat it as an unsupported attribute.

对于每个作业订阅对象的订阅对象创建操作,客户端不得提供此属性。如果客户端确实提供此属性,打印机必须将其视为不受支持的属性。

For a Subscription Creation Operation of a Per-Printer Subscription Object or a Renew-Subscription operation, a client MAY supply this attribute. If the client does not supply this attribute, the Printer MUST populate this attribute with its "notify-lease-duration-default" (0:67108863) attribute value. If the client supplies this attribute with an unsupported value, the Printer MUST populate this attribute with a supported value, and this value SHOULD be as close as possible to the value requested by the client. Note: this rule implies that a Printer doesn't assign the value of 0 (infinite) unless the client requests it.

对于每打印机订阅对象的订阅创建操作或续订订阅操作,客户端可以提供此属性。如果客户端不提供此属性,则打印机必须使用其“notify lease duration default”(0:67108863)属性值填充此属性。如果客户端使用不支持的值提供此属性,打印机必须使用支持的值填充此属性,并且此值应尽可能接近客户端请求的值。注意:此规则意味着打印机不会分配0(无限)的值,除非客户端请求。

After the Printer has populated this attribute with a supported value, the value represents the "granted duration" of the lease in seconds and the Printer updates the value of the Subscription Object's "notify-lease-expiration-time" attribute as specified in section 5.4.3.

打印机使用支持的值填充此属性后,该值表示租约的“已授予持续时间”(以秒为单位),打印机会按照第5.4.3节的规定更新订阅对象的“通知租约到期时间”属性的值。

The value of this attribute on a Subscription Object MUST be a value of the "notify-lease-duration-supported" (1setOf (integer(0:67108863) | rangeOfInteger(0:67108863))) Printer attribute.

订阅对象上此属性的值必须是“支持的通知租约期限”(1setOf(整数(0:67108863)| rangeOfInteger(0:67108863))打印机属性的值。

A Printer MAY require authentication in order to return the value of 0 (the lease never expires) as one of the values of "notify-lease-duration-supported", and to allow 0 as a value of the "notify-lease-duration" attribute.

打印机可能需要身份验证才能将值0(租约永不过期)作为“支持的通知租约期限”的值之一返回,并允许0作为“通知租约期限”属性的值。

Note: The maximum value 67,108,863 is 2 raised to the 26 power minus 1 and is about 2 years in seconds. The value is considerably less than MAX so that there is virtually no chance of an overflow when the Printer adds it to the Printer's "printer-up-time" attribute value (see [RFC2911] section 4.4.29) to produce the "notify-lease-expiration-time" Subscription Description attribute value (see section 5.4.3).

注:最大值67108863为2,提升至26次方减1,约为2年(以秒为单位)。该值远小于最大值,因此当打印机将其添加到打印机的“打印机启动时间”属性值(请参见[RFC2911]第4.4.29节)以生成“通知租赁到期时间”订阅说明属性值(请参见第5.4.3节)时,几乎不可能发生溢出。

5.3.8.1. notify-lease-duration-default (integer(0:67108863))
5.3.8.1. 通知租赁期限默认值(整数(0:67108863))

See sections 5.1 and 5.2 for the behavior of "xxx-default" Subscription Template Printer attributes.

有关“xxx默认”订阅模板打印机属性的行为,请参见第5.1节和第5.2节。

5.3.8.2. notify-lease-duration-supported (1setOf (integer(0: 67108863) |
         rangeOfInteger(0:67108863)))
        
5.3.8.2. notify-lease-duration-supported (1setOf (integer(0: 67108863) |
         rangeOfInteger(0:67108863)))
        

See sections 5.1 and 5.2 for the behavior of "xxx-supported" Subscription Template Printer attributes.

有关“支持xxx”订阅模板打印机属性的行为,请参见第5.1节和第5.2节。

5.3.9. notify-time-interval (integer(0:MAX))
5.3.9. 通知时间间隔(整数(0:MAX))

The 'job-progress' Event occurs each time that a Printer completes a sheet. Some Notification Recipients do not want to receive an Event Notification every time this Event occurs. This attribute allows a Subscribing Client to request how often it wants to receive Event Notifications for 'job-progress' Events. The value of this attribute MAY be any nonnegative integer (0,MAX) indicating the minimum number of seconds between 'job-progress' Event Notifications.

每次打印机完成工作表时都会发生“作业进度”事件。某些通知收件人不希望每次发生此事件时都收到事件通知。此属性允许订阅客户端请求它希望接收“作业进度”事件的事件通知的频率。此属性的值可以是任何非负整数(0,最大值),表示“作业进度”事件通知之间的最小秒数。

The Printer MUST support this attribute if and only if the Printer supports the 'job-progress' Event.

当且仅当打印机支持“作业进度”事件时,打印机必须支持此属性。

A client MAY supply this attribute in a Subscription Creation Operation. If the client does not supply this attribute in the Subscription Creation Operation, the Subscription Object either (1) MAY contain the "notify-time-interval" attribute with a '0' value or (2) NEED NOT contain this attribute at all. There is no "notify-time-interval-default" Printer attribute.

客户端可以在订阅创建操作中提供此属性。如果客户端在订阅创建操作中未提供此属性,则订阅对象(1)可能包含值为“0”的“通知时间间隔”属性,或者(2)根本不需要包含此属性。没有“通知时间间隔默认值”打印机属性。

There is no "notify-time-interval-supported" Printer attribute.

没有“支持的通知时间间隔”打印机属性。

If the 'job-progress' Event occurs and a Subscription Object contains the 'job-progress' Event as a value of the 'notify-events' attribute, there are two cases to consider:

如果发生“作业进度”事件,并且订阅对象包含“作业进度”事件作为“通知事件”属性的值,则需要考虑两种情况:

1. This attribute is not present on the Subscription Object or has the value of 0. The Printer MUST generate and deliver an Event Notification (as is the case with other Events).

1. 订阅对象上不存在此属性或其值为0。打印机必须生成并传递事件通知(与其他事件一样)。

2. This attribute is present with a nonzero value of N:

2. 此属性的非零值为N:

a) If the Printer has not sent an Event Notification for the 'job-progress' Event for the associated Subscription Object within the past N seconds, the Printer MUST deliver an Event Notification for the Event that just occurred. Note when the Printer completes the first page of a Job, this rule implies that the Printer delivers an Event Notification for a Per-Job Subscription Object.

a) 如果打印机在过去N秒内未发送关联订阅对象的“作业进度”事件的事件通知,则打印机必须发送刚刚发生的事件的事件通知。注意:当打印机完成作业的第一页时,此规则表示打印机为每个作业订阅对象发送事件通知。

b) Otherwise, the Printer MUST NOT generate or deliver an Event Notification for the associated Subscription Object. The Printer MUST NOT increase the value of the "notify-sequence-number" Subscription Object attribute (i.e., the sequence of values of the "notify-sequence-number" attribute counts the Event Notifications that the Printer sent and not the Events that do not cause an Event Notification to be sent).

b) 否则,打印机不得为关联的订阅对象生成或传递事件通知。打印机不得增加“notify sequence number”订阅对象属性的值(即,“notify sequence number”属性的值序列统计打印机发送的事件通知,而不是不会导致发送事件通知的事件)。

It is RECOMMENDED that a Subscribing Client use this attribute when it subscribes to the 'job-progress' Event, and that the value be sufficiently large to limit the frequency with which the Printer delivers Event Notifications requests.

建议订阅客户端在订阅“作业进度”事件时使用此属性,并且该值应足够大,以限制打印机发送事件通知请求的频率。

This attribute MUST NOT effect any Events other than 'job-progress'.

此属性不得影响“作业进度”以外的任何事件。

5.4. Subscription Description Attributes
5.4. 订阅描述属性

Subscription Description Attributes are those attributes that a Printer adds to a Subscription Object at the time of its creation.

订阅描述属性是打印机在创建订阅对象时添加到订阅对象的属性。

A Printer MUST support all attributes in this Table 2.

打印机必须支持表2中的所有属性。

A client MUST NOT supply the attributes in Table 2 in a Subscription Template Attributes Group of a Subscription Creation Operation. There are no corresponding default or supported attributes.

客户端不得在订阅创建操作的订阅模板属性组中提供表2中的属性。没有相应的默认或支持的属性。

Table 2 - Subscription Description Attributes

表2-订阅说明属性

Subscription Object attributes:

订阅对象属性:

      notify-subscription-id (integer(1:MAX))
      notify-sequence-number (integer(0:MAX))
      notify-lease-expiration-time (integer(0:MAX))
      notify-printer-up-time (integer(1:MAX))
      notify-printer-uri (uri)
      notify-job-id (integer(1:MAX))
      notify-subscriber-user-name (name(MAX))
        
      notify-subscription-id (integer(1:MAX))
      notify-sequence-number (integer(0:MAX))
      notify-lease-expiration-time (integer(0:MAX))
      notify-printer-up-time (integer(1:MAX))
      notify-printer-uri (uri)
      notify-job-id (integer(1:MAX))
      notify-subscriber-user-name (name(MAX))
        
5.4.1. notify-subscription-id (integer (1:MAX))
5.4.1. 通知订阅id(整数(1:最大值))

This attribute identifies a Subscription Object instance with a number that is unique within the context of the Printer. The Printer generates this value at the time it creates the Subscription Object.

此属性使用在打印机上下文中唯一的编号标识订阅对象实例。打印机在创建订阅对象时生成此值。

A Printer MUST support this attribute.

打印机必须支持此属性。

The Printer MAY assign the value of this attribute sequentially as it creates Subscription Objects. However, if there is no security on Subscription objects, sequential assignment exposes the system to a passive traffic monitoring threat.

打印机可以在创建订阅对象时按顺序分配此属性的值。但是,如果订阅对象没有安全性,则顺序分配会使系统面临被动流量监控威胁。

The Printer SHOULD avoid re-using recent values of this attribute during continuous operation of the Printer as well as across power cycles. Then a Subscribing Client is unlikely to find that a stale reference accesses a new Subscription Object.

打印机应避免在打印机连续运行期间以及在整个电源循环期间重复使用此属性的最新值。然后,订阅客户端不太可能发现过时的引用访问新的订阅对象。

The 0 value is not permitted in order to allow for compatibility with "job-id" and with MIB table index values, which are recommended not to be 0.

不允许使用0值,以便与“作业id”和MIB表索引值兼容,建议不要使用0。

5.4.2. notify-sequence-number (integer (0:MAX))
5.4.2. 通知序列号(整数(0:MAX))

The value of this attribute indicates the number of times that the Printer has generated and attempted to deliver an Event Notification for this Subscription object. When an Event Notification contains this attribute, the Notification Recipient can determine whether it missed some Event Notifications (i.e., numbers skipped) or received duplicates (i.e., same number twice).

此属性的值表示打印机生成并尝试传递此订阅对象的事件通知的次数。当事件通知包含此属性时,通知收件人可以确定是错过了某些事件通知(即跳过的数字)还是收到了重复的事件通知(即相同的数字两次)。

A Printer MUST support this attribute.

打印机必须支持此属性。

When the Printer creates a Subscription Object, it MUST populate this attribute with a value of 0. This value indicates that the Printer has not sent any Event Notifications for this Subscription Object.

打印机创建订阅对象时,必须使用值0填充此属性。此值表示打印机尚未为此订阅对象发送任何事件通知。

Each time the Printer delivers a newly generated Event Notification, it MUST increase the value of this attribute by 1. For some Delivery Methods, the Printer MUST include this attribute in each Event Notification, and the value MUST be the value after it is increased by 1. That is, the value of this attribute in the first Event Notification after Subscription object creation MUST be 1, the second MUST be 2, etc. If a Delivery Method is defined such that the Notification Recipient returns a response, the Printer can re-try delivering an Event Notification a certain number of times with the same sequence number when the Notification Recipient fails to return a response.

每次打印机发送新生成的事件通知时,它必须将此属性的值增加1。对于某些传递方法,打印机必须在每个事件通知中包含此属性,并且该值必须是增加1后的值。也就是说,在创建订阅对象后的第一个事件通知中,此属性的值必须为1,第二个必须为2,以此类推。如果已定义传递方法,通知收件人将返回响应,当通知收件人未能返回响应时,打印机可以使用相同的序列号重新尝试发送事件通知一定次数。

If a Subscription Object lasts long enough to reach the value of MAX, its next value MUST be 0, i.e., it wraps.

如果订阅对象持续足够长的时间以达到最大值,则其下一个值必须为0,即它将被包装。

5.4.3. notify-lease-expiration-time (integer(0:MAX))
5.4.3. 通知租约到期时间(整数(0:最大值))

This attribute specifies the time in the future when the lease on the Per-Printer Subscription Object will expire, i.e., the "printer-up-time" value at which the lease will expire. If the value is 0, the lease never expires.

此属性指定将来每打印机订阅对象上的租约到期的时间,即租约到期的“打印机启动时间”值。如果该值为0,则租约永不过期。

A Printer MUST support this attribute.

打印机必须支持此属性。

When the Printer creates a Per-Job Subscription Object, this attribute MUST NOT be present - the Subscription Object lasts exactly as long as the associated Job object. See also the discussion of the 'job-completed' event in section 5.3.3.4.3 about retention of the Job object after completion so that a Notification Recipient can query the Job object after receiving the 'job-completed' Event Notification.

打印机创建每作业订阅对象时,此属性不得存在-订阅对象的持续时间与关联作业对象的持续时间相同。另请参见第5.3.3.4.3节中关于完成后保留作业对象的“作业已完成”事件的讨论,以便通知接收者可以在收到“作业已完成”事件通知后查询作业对象。

When the Printer creates a Per-Printer Subscription Object, it populates this attribute with a value that is the sum of the values of the Printer's "printer-up-time" attribute and the Subscription Object's "notify-lease-duration" attribute with the following exception. If the value of the Subscription Object's "notify-lease-duration" attribute is 0 (i.e., no expiration time), then the value of this attribute MUST be set to 0 (i.e., no expiration time).

当使用“打印机”属性创建“每个打印机的订阅时间”值时,使用“每个打印机的订阅时间”属性填充“每个打印机的订阅时间”值。如果订阅对象的“通知租赁期限”属性的值为0(即无到期时间),则此属性的值必须设置为0(即无到期时间)。

When the Printer powers up, it MUST populate this attribute in each persistent Subscription Object with a value using the algorithm in the previous paragraph.

打印机通电时,必须使用上一段中的算法在每个持久订阅对象中填充此属性。

When the "printer-up-time" equals the value of this attribute, the Printer MUST delete the Subscription Object. A client can extend a lease of a Per-Printer Subscription Object with the Renew-Subscription operation (see section 11.2.6).

当“打印机启动时间”等于此属性的值时,打印机必须删除订阅对象。客户端可以通过续订订阅操作延长每打印机订阅对象的租约(请参阅第11.2.6节)。

Note: In order to compute the number of seconds remaining in a lease for a Per-Printer Subscription Object, a client can subtract the Subscription's "notify-printer-up-time" attribute (see section 5.4.4) from the Subscription's "notify-lease-expiration-time" attribute.

注意:为了计算每个打印机订阅对象的租约剩余秒数,客户机可以从订阅的“通知租约到期时间”属性中减去订阅的“通知打印机启动时间”属性(参见第5.4.4节)。

5.4.4. notify-printer-up-time (integer(1:MAX))
5.4.4. 通知打印机启动时间(整数(1:最大值))

This attribute is an alias for the Printer's "printer-up-time" attribute " (see [RFC2911] section 4.4.29). In other words, when this attribute is queried with the Get-Subscriptions or Get-Subscription-Attributes operations (see sections 11.2.4 and 11.2.5), the value returned is the current value of the Printer's "printer-up-time" attribute, rather than the time at which the Subscription Object was created.

此属性是打印机“打印机启动时间”属性的别名(请参见[RFC2911]第4.4.29节)。换句话说,当使用获取订阅或获取订阅属性操作(请参见第11.2.4节和第11.2.5节)查询此属性时,返回的值是打印机“打印机启动时间”的当前值属性,而不是创建订阅对象的时间。

A Printer MUST support this attribute.

打印机必须支持此属性。

When the Printer creates a Per-Job Subscription Object, this attribute MUST NOT be present. When the Printer creates a Per-Printer Subscription Object, this attribute MUST be present.

打印机创建每作业订阅对象时,此属性不得存在。打印机创建每打印机订阅对象时,此属性必须存在。

Note: this attribute exists in a Per-Printer Subscription Object so that a client using the Get-Subscription-Attributes or Get-Subscription operations can convert the Per-Printer Subscription's "notify-lease-expiration-time" attribute to wall clock time with one request. If the value of the "notify-lease-expiration-time" attribute is not 0 (i.e., no expiration time), then the difference between the "notify-lease-expiration-time" attribute and the "notify-printer-up-time" is the remaining number of seconds on the lease from the current time.

注意:此属性存在于每打印机订阅对象中,因此使用获取订阅属性或获取订阅操作的客户端可以通过一个请求将每打印机订阅的“通知租约到期时间”属性转换为挂钟时间。如果“通知租约到期时间”属性的值不是0(即,没有到期时间),则“通知租约到期时间”属性和“通知打印机启动时间”之间的差值是租约上当前时间的剩余秒数。

5.4.5. notify-printer-uri (uri)
5.4.5. 通知打印机uri(uri)

This attribute identifies the Printer object that created this Subscription Object.

此属性标识创建此订阅对象的打印机对象。

A Printer MUST support this attribute.

打印机必须支持此属性。

During a Subscription Creation Operation, the Printer MUST populate this attribute with the value of the "printer-uri" operation attribute in the request. From the Printer URI, the client can, for example, determine what security scheme was used.

在订阅创建操作期间,打印机必须使用请求中“打印机uri”操作属性的值填充此属性。例如,客户机可以从打印机URI确定使用了什么安全方案。

5.4.6. notify-job-id (integer(1:MAX))
5.4.6. 通知作业id(整数(1:最大值))

This attribute specifies whether the containing Subscription Object is a Per-Job or Per-Printer Subscription Object, and for Per-Job Subscription Objects, it specifies the associated Job.

此属性指定包含的订阅对象是每作业还是每打印机订阅对象,对于每作业订阅对象,它指定关联的作业。

A Printer MUST support this attribute.

打印机必须支持此属性。

If this attribute is not present, the Subscription Object MUST be a Per-Printer Subscription. If this attribute is present, the Subscription Object MUST be a Per-Job Subscription Object and this attribute MUST identify the Job with which the Subscription Object is associated.

如果此属性不存在,则订阅对象必须是每打印机订阅。如果存在此属性,则订阅对象必须是每作业订阅对象,并且此属性必须标识与订阅对象关联的作业。

Note: This attribute could be useful to a Notification Recipient that receives an Event Notification generated from a Per-Job Subscription Object and caused by a Printer Event. The Event Notification gives access to the Printer and the Subscription Object. The Event Notification gives access to the associated Job only via this attribute. See discussion of the 'job-completed' event in section 5.3.3.4.3 about retention of the Job object after completion so that a Notification Recipient can query the Job object after receiving the 'job-completed' Event Notification.

注意:此属性对于接收由每作业订阅对象生成并由打印机事件引起的事件通知的通知收件人可能很有用。通过事件通知可以访问打印机和订阅对象。事件通知仅允许通过此属性访问关联的作业。请参阅第5.3.3.4.3节中关于完成后保留作业对象的“作业已完成”事件的讨论,以便通知收件人在收到“作业已完成”事件通知后可以查询作业对象。

5.4.7. notify-subscriber-user-name (name(MAX))
5.4.7. 通知订户用户名(名称(最大值))

This attribute contains the name of the user who performed the Subscription Creation Operation.

此属性包含执行订阅创建操作的用户的名称。

A Printer MUST support this attribute.

打印机必须支持此属性。

The Printer MUST populates this attribute with the most authenticated printable name that it can obtain from the authentication service over which the Subscription Creation Operation was received. The Printer uses the same mechanism for determining the value of this attribute as it does for a Job's "job-originating-user-name" (see [RFC2911] section 4.3.6).

打印机必须使用可从接收订阅创建操作的身份验证服务获得的最经过身份验证的可打印名称填充此属性。打印机使用与作业的“作业原始用户名”相同的机制来确定该属性的值(参见[RFC2911]第4.3.6节)。

Note: To help with authentication, a Subscription Object may have additional private attributes about the user, e.g., a credential of a principal. Such private attributes are implementation-dependent and not defined in this document.

注意:为了帮助进行身份验证,订阅对象可能具有关于用户的其他私有属性,例如主体的凭证。此类私有属性依赖于实现,未在本文档中定义。

6. Printer Description Attributes Related to Notification
6. 与通知相关的打印机说明属性

This section defines the Printer Description attributes that are related to Notification. Table 3 lists the Printer Description attributes, indicates the Printer support required for conformance, and whether or not the attribute is READ-ONLY (see section 3.1):

本节定义与通知相关的打印机描述属性。表3列出了打印机描述属性,指出了一致性所需的打印机支持,以及该属性是否为只读(见第3.1节):

Table 3 - Printer Description Attributes Associated with Notification

表3-与通知关联的打印机描述属性

Printer object attributes: REQUIRED READ-ONLY

打印机对象属性:必需为只读

printer-state-change-time (integer(1:MAX)) No Yes printer-state-change-date-time (dateTime) No Yes

打印机状态更改时间(整数(1:MAX))否是打印机状态更改日期时间(日期时间)否是

6.1. printer-state-change-time (integer(1:MAX))
6.1. 打印机状态更改时间(整数(1:最大值))

This OPTIONAL attribute records the most recent time at which the 'printer-state-changed' Printer Event occurred whether or not any Subscription objects were listening for this event. This attribute helps a client or operator to determine how long the Printer has been in its current state.

此可选属性记录“打印机状态已更改”打印机事件发生的最近时间,无论是否有任何订阅对象正在侦听此事件。此属性可帮助客户端或操作员确定打印机处于当前状态的时间。

A Printer MAY support this attribute and if so, the attribute MUST be READ-ONLY.

打印机可能支持此属性,如果支持,则该属性必须为只读。

On power-up, the Printer MUST populate this attribute with the value of its "printer-up-time" attribute, so that it always has a value. Whenever the 'printer-state-changed' Printer Event occurs, the Printer MUST update this attribute with the value of the Printer's "printer-up-time" attribute.

通电时,打印机必须使用其“打印机启动时间”属性的值填充此属性,以便它始终具有一个值。每当发生“打印机状态已更改”打印机事件时,打印机必须使用打印机的“打印机运行时间”属性值更新此属性。

6.2. printer-state-change-date-time (dateTime)
6.2. 打印机状态更改日期时间(日期时间)

This OPTIONAL attribute records the most recent time at which the 'printer-state-changed' Printer Event occurred whether or not there were any Subscription Objects listening for this event. This attribute helps a client or operator to determine how long the Printer has been in its current state.

此可选属性记录“打印机状态已更改”打印机事件发生的最近时间,无论是否有任何订阅对象侦听此事件。此属性可帮助客户端或操作员确定打印机处于当前状态的时间。

A Printer MAY support this attribute and if so, the attribute MUST be READ-ONLY.

打印机可能支持此属性,如果支持,则该属性必须为只读。

On power-up, the Printer MUST populate this attribute with the value of its "printer-current-time" attribute, so that it always has a value (see [RFC2911] section 4.4.30 on "printer-current-time"). Whenever the 'printer-state-changed' Printer Event occurs, the Printer MUST update this attribute with the value of the Printer's "printer-current-time" attribute.

通电时,打印机必须使用其“打印机当前时间”属性的值填充此属性,以便它始终具有一个值(请参阅[RFC2911]第4.4.30节“打印机当前时间”)。每当发生“打印机状态已更改”打印机事件时,打印机必须使用打印机的“打印机当前时间”属性值更新此属性。

7. New Values for Existing Printer Description Attributes
7. 现有打印机描述属性的新值

This section contains those attributes for which additional values are added.

本节包含为其添加附加值的属性。

7.1. operations-supported (1setOf type2 enum)
7.1. 支持的操作(1setOf type2枚举)

The following "operation-id" values are added in order to support the new operations defined in this document:

添加以下“操作id”值以支持本文档中定义的新操作:

Table 4 - Operation-id assignments

表4-操作id分配

Value Operation Name

值操作名

0x0016 Create-Printer-Subscriptions 0x0017 Create-Job-Subscriptions 0x0018 Get-Subscription-Attributes 0x0019 Get-Subscriptions 0x001A Renew-Subscription 0x001B Cancel-Subscription

0x0016创建打印机订阅0x0017创建作业订阅0x0018获取订阅属性0x0019获取订阅0x001A续订订阅0x001B取消订阅

8. Attributes Only in Event Notifications
8. 仅在事件通知中使用属性

This section contains those attributes that exist only in Event Notifications and do not exist in any objects.

本节包含仅存在于事件通知中而不存在于任何对象中的属性。

8.1. notify-subscribed-event (type2 keyword)
8.1. 通知订阅的事件(type2关键字)

This attribute indicates the Subscribed Event that caused the Printer to deliver this Event Notification. This attribute exists only in Event Notifications.

此属性表示导致打印机发送此事件通知的订阅事件。此属性仅存在于事件通知中。

This attribute MUST contain one of the values of the "notify-events" attribute in the Subscription Object, i.e., one of the Subscribed Event values. Its value is the Subscribed Event that "matches" the Event that caused the Printer to deliver this Event Notification. This Subscribed Event value may be identical to the Event or the Event may be a sub-value of the Subscribed Event. For example, the 'job-completed' Event (which is a sub-event of the 'job-state-changed' event) would cause the Printer to deliver an Event Notification for either the 'job-completed' or 'job-state-changed' Subscribed Events and to deliver the 'job-completed' or 'job-state-changed' value for this attribute, respectively. See section 5.3.3.5 for the "matching" rules of Subscribed Events and for additional examples.

此属性必须包含订阅对象中“notify events”属性的一个值,即订阅的事件值之一。其值是订阅的事件,该事件与导致打印机发送此事件通知的事件“匹配”。该订阅事件值可能与该事件相同,或者该事件可能是订阅事件的子值。例如,“作业完成”事件(是“作业状态更改”事件的子事件)将导致打印机为“作业完成”或“作业状态更改”订阅事件发送事件通知,并分别为此属性发送“作业完成”或“作业状态更改”值。有关订阅事件的“匹配”规则和其他示例,请参见第5.3.3.5节。

The Delivery Method Document specifies whether the Printer includes the value of this attribute in an Event Notification.

传递方法文档指定打印机是否在事件通知中包含此属性的值。

8.2. notify-text (text(MAX))
8.2. 通知文本(文本(最大值))

This attribute contains a Human Consumable text message (see section 9.2). This message describes the Event and is encoded as plain text, i.e., 'text/plain' with the charset specified by Subscription Object's "notify-charset" attribute.

该属性包含人类可消费文本消息(见第9.2节)。此消息描述事件并编码为纯文本,即“text/plain”,其字符集由订阅对象的“notify charset”属性指定。

Note: this attribute contains a text message only and must not contain any encoding information, such as 'text/plain'. The 'text/plain' encoding is implicit and thus the charset must be specified by an alternate mechanism, namely the "notify-charset" attribute.

注意:此属性仅包含文本消息,不能包含任何编码信息,如“text/plain”。“text/plain”编码是隐式的,因此字符集必须由另一种机制指定,即“notify charset”属性。

The Delivery Method Document specifies whether the Printer includes this attribute in an Event Notification.

传递方法文档指定打印机是否在事件通知中包含此属性。

9. Event Notification Content
9. 事件通知内容

This section defines the Event Notification content that the Printer delivers when an Event occurs.

本节定义事件发生时打印机传递的事件通知内容。

When an Event occurs, the Printer MUST find each Subscription object whose "notify-events" attribute "matches" the Event. See section 5.3.3.5 for details on "matching". For each matched Subscription Object, the Printer MUST create an Event Notification with the content and format that the Delivery Method Document specifies. The content contains the value of attributes specified by the Delivery Method Document. The Printer obtains the values immediately after the Event occurs. For example, if the "printer-state" attribute changes from 'idle' to 'processing', the Event 'printer-state-changed' occurs and the Printer puts various attributes into the Event Notification, including "printer-up-time" and "printer-state" with the values that they have immediately after the Event occurs, i.e., the value of "printer-state" is 'processing'.

发生事件时,打印机必须找到其“通知事件”属性与事件“匹配”的每个订阅对象。有关“匹配”的详细信息,请参见第5.3.3.5节。对于每个匹配的订阅对象,打印机必须使用传递方法文档指定的内容和格式创建事件通知。内容包含交付方法文档指定的属性值。打印机在事件发生后立即获取值。例如,如果“打印机状态”属性从“空闲”更改为“处理”,则会发生“打印机状态已更改”事件,打印机会将各种属性放入事件通知中,包括“打印机启动时间”和“打印机状态”,以及它们在事件发生后立即具有的值,即“打印机状态”的值是“处理”。

Event Notification Ordering:

事件通知顺序:

When a Printer delivers Event Notifications, the Event Notifications from any given Subscription Object MUST be in time stamp order, i.e., in order of increasing "printer-up-time" attribute value in the Event Notification (see Table 5). These Event Notifications MAY be interleaved with those from other Subscription Objects, as long as those others are also in time stamp order. The Printer MUST observe these ordering requirements whether delivering multiple pending Events as multiple separate Event Notifications or together in a single Compound Event Notification.

当打印机发送事件通知时,来自任何给定订阅对象的事件通知必须按时间戳顺序,即按事件通知中“打印机启动时间”属性值的增加顺序(见表5)。这些事件通知可以与来自其他订阅对象的事件通知交错,只要这些其他事件通知也按时间戳顺序排列。打印机必须遵守这些订购要求,无论是将多个挂起事件作为多个单独的事件通知发送,还是将多个挂起事件一起发送到单个复合事件通知中。

If a Subscribing Client wants the Printer to deliver certain Event Notifications in time stamp order, the Subscribing Client uses a single Subscription Object. Even so, depending on the underlying transport, the actual order that a Notification Recipient receives separate Event Notifications may differ from the order sent by the Printer (e.g., email).

如果订阅客户端希望打印机按时间戳顺序发送某些事件通知,则订阅客户端将使用单个订阅对象。即使如此,根据基础传输,通知收件人接收单独事件通知的实际顺序可能与打印机发送的顺序不同(例如,电子邮件)。

Example: Consider two Per-Printer Subscription Objects: SO1 and SO2. SO1 requests 'job-state-changed' events and SO2 requests 'printer-state-changed' events. The number in parens is the time stamp. The following Event Notification sequences are the only ones that conform to the ordering requirements for the Printer to deliver the Event Notifications:

示例:考虑两个打印机订阅对象:SO1和SO2。SO1请求“作业状态已更改”事件,SO2请求“打印机状态已更改”事件。parens中的数字是时间戳。以下事件通知序列是唯一符合打印机交付事件通知的订购要求的序列:

      (a) SO1: 'job-created' (1000), SO1: 'job-stopped' (1005), SO1:
      'job-completed' (1009), SO2: 'printer-stopped' (1005)
        
      (a) SO1: 'job-created' (1000), SO1: 'job-stopped' (1005), SO1:
      'job-completed' (1009), SO2: 'printer-stopped' (1005)
        
      (b) SO1: 'job-created' (1000), SO1: 'job-stopped' (1005), SO2:
      'printer-stopped' (1005), SO1: 'job-completed' (1009)
        
      (b) SO1: 'job-created' (1000), SO1: 'job-stopped' (1005), SO2:
      'printer-stopped' (1005), SO1: 'job-completed' (1009)
        
      (c) SO1: 'job-created' (1000), SO2: 'printer-stopped' (1005), SO1:
      'job-stopped' (1005), SO1: 'job-completed' (1009)
        
      (c) SO1: 'job-created' (1000), SO2: 'printer-stopped' (1005), SO1:
      'job-stopped' (1005), SO1: 'job-completed' (1009)
        
      (d) SO2: 'printer-stopped (1005), SO1: 'job-created' (1000), SO1:
      'job-stopped' (1005), SO1: 'job-completed' (1009)
        
      (d) SO2: 'printer-stopped (1005), SO1: 'job-created' (1000), SO1:
      'job-stopped' (1005), SO1: 'job-completed' (1009)
        

Examples (b) and (c) are interleaved; examples (a) and (d) are not interleaved and are not appropriate for some Delivery Methods.

示例(b)和(c)是交错的;示例(a)和(d)不是交错的,不适合于某些交付方法。

If two different Events occur simultaneously, or nearly so (e.g., "printer-up-time" has the same value for both), the Printer MUST create a separate Event Notification for each Event, even if the associated Subscription Object is the same for both Events. However, the Printer MAY combine these distinct Event Notifications into a single Compound Event Notification if the Delivery Method supports Compound Event Notifications. For example, suppose that two nearly-simultaneously Events represent two successive 'printer-state-changed' Events, one from 'idle' to 'processing' and another from 'processing' to 'stopped'. These two Events have the same name but are different instances of the Event. Then the Printer MUST create a separate Event Notification for each Event and SHOULD accurately report the "printer-state" of the first Event as 'processing' and the second Event as 'stopped'.

如果两个不同的事件同时发生,或者几乎同时发生(例如,“打印机启动时间”对这两个事件具有相同的值),则打印机必须为每个事件创建单独的事件通知,即使关联的订阅对象对这两个事件都相同。但是,如果传递方法支持复合事件通知,则打印机可以将这些不同的事件通知合并为单个复合事件通知。例如,假设两个几乎同时发生的事件表示两个连续的“打印机状态更改”事件,一个从“空闲”到“处理”,另一个从“处理”到“停止”。这两个事件具有相同的名称,但是该事件的不同实例。然后,打印机必须为每个事件创建单独的事件通知,并应准确地将第一个事件的“打印机状态”报告为“正在处理”,将第二个事件报告为“已停止”。

If a Subscription Object contains more than one Subscribed Event, and several Events occur in quick succession each matching a different Subscribed Event in the Subscription Object, the Printer MUST NOT generate a single Event Notification from several of these Events,

如果订阅对象包含多个订阅事件,并且多个事件快速连续发生,每个事件与订阅对象中的不同订阅事件相匹配,则打印机不得从这些事件中的多个事件生成单个事件通知,

but MAY combine distinct Event Notifications into a single Compound Event Notification if the Delivery Method supports Compound Event Notifications.

但是,如果传递方法支持复合事件通知,则可以将不同的事件通知合并为单个复合事件通知。

After the Printer has created the Event Notification, the Printer delivers it via either a:

打印机创建事件通知后,打印机将通过以下方式之一发送事件通知:

Push Delivery Method: The Printer delivers the Event Notification shortly after an Event occurs. For some Push Delivery Methods, the Notification Recipient MUST deliver a response; for others it MUST NOT deliver a response.

推送传递方法:打印机在事件发生后不久传递事件通知。对于某些推送传递方法,通知接收方必须传递响应;对于其他人来说,它不能提供响应。

Pull Delivery Method: The Printer saves Event Notifications for some Event Life and expects the Notification Recipient to request Event Notifications. The Printer returns the Event Notifications in a response to such a request.

拉式传递方法:打印机保存某些事件生命周期的事件通知,并期望通知收件人请求事件通知。打印机在响应此类请求时返回事件通知。

If an error that meets the following conditions occurs, the Printer MUST cancel the Subscription Object.

如果出现符合以下条件的错误,打印机必须取消订阅对象。

a) the error occurs during the delivering of an Event Notification generated from Subscription Object S AND

a) 在传递从订阅对象和生成的事件通知期间发生错误

b) the error would continue to occur every time the Printer delivers an Event Notification generated from Subscription Object S in the future.

b) 以后每次打印机发送从订阅对象生成的事件通知时,该错误都会继续发生。

For example, if the address of the "notify-recipient-uri" of Subscription Object A references a non-existent target and the Printer determines this fact, it MUST delete Subscription Object A.

例如,如果订阅对象A的“通知收件人uri”的地址引用了一个不存在的目标,并且打印机确定了这一事实,则它必须删除订阅对象A。

The next two sections describe the values that a Printer delivers in the content of Machine Consumable and Human Consumable Event Notifications, respectively.

接下来的两部分分别描述打印机在机器耗材和人类耗材事件通知内容中提供的值。

The tables in the sub-sections of this section contain the following columns:

本节各小节中的表格包含以下列:

a) Source Value: the name of the attribute that supplies the value for the Event Notification. Asterisks in this field refer to a note below the table.

a) Source Value:为事件通知提供值的属性的名称。此字段中的星号指下表中的注释。

b) Delivers: if the Printer supports the value (column 1) on the Source Object (column 3) the Delivery Method MUST specify:

b) 传递:如果打印机支持源对象(第3列)上的值(第1列),则传递方法必须指定:

MUST: that the Printer MUST deliver the value.

必须:打印机必须传递值。

SHOULD: either that the Printer MUST deliver the value or that the value is incompatible with the Delivery Method.

应该:打印机必须传递值,或者该值与传递方法不兼容。

MAY: that the Printer MUST, SHOULD, MAY, MUST NOT, SHOULD NOT, or NEED NOT deliver the value. The Delivery Method specifies the level of conformance for the Printer.

阿美:打印机必须、应该、可能、不应该、不应该或不需要提供价值。交付方法指定打印机的一致性级别。

c) Source Object: the object from which the source value comes. If the object is "Event Notification", the Printer fabricates the value when it delivers the Event Notification. See section 8.

c) 源对象:源值来自的对象。如果对象为“事件通知”,则打印机在发送事件通知时生成值。见第8节。

9.1. Content of Machine Consumable Event Notifications
9.1. 机器可消耗事件通知的内容

This section defines the attributes that a Delivery Method MUST mention in a Delivery Method Document when specifying the Machine Consumable Event Notification's contents.

本节定义了交付方法在指定机器耗材事件通知内容时必须在交付方法文档中提及的属性。

This document does not define the order of attributes in Event Notifications. However, Delivery Method Documents MAY define the order of some or all of the attributes.

本文档未定义事件通知中属性的顺序。但是,交付方法文档可以定义某些或所有属性的顺序。

A Delivery Method Document MUST specify additional attributes (if any) that a Printer implementation delivers in a Machine Consumable Event Notification.

传递方法文档必须指定打印机实现在机器耗材事件通知中传递的其他属性(如果有)。

Notification Recipients MUST be able to accept Event Notifications containing attributes they do not recognize. What a Notification Recipient does with an unrecognized attribute is implementation-dependent. Notification Recipients MAY attempt to display unrecognized attributes anyway or MAY ignore them.

通知收件人必须能够接受包含其无法识别的属性的事件通知。通知收件人对无法识别的属性所做的操作取决于实现。通知收件人可能会尝试显示无法识别的属性,也可能会忽略这些属性。

The next three sections define the attributes in Event Notification Contents that are:

接下来的三个部分定义了事件通知内容中的属性:

1. for all Events

1. 无论如何

2. for Job Events only

2. 仅适用于作业事件

3. for Printer Events only

3. 仅适用于打印机事件

9.1.1. Event Notification Content Common to All Events
9.1.1. 所有事件共用的事件通知内容

This section lists the attributes that a Delivery Method Document MUST specify for all Events.

本节列出了交付方法文档必须为所有事件指定的属性。

Table 5 lists potential values in each Event Notification.

表5列出了每个事件通知中的潜在值。

Table 5 - Attributes in Event Notification Content

表5-事件通知内容中的属性

Source Value Delivers Source Object

源值传递源对象

   notify-subscription-id (integer(1:MAX))    MUST       Subscription
   notify-printer-uri (uri)                   MUST       Subscription
   notify-subscribed-event (type2 keyword)    MUST       Event
                                                         Notification
   printer-up-time (integer(MIN:MAX))         MUST       Printer
   printer-current-time (dateTime) *          MUST       Printer
   notify-sequence-number (integer (0:MAX))   SHOULD     Subscription
   notify-charset (charset)                   SHOULD     Subscription
   notify-natural-language (naturalLanguage)  SHOULD     Subscription
   notify-user-data (octetString(63)) **      SHOULD     Subscription
   notify-text (text)                         SHOULD     Event
                                                         Notification
   attributes from the "notify-attributes"    MAY        Printer
   attribute ***
   attributes from the "notify-attributes"    MAY        Job
   attribute ***
   attributes from the "notify-attributes"    MAY        Subscription
   attribute ***
        
   notify-subscription-id (integer(1:MAX))    MUST       Subscription
   notify-printer-uri (uri)                   MUST       Subscription
   notify-subscribed-event (type2 keyword)    MUST       Event
                                                         Notification
   printer-up-time (integer(MIN:MAX))         MUST       Printer
   printer-current-time (dateTime) *          MUST       Printer
   notify-sequence-number (integer (0:MAX))   SHOULD     Subscription
   notify-charset (charset)                   SHOULD     Subscription
   notify-natural-language (naturalLanguage)  SHOULD     Subscription
   notify-user-data (octetString(63)) **      SHOULD     Subscription
   notify-text (text)                         SHOULD     Event
                                                         Notification
   attributes from the "notify-attributes"    MAY        Printer
   attribute ***
   attributes from the "notify-attributes"    MAY        Job
   attribute ***
   attributes from the "notify-attributes"    MAY        Subscription
   attribute ***
        

*A Printer MUST deliver this value only if and only if it supports the Printer's "printer-current-time" attribute.

*仅当且仅当打印机支持打印机的“打印机当前时间”属性时,打印机才能传递此值。

** If the Subscription Object does not contain a "notify-user-data" attribute and the Delivery Method Document REQUIRES the Printer to deliver the "notify-user-data" source value in the Event Notification, the Printer MUST deliver an octet-string of length 0.

**如果订阅对象不包含“notify user data”属性,并且传递方法文档要求打印机在事件通知中传递“notify user data”源值,则打印机必须传递长度为0的八位字节字符串。

   *** The last three rows represent additional attributes that a client
   MAY request via the  "notify-attributes" attribute.  A Printer MAY
   support the "notify-attributes" attribute.  The Delivery Method MUST
   say that the Printer MUST, SHOULD, MAY, MUST NOT, SHOULD NOT, or NEED
   NOT support the "notify-attributes" attribute and specific values of
   this attribute.  The Delivery Method MAY say that support for the
   "notify-attributes" is conditioned on support of the attribute by the
   Printer or it MAY say that Printer MUST support the "notify-
   attributes" attribute if the Printer supports the Delivery Method.
        
   *** The last three rows represent additional attributes that a client
   MAY request via the  "notify-attributes" attribute.  A Printer MAY
   support the "notify-attributes" attribute.  The Delivery Method MUST
   say that the Printer MUST, SHOULD, MAY, MUST NOT, SHOULD NOT, or NEED
   NOT support the "notify-attributes" attribute and specific values of
   this attribute.  The Delivery Method MAY say that support for the
   "notify-attributes" is conditioned on support of the attribute by the
   Printer or it MAY say that Printer MUST support the "notify-
   attributes" attribute if the Printer supports the Delivery Method.
        
9.1.2. Additional Event Notification Content for Job Events
9.1.2. 作业事件的其他事件通知内容

This section lists the additional attributes that a Delivery Method Document MUST specify for Job Events. See Table 6.

本节列出传递方法文档必须为作业事件指定的其他属性。见表6。

Table 6 - Additional Event Notification Content for Job Events

表6-作业事件的其他事件通知内容

Source Value Delivers Source Object

源值传递源对象

job-id (integer(1:MAX)) MUST Job job-state (type1 enum) MUST Job job-state-reasons (1setOf type2 keyword) MUST Job job-impressions-completed (integer(0:MAX)) * MUST Job

作业id(整数(1:MAX))必须作业状态(type1枚举)必须作业状态原因(1setOf type2关键字)必须作业印象完成(整数(0:MAX))*必须作业

* The Printer MUST deliver the "job-impressions-completed" attribute in an Event Notification only for the combinations of Events and Subscribed Events shown in Table 7.

* 打印机必须仅针对表7中所示的事件和订阅事件组合,在事件通知中传递“job impressions completed”属性。

Table 7 - Combinations of Events and Subscribed Events for "job-impressions-completed"

表7“完成工作印象”的事件和订阅事件组合

Job Event Subscribed Job Event

作业事件订阅的作业事件

'job-progress' 'job-progress' 'job-completed' 'job-completed' 'job-completed' 'job-state-changed'

“作业进度”“作业进度”“作业已完成”“作业已完成”“作业已完成”“作业状态已更改”

9.1.3. Additional Event Notification Content for Printer Events
9.1.3. 打印机事件的其他事件通知内容

This section lists the additional attributes that a Delivery Method Document MUST specify for Printer Events. See Table 8.

本节列出传递方法文档必须为打印机事件指定的其他属性。见表8。

Table 8 - Additional Event Notification Content for Printer Events

表8-打印机事件的其他事件通知内容

Source Value Delivers Source Object

源值传递源对象

printer-state (type1 enum) MUST Printer printer-state-reasons (1setOf type2 MUST Printer keyword) printer-is-accepting-jobs (boolean) MUST Printer

打印机状态(type1枚举)必须打印机状态原因(1setOf type2必须打印机关键字)打印机正在接受作业(布尔值)必须打印机

9.2. Content of Human Consumable Event Notification
9.2. 人类消耗品事件通知的内容

This section defines the information that a Delivery Method MUST mention in a Delivery Method Document when specifying the Human Consumable Event Notifications contents or the value of the "notify-text" attribute.

本节定义了交付方法在指定人员可消费事件通知内容或“通知文本”属性值时必须在交付方法文档中提及的信息。

Such a Delivery Method MUST specify the following information and a Printer SHOULD deliver it:

这种传送方法必须指定以下信息,打印机应传送这些信息:

a) the Printer name (see Table 9)

a) 打印机名称(见表9)

b) the time of the Event (see Table 11)

b) 事件发生的时间(见表11)

c) for Printer Events only:

c) 仅适用于打印机事件:

i) the Event (see Table 10) and/or Printer state information (see Table 14)

i) 事件(见表10)和/或打印机状态信息(见表14)

d) for Job Events only:

d) 仅适用于作业事件:

i) the job identity (see Table 12)

i) 工作标识(见表12)

ii) the Event (see Table 10) and/or Job state information (see Table 13)

ii)事件(见表10)和/或作业状态信息(见表13)

The subsections of this section specify the attributes that a Printer MUST use to obtain this information.

本节的小节指定打印机获取此信息必须使用的属性。

A Delivery Method Document MUST specify additional information (if any) that a Printer implementation delivers in a Human Consumable Event Notification or in the "notify-text" attribute.

交付方法文档必须指定打印机实现在人员可消费事件通知或“通知文本”属性中交付的附加信息(如果有)。

A client MUST NOT request additional attributes via the "notify-attributes" attribute because this attribute works only for Machine Consumable Event Notifications.

客户端不得通过“notify attributes”属性请求其他属性,因为此属性仅适用于机器可消费事件通知。

Notification Recipients MUST NOT expect to be able to parse the Human Consumable Event Notification contents or the value of the "notify-text" attribute.

通知接收者不得期望能够解析人员可消费事件通知内容或“通知文本”属性的值。

The next three sections define the attributes in Event Notification Contents that are:

接下来的三个部分定义了事件通知内容中的属性:

a) for all Events b) for Job Events only c) for Printer Events only

a) 对于所有事件b)仅针对作业事件c)仅针对打印机事件

9.2.1. Event Notification Content Common to All Events
9.2.1. 所有事件共用的事件通知内容

This section lists the source of the information that a Delivery Method MUST specify for all Events.

本节列出了传递方法必须为所有事件指定的信息源。

There is a separate table for each piece of information. Each row in the table represents a source value for the information and the values are listed in order of preference, with the first one being the preferred one. An implementation SHOULD use the source value from the earliest row in each table. It MAY use the source value

每一条信息都有一个单独的表格。表中的每一行表示信息的源值,这些值按优先顺序列出,第一行为优先值。实现应该使用每个表中最早的行中的源值。它可以使用源值

from another row instead, or it MAY combine the source values from several rows. An implementation is free to determine the best way to present this information.

取而代之的是另一行,或者它可以组合多行的源值。实现可以自由地确定呈现此信息的最佳方式。

In all tables of this section, all rows contain a "MAY" in order to state that the Delivery Method specifies the conformance.

在本节的所有表中,所有行都包含一个“可以”,以说明交付方法指定了一致性。

Table 9 lists the source of the information for the Printer Name. The "printer-name" is more user-friendly unless the Notification Recipient is in a place where the Printer name is not meaningful. For example, an implementation could have the intelligence to deliver the value of the "printer-name" attribute to a Notification Recipient that can access the Printer via value of the "printer-name" attribute and otherwise deliver the value of the "notify-printer-uri" attribute.

表9列出了打印机名称的信息来源。“打印机名称”更便于用户使用,除非通知收件人所在位置的打印机名称没有意义。例如,一个实现可以智能地将“打印机名称”属性的值传递给通知接收者,通知接收者可以通过“打印机名称”属性的值访问打印机,或者传递“通知打印机uri”属性的值。

Table 9 - Printer Name in Event Notification Content

表9-事件通知内容中的打印机名称

Source Value Delivers Source Object

源值传递源对象

printer-name (name(127)) MAY Printer notify-printer-uri (uri) MAY Subscription

打印机名称(名称(127))可以通知打印机uri(uri)可以订阅

Table 10 lists the source of the information for the Event name. A Printer MAY combine this information with state information described for Jobs in Table 13 or for Printers in Table 14.

表10列出了事件名称的信息来源。打印机可以将此信息与表13中的作业或表14中的打印机所述的状态信息组合在一起。

Table 10 - Event Name in Event Notification Content

表10-事件通知内容中的事件名称

Source Value Delivers Source Object

源值传递源对象

notify-subscribed-event (type2 keyword) MAY Subscription

通知已订阅事件(type2关键字)可能已订阅

Table 11 lists the source of the information for the time that the Event occurred. A Printer can deliver this value only if it supports the Printer's "printer-current-time" attribute. If a Printer does not support the "printer-current-time" attribute, it MUST NOT deliver the "printer-up-time" value instead, since it is not an allowed option for human consumable information.

表11列出了事件发生时的信息来源。打印机只有在支持打印机的“打印机当前时间”属性时才能传递此值。如果打印机不支持“打印机当前时间”属性,则不能改为提供“打印机启动时间”值,因为它不是人类耗材信息的允许选项。

Table 11 - Event Time in Event Notification Content

表11-事件通知内容中的事件时间

Source Value Delivers Source Object

源值传递源对象

printer-current-time (dateTime) MAY Printer

打印机当前时间(日期时间)可能是打印机

9.2.2. Additional Event Notification Content for Job Events
9.2.2. 作业事件的其他事件通知内容

This section lists the source of the additional information that a Delivery Method MUST specify for Job Events.

本节列出了传递方法必须为作业事件指定的附加信息的来源。

Table 12 lists the source of the information for the job name. The "job-name" is likely more meaningful to a user than "job-id".

表12列出了作业名称的信息来源。“作业名称”对用户来说可能比“作业id”更有意义。

Table 12 - Job Name in Event Notification Content

表12-事件通知内容中的作业名称

Source Value Delivers Source Object

源值传递源对象

job-name (name(MAX)) MAY Job job-id (integer(1:MAX)) MAY Job

作业名称(名称(最大值))可能作业作业id(整数(1:MAX))可能作业

Table 13 lists the source of the information for the job state. If a Printer supports the "job-state-message" and "job-detailed-state-message" attributes, it SHOULD use those attributes for the job state information, otherwise, it should fabricate such information from the "job-state" and "job-state-reasons". For some Events, a Printer MAY combine this information with Event information.

表13列出了作业状态的信息来源。如果打印机支持“作业状态消息”和“作业详细状态消息”属性,则应使用这些属性作为作业状态信息,否则,应根据“作业状态”和“作业状态原因”生成此类信息。对于某些事件,打印机可能会将此信息与事件信息相结合。

Table 13 - Job State in Event Notification Content

表13-事件通知内容中的作业状态

Source Value Delivers Source Object

源值传递源对象

job-state-message (text(MAX)) MAY Job job-detailed-status-messages (1setOf text(MAX)) MAY Job job-state (type1 enum) MAY Job job-state-reasons (1setOf type2 keyword) MAY Job

作业状态消息(文本(最大))可能作业详细状态消息(1setOf文本(最大))可能作业状态(类型1枚举)可能作业状态原因(1setOf类型2关键字)可能作业

9.2.3. Additional Event Notification Content for Printer Events
9.2.3. 打印机事件的其他事件通知内容

This section lists the source of the additional information that a Delivery Method MUST specify for Printer Events.

本节列出了传递方法必须为打印机事件指定的附加信息的来源。

Table 14 lists the source of the information for the printer state. If a Printer supports the "printer-state-message", it SHOULD use that attribute for the job state information, otherwise it SHOULD fabricate such information from the "printer-state" and "printer-state-reasons". For some Events, a Printer MAY combine this information with Event information.

表14列出了打印机状态信息的来源。如果打印机支持“打印机状态消息”,则应使用该属性作为作业状态信息,否则应根据“打印机状态”和“打印机状态原因”生成此类信息。对于某些事件,打印机可能会将此信息与事件信息相结合。

Table 14 - Printer State in Event Notification Content

表14-事件通知内容中的打印机状态

Source Value Delivers Source Object

源值传递源对象

printer-state-message (text(MAX)) MAY Printer printer-state (type1 enum) MAY Printer printer-state-reasons (1setOf type2 keyword) MAY Printer printer-is-accepting-jobs (boolean) MAY Printer

打印机状态消息(文本(最大值))可能打印机状态(type1枚举)可能打印机状态原因(1setOf type2关键字)可能打印机正在接受作业(布尔值)可能打印机

10. Delivery Methods
10. 交付方式

A Delivery Method is the mechanism, i.e., protocol, by which the Printer delivers an Event Notification to a Notification Recipient. There are several potential Delivery Methods for Event Notifications, standardized, as well as proprietary. This specification REQUIRES that the 'ippget' Pull Delivery Method [RFC3996] be supported. Conforming implementations MAY support additional Push or Pull Delivery Methods as well. This document does not define any of these delivery mechanisms. Each Delivery Method MUST be defined in a Delivery Method Document that is separate from this document. New Delivery Methods will be created as needed using an extension to the registration procedures defined in [RFC2911]. Such documents are registered with IANA (see section 23.7.3).

传递方法是打印机向通知接收者传递事件通知的机制,即协议。有几种潜在的事件通知交付方法,标准化的,以及专有的。本规范要求支持“ippget”拉式交付方法[RFC3996]。一致性实现也可以支持额外的推送或拉送方法。本文件未定义任何此类交付机制。每个交付方法必须在与本文件分开的交付方法文件中定义。将根据需要使用[RFC2911]中定义的注册程序的扩展创建新的交付方法。此类文件在IANA注册(见第23.7.3节)。

The following sorts of Delivery Methods are possible:

以下几种交付方法是可能的:

- The Notification Recipient polls for Event Notifications at intervals directed by the Printer

- 通知收件人按打印机指示的时间间隔轮询事件通知

- The Printer delivers Event Notifications to the Notification Recipient using http as the transport.

- 打印机使用http作为传输方式向通知收件人发送事件通知。

- The Printer delivers an email message.

- 打印机发送电子邮件。

This section specifies how to define a Delivery Method Document and what to put in such a document.

本节指定如何定义交付方法文档以及在此类文档中放置什么。

A Delivery Method Document MUST contain an exact copy of the following paragraph, caption and table. In addition, column 2 of the table in the Delivery Method Document MUST contain answers to questions in column 1 for the Delivery Method. Also, the Delivery Method document MUST contain a reference to this document and call that reference [RFC3995] because the table contains an [RFC3995] reference.

交付方法文档必须包含以下段落、标题和表格的精确副本。此外,交付方法文档中表格的第2列必须包含第1列中交付方法问题的答案。此外,交付方法文档必须包含对此文档的引用,并调用该引用[RFC3995],因为该表包含[RFC3995]引用。

If a Printer supports this Delivery Method, the following are its characteristics.

如果打印机支持此传送方法,则其特征如下。

Table 15 - Information about the Delivery Method

表15-有关交付方法的信息

Document Method Conformance Requirement Delivery Method Realization

文档方法一致性需求交付方法实现

1. What is the URL scheme name for the Push Delivery Method or the keyword method name for the Pull Delivery Method?

1. 推送传递方法的URL方案名称或拉送传递方法的关键字方法名称是什么?

2. Is the Delivery Method REQUIRED, RECOMMENDED, or OPTIONAL for an IPP Printer to support?

2. IPP打印机支持的交付方式是必需的、推荐的还是可选的?

3. What transport and delivery protocols does the Printer use to deliver the Event Notification Content, i.e., what is the entire network stack?

3. 打印机使用什么传输和传递协议来传递事件通知内容,即整个网络堆栈是什么?

4. Can several Event Notifications be combined into a Compound Event Notification?

4. 可以将多个事件通知组合成一个复合事件通知吗?

5. Is the Delivery Method initiated by the Notification Recipient (pull), or by the Printer (push)?

5. 传递方法是由通知收件人(拉)发起的,还是由打印机(推)发起的?

6. Is the Event Notification content Machine Consumable or Human Consumable?

6. 事件通知内容是机器消耗品还是人消耗品?

7. What section in this document answers the following question? For a Machine Consumable Event Notification, what is the representation and encoding of values defined in section 9.1 of [RFC3995] and the conformance requirements thereof? For a Human Consumable Event Notification, what is the representation and encoding of pieces of information defined in section 9.2 of [RFC3995] and the conformance requirements thereof?

7. 本文档中的哪个部分回答了以下问题?对于机器耗材事件通知,[RFC3995]第9.1节中定义的值的表示和编码以及一致性要求是什么?对于人类消耗品事件通知,[RFC3995]第9.2节中定义的信息片段的表示和编码以及一致性要求是什么?

8. What are the latency and reliability of the transport and delivery protocol?

8. 传输和交付协议的延迟和可靠性是什么?

9. What are the security aspects of the transport and delivery protocol, e.g., how it is handled in firewalls?

9. 传输和交付协议的安全方面是什么,例如,它在防火墙中是如何处理的?

10. What are the content length restrictions?

10. 内容长度限制是什么?

11. What are the additional values or pieces of information that a Printer delivers in an Event Notification content and the conformance requirements thereof?

11. 打印机在事件通知内容中提供的附加值或信息片段及其一致性要求是什么?

12. What are the additional Subscription Template and/or Subscription Description attributes and the conformance requirements thereof?

12. 其他订阅模板和/或订阅描述属性及其一致性要求是什么?

13. What are the additional Printer Description attributes and the conformance requirements thereof?

13. 其他打印机描述属性及其一致性要求是什么?

11. Operations for Notification
11. 通知操作

This section defines all of the operations for Notification. Section 7.1 assigns the "operation-id" for each operation. The following two sub-sections define Subscription Creation Operations, and other operations.

本节定义了通知的所有操作。第7.1节为每个操作分配“操作id”。以下两个子部分定义订阅创建操作和其他操作。

11.1. Subscription Creation Operations
11.1. 订阅创建操作

This section defines the Subscription Creation Operations. The first section on Create-Job-Subscriptions gives most of the information. The other Subscription Creation Operations refer to the section on Create-Job-Subscriptions, even though the Create-Job-Subscriptions operation is the only OPTIONAL operation in this document (see section 12).

本节定义订阅创建操作。关于创建作业订阅的第一节提供了大部分信息。其他订阅创建操作请参阅“创建作业订阅”一节,尽管“创建作业订阅”操作是本文档中唯一的可选操作(请参阅第12节)。

A Printer MUST support Create-Printer-Subscriptions and the Subscription Template Attributes Group in Job Creation operations. It MAY support Create-Job-Subscriptions operations.

打印机必须支持创建打印机订阅和作业创建操作中的订阅模板属性组。它可能支持创建作业订阅操作。

11.1.1. Create-Job-Subscriptions Operation
11.1.1. 创建作业订阅操作

The operation creates one or more Per-Job Subscription Objects. The client supplies one or more Subscription Template Attributes Groups each containing one or more of Subscription Template Attributes (defined in section 5.3).

该操作将创建一个或多个每作业订阅对象。客户端提供一个或多个订阅模板属性组,每个组包含一个或多个订阅模板属性(定义见第5.3节)。

Except for errors, the Printer MUST create exactly one Per-Job Subscription Object from each Subscription Template Attributes Group in the request, even if the newly created Subscription Object would have identical behavior to some existing Subscription Object. The Printer MUST associate each newly created Per-Job Subscription Object with the target Job, which is specified by the "notify-job-id" operation attribute.

除错误外,打印机必须从请求中的每个订阅模板属性组中创建一个每个作业订阅对象,即使新创建的订阅对象与某些现有订阅对象具有相同的行为。打印机必须将每个新创建的每个作业订阅对象与“通知作业id”操作属性指定的目标作业相关联。

The Printer MUST accept the request in any of the target job's 'not-completed' states, i.e., 'pending', 'pending-held', 'processing', or 'processing-stopped'. The Printer MUST NOT change the job's "job-state" attribute because of this operation. If the target job is in any of the 'completed' states, i.e., 'completed', 'canceled', or 'aborted, then the Printer MUST reject the request and return the 'client-error-not-possible' status code; the response MUST NOT contain any Subscription Attribute Groups.

打印机必须在目标作业的任何“未完成”状态下接受请求,即“挂起”、“挂起”、“处理”或“处理已停止”。打印机不得因为此操作而更改作业的“作业状态”属性。如果目标作业处于任何“已完成”状态,即“已完成”、“已取消”或“已中止”,则打印机必须拒绝请求并返回“客户端错误不可能”状态代码;响应不得包含任何订阅属性组。

Access Rights: To create Per-Job Subscription Objects, the authenticated user (see [RFC2911] section 8.3) performing this operation MUST (1) be the job owner, (2) have Operator or Administrator access rights for this Printer (see [RFC2911] sections 1 and 8.5), or (3) be otherwise authorized by the Printer's administrator-configured security policy to create Per-Job Subscription Objects for the target job. Otherwise the Printer MUST reject the operation and return: the 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' status code as appropriate.

访问权限:要创建每个作业订阅对象,执行此操作的经过身份验证的用户(请参见[RFC2911]第8.3节)必须(1)是作业所有者,(2)具有此打印机的操作员或管理员访问权限(请参见[RFC2911]第1节和第8.5节),或(3)由打印机管理员配置的安全策略以其他方式授权为目标作业创建每作业订阅对象。否则,打印机必须拒绝操作并返回“客户端错误禁止”、“客户端错误未验证”或“客户端错误未授权”状态代码(视情况而定)。

11.1.1.1. Create-Job-Subscriptions Request
11.1.1.1. 创建作业订阅请求

The following groups of attributes are part of the Create-Job-Subscriptions Request:

以下属性组是创建作业订阅请求的一部分:

Group 1: Operation Attributes

第1组:操作属性

Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in [RFC2911] section 3.1.4.1.

自然语言和字符集:“属性字符集”和“属性自然语言”属性如[RFC2911]第3.1.4.1节所述。

Target: The "printer-uri" attribute which defines the target for this operation as described in [RFC2911] section 3.1.5.

目标:“打印机uri”属性,用于定义[RFC2911]第3.1.5节所述的此操作的目标。

Requesting User Name: The "requesting-user-name" attribute SHOULD be supplied by the client as described in [RFC2911] section 8.3.

请求用户名:“请求用户名”属性应由客户提供,如[RFC2911]第8.3节所述。

11.1.1.1.1. notify-job-id (integer(1:MAX))
11.1.1.1.1. 通知作业id(整数(1:最大值))

The client MUST supply this attribute and it MUST specify the Job object to associate the Per-Job Subscription with. The value of "notify-job-id" MUST be the value of the "job-id" of the associated Job object. If the client does not supply this attribute, the Printer MUST reject this request with a 'client-error-bad-request' status code.

客户端必须提供此属性,并且必须指定要与每个作业订阅关联的作业对象。“通知作业id”的值必须是关联作业对象的“作业id”的值。如果客户端不提供此属性,打印机必须使用“客户端错误错误请求”状态代码拒绝此请求。

Group 2-N: Subscription Template Attributes

组2-N:订阅模板属性

For each occurrence of this group:

对于该组的每次出现:

The client MUST supply one or more Subscription Template Attributes in any order. See section 5.3 for a description of each such attribute. See section 5.2 for details on processing these attributes.

客户端必须以任意顺序提供一个或多个订阅模板属性。有关每个此类属性的说明,请参见第5.3节。有关处理这些属性的详细信息,请参见第5.2节。

11.1.1.2. Create-Job-Subscriptions Response
11.1.1.2. 创建作业订阅响应

The Printer MUST return to the client the following sets of attributes as part of a Create-Job-Subscriptions response:

打印机必须向客户端返回以下属性集,作为创建作业订阅响应的一部分:

Group 1: Operation Attributes

第1组:操作属性

Status Message: In addition to the REQUIRED status code returned in every response, the response OPTIONALLY includes a "status-message" (text(255)) and/or a "detailed-status-message" (text(MAX)) operation attribute as described in [RFC2911] sections 13 and 3.1.6.

状态消息:除了在每个响应中返回所需的状态代码外,响应还可选择包括[RFC2911]第13节和第3.1.6节所述的“状态消息”(文本(255))和/或“详细状态消息”(文本(最大))操作属性。

In this group, the Printer can return any status codes defined in [RFC2911] and section 12. The following is a description of the important status codes:

在此组中,打印机可以返回[RFC2911]和第12节中定义的任何状态代码。以下是重要状态代码的说明:

successful-ok: the Printer created all Subscription Objects requested (see [RFC2911]).

成功确定:打印机创建了所有请求的订阅对象(请参见[RFC2911])。

successful-ok-ignored-subscriptions: the Printer created some Subscription Objects requested but some failed. The Subscription Attributes Groups with a "notify-status-code" attribute are the ones that failed (see section 12.1).

成功确定忽略订阅:打印机创建了一些请求的订阅对象,但有些失败。具有“通知状态代码”属性的订阅属性组是失败的组(请参阅第12.1节)。

client-error-ignored-all-subscriptions: the Printer created no Subscription Objects requested and all failed. The Subscription Attributes Groups with a "notify-status-code" attribute are the ones that failed (see section 12.2).

客户端错误忽略了所有订阅:打印机未创建请求的订阅对象,所有订阅均失败。具有“通知状态代码”属性的订阅属性组是失败的组(请参阅第12.2节)。

client-error-not-possible: For this operation and other Per-Job Subscription operations, this error can occur because the specified Job has already completed (see [RFC2911], whether or not the Job is retained in the Job Retention and/or Job History phases (see [RFC2911] section 4.3.7.1).

客户端错误不可能:对于此操作和其他每作业订阅操作,可能会发生此错误,因为指定作业已完成(请参见[RFC2911],无论作业是否保留在作业保留和/或作业历史记录阶段(请参见[RFC2911]第4.3.7.1节)。

Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in [RFC2911] section 3.1.4.2.

自然语言和字符集:“属性字符集”和“属性自然语言”属性如[RFC2911]第3.1.4.2节所述。

Group 2: Unsupported Attributes

第2组:不支持的属性

See [RFC2911] section 3.1.7 for details on returning Unsupported Attributes. This group does not contain any unsupported Subscription Template Attributes; they are returned in the Subscription Attributes Group (see below).

有关返回不支持的属性的详细信息,请参见[RFC2911]第3.1.7节。此组不包含任何不受支持的订阅模板属性;它们在订阅属性组中返回(见下文)。

Group 3-N: Subscription Attributes

第3-N组:订阅属性

These groups MUST be returned unless the Printer is unable to interpret the entire request, e.g., the "status-code" parameter returned in Group 1 has the value: 'client-error-bad-request'.

必须返回这些组,除非打印机无法解释整个请求,例如,在组1中返回的“状态代码”参数的值为:“客户端错误错误请求”。

"notify-status-code" (type2 enum): Indicates the status of this subscription (see section 13 for the status code definitions). Section 5.2 defines when this attribute MUST be present in this group.

“通知状态代码”(type2 enum):指示此订阅的状态(状态代码定义见第13节)。第5.2节定义了该属性何时必须出现在该组中。

See section 5.2 for details on the contents of each occurrence of this group.

有关该组每次事件的内容,请参见第5.2节。

11.1.2. Create-Printer-Subscriptions operation
11.1.2. 创建打印机订阅操作

The operation is identical to Create-Job-Subscriptions with exceptions noted in this section.

该操作与创建作业订阅相同,但本节中有例外。

The operation creates Per-Printer Subscription Objects instead of Per-Job Subscription Objects, and associates each newly created Per-Printer Subscription Object with the Printer specified by the operation target rather than with a specific Job.

该操作创建每打印机订阅对象而不是每作业订阅对象,并将每个新创建的每打印机订阅对象与操作目标指定的打印机关联,而不是与特定作业关联。

The Printer MUST accept the request in any of its states, i.e., 'idle', 'processing', or 'stopped'. The Printer MUST NOT change its "printer-state" attribute because of this operation.

打印机必须在其任何状态下接受请求,即“空闲”、“正在处理”或“已停止”。打印机不得因为此操作而更改其“打印机状态”属性。

Access Rights: To create Per-Printer Subscription Objects, the authenticated user (see [RFC2911] section 8.3) performing this operation MUST have (1) Operator or Administrator access rights for this Printer (see [RFC2911] sections 1 and 8.5), or (2) be otherwise authorized by the Printer's administrator-configured security policy to create Per-Printer Subscription Objects for this Printer. Otherwise, the Printer MUST reject the operation and return: the 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' status code as appropriate.

访问权限:要创建每打印机订阅对象,执行此操作的经过身份验证的用户(请参见[RFC2911]第8.3节)必须具有(1)此打印机的操作员或管理员访问权限(请参见[RFC2911]第1节和第8.5节),或(2)由打印机管理员配置的安全策略以其他方式授权为此打印机创建每打印机订阅对象。否则,打印机必须拒绝操作并返回“客户端错误禁止”、“客户端错误未验证”或“客户端错误未授权”状态代码(视情况而定)。

11.1.2.1. Create-Printer-Subscriptions Request
11.1.2.1. 创建打印机订阅请求

The groups are identical to the Create-Job-Subscriptions (see section 11.1.1.1) except that the Operation Attributes group MUST NOT contain the "notify-job-id" attribute. If the client does supply the "notify-job-id" attribute, then the Printer MUST treat it as any other unsupported Operation attribute and MUST return it in the Unsupported Attributes group.

这些组与创建作业订阅(见第11.1.1.1节)相同,只是操作属性组不能包含“通知作业id”属性。如果客户端确实提供了“通知作业id”属性,则打印机必须将其视为任何其他不受支持的操作属性,并且必须将其返回到“不受支持的属性”组中。

11.1.2.2. Create-Printer-Subscriptions Response
11.1.2.2. 创建打印机订阅响应

The groups are identical to the Create-Job-Subscriptions (see section 11.1.1.2).

这些组与创建作业订阅相同(请参阅第11.1.1.2节)。

11.1.3. Job Creation Operations - Extensions for Notification
11.1.3. 作业创建操作-通知扩展

This document extends the Job Creation operations (see section 3.2) to create Subscription Objects as a part of the operation.

本文档扩展了作业创建操作(参见第3.2节),以创建订阅对象作为操作的一部分。

The Job Creation operations are identical to Create-Job-Subscriptions operation with exceptions noted in this section.

作业创建操作与创建作业订阅操作相同,但本节中指出了例外情况。

Unlike the Create-Job-Subscriptions operation, a Job Creation operation associates the newly created Subscription Objects with the Job object created by this operation. The operation succeeds if and only if the Job creation succeeds. If the Printer does not create some or all of the requested Subscription Objects, the Printer MUST return a 'successful-ok-ignored-subscriptions' status-code instead of a 'successful-ok' status-code, but the Printer MUST NOT reject the operation because of a failure to create Subscription Objects.

与创建作业订阅操作不同,作业创建操作将新创建的订阅对象与此操作创建的作业对象相关联。当且仅当作业创建成功时,操作才会成功。如果打印机未创建部分或全部请求的订阅对象,则打印机必须返回“成功确定忽略订阅”状态代码,而不是“成功确定”状态代码,但打印机不得因为创建订阅对象失败而拒绝该操作。

If the Job Creation operation includes a Job Template group, the client MUST supply it after the Operation Attributes group and before the first Subscription Template Attributes Group.

如果作业创建操作包括作业模板组,则客户端必须在操作属性组之后和第一个订阅模板属性组之前提供作业模板组。

If a Printer does not support this Notification specification, then it MUST treat the Subscription Attributes Group like an unknown group and ignore it (see [RFC2911] section 5.2.2). Because the Printer ignores the Subscription Attributes Group, it doesn't return them in the response either, thus indicating to the client that the Printer doesn't support Notification.

如果打印机不支持此通知规范,则必须将订阅属性组视为未知组并忽略它(请参阅[RFC2911]第5.2.2节)。因为打印机会忽略Subscription Attributes组,所以它也不会在响应中返回它们,从而向客户端指示打印机不支持通知。

After completion of a successful Job Creation operation, the Printer generates a 'job-created' event (see section 5.3.3.4.3).

成功完成作业创建操作后,打印机将生成“作业创建”事件(见第5.3.3.4.3节)。

Access Rights: To create Per-Job Subscription Objects, the authenticated user (see [RFC2911] section 8.3) performing this operation MUST either have permission to create Jobs on the Printer or have Operator or Administrator access rights for this Printer (see [RFC2911] sections 1 and 8.5). Otherwise the Printer MUST reject the operation and return: the 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' status code as appropriate.

访问权限:要创建每作业订阅对象,执行此操作的经过身份验证的用户(请参阅[RFC2911]第8.3节)必须具有在打印机上创建作业的权限,或者具有此打印机的操作员或管理员访问权限(请参阅[RFC2911]第1节和第8.5节)。否则,打印机必须拒绝操作并返回“客户端错误禁止”、“客户端错误未验证”或“客户端错误未授权”状态代码(视情况而定)。

11.1.3.1. Job Creation Request
11.1.3.1. 创造就业机会请求

The groups for this operation are sufficiently different from the Create-Job-Subscriptions operation that they are all presented here. The following groups of attributes are supplied as part of a Job Creation Request:

此操作的组与创建作业订阅操作完全不同,因此它们都显示在此处。以下属性组作为作业创建请求的一部分提供:

Group 1: Operation Attributes

第1组:操作属性

Same as defined in [RFC2911] for Print-Job, Print-URI, and Create-Job requests.

与[RFC2911]中对打印作业、打印URI和创建作业请求的定义相同。

Group 2: Job Template Attributes

组2:作业模板属性

The client OPTIONALLY supplies a set of Job Template attributes as defined in [RFC2911] section 4.2.

客户可以选择提供[RFC2911]第4.2节中定义的一组作业模板属性。

Group 3 to N: Subscription Template Attributes

订阅组:3个模板属性

The same as Group 2-N in Create-Job-Subscriptions. See section 11.1.1.1.

与创建作业订阅中的组2-N相同。见第11.1.1.1节。

Group N+1: Document Content (Print-Job only)

N+1组:文档内容(仅打印作业)

The client MUST supply the document data to be processed.

客户必须提供要处理的文档数据。

11.1.3.2. Job Creation Response
11.1.3.2. 创造就业的反应

The Printer MUST return to the client the following sets of attributes as part of a Print-Job, Print-URI, and Create-Job Response:

打印机必须将以下属性集作为打印作业、打印URI和创建作业响应的一部分返回给客户端:

Group 1: Operation Attributes

第1组:操作属性

Status Message:

状态消息:

As defined in [RFC2911] for Print-Job, Print-URI, and Create-Job requests.

如[RFC2911]中对打印作业、打印URI和创建作业请求的定义。

In this group, the Printer can return any status codes defined in [RFC2911] and section 12. The following is a description of the important status codes:

在此组中,打印机可以返回[RFC2911]和第12节中定义的任何状态代码。以下是重要状态代码的说明:

successful-ok: the Printer created the Job and all Subscription Objects requested (see [RFC2911].

成功确定:打印机创建了作业和请求的所有订阅对象(请参阅[RFC2911])。

successful-ok-ignored-subscriptions: the Printer created the Job and not all of the Subscription Objects requested

成功确定忽略订阅:打印机创建了作业,而不是请求的所有订阅对象

(see section 12.1). This status-code hides 'successful-ok-xxx' status-codes that could reveal problems in Job creation. The Printer MUST NOT return the 'client-error-ignored-all-subscriptions' status code for Job Creation operations because the Printer returns an error status-code only when it fails to create a Job.

(见第12.1节)。此状态代码隐藏了“成功确定xxx”状态代码,这些代码可能会揭示就业创造中的问题。打印机不得为作业创建操作返回“客户端错误忽略所有订阅”状态代码,因为打印机仅在创建作业失败时才会返回错误状态代码。

Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in [RFC2911] section 3.1.4.2.

自然语言和字符集:“属性字符集”和“属性自然语言”属性如[RFC2911]第3.1.4.2节所述。

Group 2: Unsupported Attributes

第2组:不支持的属性

See [RFC2911] section 3.1.7 for details on returning Unsupported Attributes. This group does not contain any unsupported Subscription Template Attributes; they are returned in the Subscription Attributes Group (see below).

有关返回不支持的属性的详细信息,请参见[RFC2911]第3.1.7节。此组不包含任何不受支持的订阅模板属性;它们在订阅属性组中返回(见下文)。

Group 3: Job Object Attributes

组3:作业对象属性

The "job-id" of the Job Object just created, etc., as defined in [RFC2911] for Print-Job, Print-URI, and Create-Job requests.

刚刚创建的作业对象的“作业id”等,如[RFC2911]中为打印作业、打印URI和创建作业请求定义的。

Group 4 to N: Subscription Attributes

组4到N:订阅属性

These groups MUST be returned if and only if the client supplied Subscription Template Attributes and the operation was accepted.

当且仅当客户端提供的订阅模板属性和操作被接受时,才必须返回这些组。

See section 5.2 for details on the contents of each occurrence of this group.

有关该组每次事件的内容,请参见第5.2节。

11.2. Other Operations
11.2. 其他业务

This section defines other operations on Subscription objects.

本节定义订阅对象上的其他操作。

11.2.1. Restart-Job Operation - Extensions for Notification
11.2.1. 重新启动作业操作-通知扩展

The Restart-Job operation [RFC2911] is neither a Job Creation operation nor a Subscription Creation operation (see section 3.2).

重启作业操作[RFC2911]既不是作业创建操作,也不是订阅创建操作(参见第3.2节)。

For the Restart-Job operation, the client MUST NOT supply any Job Subscription Attributes Groups. The Printer MUST treat any supplied Job Subscription Attributes as unsupported attributes.

对于重新启动作业操作,客户端不得提供任何作业订阅属性组。打印机必须将任何提供的作业订阅属性视为不受支持的属性。

For this operation, the Printer does not return a job-id or any Subscription Attributes groups because the Printer reuses the existing Job object with the same job-id and the existing Per-Job Subscription Objects with the same subscription-ids. However, after

对于此操作,打印机不会返回作业id或任何订阅属性组,因为打印机会重用具有相同作业id的现有作业对象和具有相同订阅id的现有每作业订阅对象。但是,

successful completion of this operation, the Printer generates a 'job-created' event (see section 5.3.3.4.3).

成功完成此操作后,打印机将生成“创建作业”事件(请参阅第5.3.3.4.3节)。

11.2.2. Validate-Job Operation - Extensions for Notification
11.2.2. 验证作业操作-通知的扩展

A client can test whether one or more Subscription Objects could be created using the Validate-Job operation. The client supplies one or more Subscription Template Attributes Groups (defined in section 5.3), just as in a Job Creation request.

客户端可以测试是否可以使用验证作业操作创建一个或多个订阅对象。客户端提供一个或多个订阅模板属性组(在第5.3节中定义),就像在作业创建请求中一样。

A Printer MUST support this extension to this operation.

打印机必须支持此操作的此扩展。

The Printer MUST accept requests that are identical to the Job Creation request defined in section 11.1.3.1, except that the request MUST NOT contain document data.

打印机必须接受与第11.1.3.1节中定义的作业创建请求相同的请求,但请求不得包含文档数据。

The Printer MUST return the same groups and attributes as the Print-Job operation (section 11.1.3.1) with the following exceptions. The Printer MUST NOT return a Job Object Attributes Group because no Job is created. The Printer MUST NOT return the "notify-subscription-id" attribute in any Subscription Attribute Group because no Subscription Object is created.

打印机必须返回与打印作业操作(第11.1.3.1节)相同的组和属性,但以下情况除外。打印机不得返回作业对象属性组,因为未创建任何作业。打印机不得在任何订阅属性组中返回“通知订阅id”属性,因为未创建订阅对象。

If the Printer would succeed in creating a Subscription Object, the corresponding Subscription Attributes Group either has no 'status-code' attribute or a 'status-code' attribute with a value of 'successful-ok-too-many-events' or 'successful-ok-ignored-or-substituted-attributes' (see sections 5.2 and 13). The status-codes have the same meaning as in Job Creation except the results state what "would happen".

如果打印机将成功创建订阅对象,则相应的订阅属性组没有“状态代码”属性或“状态代码”属性,其值为“成功确定太多事件”或“成功确定忽略或替换属性”(参见第5.2和13节)。状态代码与创造就业机会中的含义相同,只是结果中说明了“将发生什么”。

The Printer MUST validate Subscription Template Attributes Groups in the same manner as the Job Creation operations.

打印机必须以与创建作业操作相同的方式验证订阅模板属性组。

11.2.3. Get-Printer-Attributes - Extensions for Notification
11.2.3. 获取打印机属性-通知的扩展名

This operation is extended so that it returns Printer attributes defined in this document.

此操作已扩展,以便返回在此文档中定义的打印机属性。

A Printer MUST support this extension to this operation.

打印机必须支持此操作的此扩展。

In addition to the requirements of [RFC2911] section 3.2.5, a Printer MUST support the following additional values for the "requested-attributes" Operation attribute in this operation and return such attributes in the Printer Object Attributes group of its response.

除了[RFC2911]第3.2.5节的要求外,打印机必须支持此操作中“请求的属性”操作属性的以下附加值,并在其响应的打印机对象属性组中返回这些属性。

1. Subscription Template Attributes: Each supported attribute in column 2 of Table 1.

1. 订阅模板属性:表1第2列中的每个受支持的属性。

2. New Printer Description Attributes: Each supported attribute in section 6.

2. 新打印机描述属性:第6节中支持的每个属性。

3. New Group Name: The 'subscription-template' group name, which names all supported Subscription Template Attribute in column 2 of Table 1. This group name is also used in the Get-Subscription-Attributes and Get-Subscriptions operation with an analogous meaning.

3. 新组名:“订阅模板”组名,用于命名表1第2列中所有受支持的订阅模板属性。此组名称还用于“获取订阅属性”和“获取订阅”操作,具有类似的含义。

4. Extended Group Name: The 'all' group name, which names all Printer attributes according to [RFC2911] section 3.2.5. In this extension 'all' names all attributes specified in [RFC2911] plus those named in items 1 and 2 of this list.

4. 扩展组名:“全部”组名,根据[RFC2911]第3.2.5节命名所有打印机属性。在此扩展名中,“全部”命名了[RFC2911]中指定的所有属性以及此列表第1项和第2项中命名的属性。

11.2.4. Get-Subscription-Attributes operation
11.2.4. 获取订阅操作属性

This operation allows a client to request the values of the attributes of a Subscription Object.

此操作允许客户端请求订阅对象的属性值。

A Printer MUST support this operation.

打印机必须支持此操作。

This operation is almost identical to the Get-Job-Attributes operation (see [RFC2911] section 3.3.4). The only differences are that the operation is directed at a Subscription Object rather than a Job object, and the returned attribute group contains Subscription Object attributes rather than Job object attributes.

此操作与获取作业属性操作几乎相同(请参见[RFC2911]第3.3.4节)。唯一的区别是,该操作针对的是订阅对象而不是作业对象,并且返回的属性组包含订阅对象属性而不是作业对象属性。

Access Rights: The authenticated user (see [RFC2911] section 8.3) performing this operation MUST (1) be the Subscription Object owner, (2) have Operator or Administrator access rights for this Printer (see [RFC2911] sections 1 and 8.5), or (3) be otherwise authorized by the Printer's administrator-configured security policy to query the Subscription Object for the target job. Otherwise the Printer MUST reject the operation and return: the 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' status code as appropriate. Furthermore, the Printer's security policy MAY limit which attributes are returned, in a manner similar to the Get-Job-Attributes operation (see [RFC2911] end of section 3.3.4.2).

访问权限:执行此操作的经过身份验证的用户(请参见[RFC2911]第8.3节)必须(1)是订阅对象所有者,(2)具有此打印机的操作员或管理员访问权限(请参见[RFC2911]第1节和第8.5节),或(3)由打印机管理员配置的安全策略以其他方式授权查询目标作业的订阅对象。否则,打印机必须拒绝操作并返回“客户端错误禁止”、“客户端错误未验证”或“客户端错误未授权”状态代码(视情况而定)。此外,打印机的安全策略可能会以类似于获取作业属性操作的方式限制返回哪些属性(请参见第3.3.4.2节的[RFC2911]结尾)。

11.2.4.1. Get-Subscription-Attributes Request
11.2.4.1. 获取订阅属性请求

The following groups of attributes are part of the Get-Subscription-Attributes request:

以下属性组是获取订阅属性请求的一部分:

Group 1: Operation Attributes

第1组:操作属性

Natural Language and Character Set:

自然语言和字符集:

The "attributes-charset" and "attributes-natural-language" attributes as described in section [RFC2911] 3.1.4.1.

第[RFC2911]3.1.4.1节所述的“属性字符集”和“属性自然语言”属性。

Target: The "printer-uri" attribute which defines the target for this operation as described in [RFC2911] section 3.1.5.

目标:“打印机uri”属性,用于定义[RFC2911]第3.1.5节所述的此操作的目标。

Requesting User Name: The "requesting-user-name" attribute SHOULD be supplied by the client as described in [RFC2911] section 8.3.

请求用户名:“请求用户名”属性应由客户提供,如[RFC2911]第8.3节所述。

11.2.4.1.1. "notify-subscription-id" (integer (1:MAX))
11.2.4.1.1. “通知订阅id”(整数(1:MAX))

The client MUST supply this attribute. The Printer MUST support this attribute. This attribute specifies the Subscription Object from which the client is requesting attributes. If the client omits this attribute, the Printer MUST reject this request with the 'client-error-bad-request' status code.

客户端必须提供此属性。打印机必须支持此属性。此属性指定客户端向其请求属性的订阅对象。如果客户端忽略此属性,打印机必须使用“客户端错误错误请求”状态代码拒绝此请求。

11.2.4.1.2. "requested-attributes" (1setOf keyword)
11.2.4.1.2. “请求的属性”(1setOf关键字)

The client OPTIONALLY supplies this attribute. The Printer MUST support this attribute. This attribute specifies the attributes of the specified Subscription Object that the Printer MUST return in the response. Each value of this attribute is either an attribute name (defined in sections 5.3 and 5.4) or an attribute group name. The attribute group names are:

客户端可以选择提供此属性。打印机必须支持此属性。此属性指定打印机必须在响应中返回的指定订阅对象的属性。该属性的每个值都是属性名称(在第5.3节和第5.4节中定义)或属性组名称。属性组名称为:

- 'subscription-template': all attributes that are both defined in section 5.3 and present on the specified Subscription Object (column 1 of Table 1).

- “订阅模板”:在第5.3节中定义并显示在指定订阅对象(表1第1列)上的所有属性。

- 'subscription-description': all attributes that are both defined in section 5.4 and present on the specified Subscription Object (Table 2).

- “订阅说明”:在第5.4节中定义并在指定订阅对象上存在的所有属性(表2)。

- 'all': all attributes that are present on the specified Subscription Object.

- “全部”:指定订阅对象上存在的所有属性。

A Printer MUST support all these group names.

打印机必须支持所有这些组名。

If the client omits this attribute, the Printer MUST respond as if this attribute had been supplied with a value of 'all'.

如果客户端忽略此属性,则打印机必须响应,就像此属性已提供值“all”一样。

11.2.4.2. Get-Subscription-Attributes Response
11.2.4.2. 获取订阅属性响应

The Printer returns the following sets of attributes as part of the Get-Subscription-Attributes Response:

打印机返回以下属性集,作为获取订阅属性响应的一部分:

Group 1: Operation Attributes

第1组:操作属性

Status Message: Same as [RFC2911].

状态消息:与[RFC2911]相同。

Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in [RFC2911] section 3.1.4.2. The "attributes-natural-language" MAY be the natural language of the Subscription Object, rather than the one requested.

自然语言和字符集:“属性字符集”和“属性自然语言”属性如[RFC2911]第3.1.4.2节所述。“属性自然语言”可能是订阅对象的自然语言,而不是请求的自然语言。

Group 2: Unsupported Attributes

第2组:不支持的属性

See [RFC2911] section 3.1.7 and section 3.2.5.2 for details on returning Unsupported Attributes.

有关返回不支持属性的详细信息,请参见[RFC2911]第3.1.7节和第3.2.5.2节。

The response NEED NOT contain the "requested-attributes" operation attribute with any supplied keyword values that were requested by the client but are not supported by the IPP object. If the Printer object does return unsupported attributes referenced in the "requested-attributes" operation attribute, the values of the "requested-attributes" attribute returned MUST include only the unsupported keywords that were requested by the client. If the client had requested a group name, such as 'all', the resulting unsupported attributes returned MUST NOT include attribute keyword names described in the standard but not supported by the implementation.

响应不需要包含“请求的属性”操作属性以及客户端请求但IPP对象不支持的任何提供的关键字值。如果打印机对象返回“请求的属性”操作属性中引用的不受支持的属性,则返回的“请求的属性”属性的值必须仅包括客户端请求的不受支持的关键字。如果客户端请求了组名,例如“all”,则返回的结果不受支持的属性不得包括标准中描述但实现不支持的属性关键字名称。

Group 3: Subscription Attributes

组3:订阅属性

This group contains a set of attributes with their current values. Each attribute returned in this group:

此组包含一组属性及其当前值。此组中返回的每个属性:

a) MUST be specified by the "requested-attributes" attribute in the request, AND

a) 必须由请求中的“请求的属性”属性指定,并且

b) MUST be present on the specified Subscription Object AND

b) 必须存在于指定的订阅对象上,并且

c) MUST NOT be restricted by the security policy in force. For example, a Printer MAY prohibit a client who is not the creator of a Subscription Object from seeing some or all of its attributes. See [RFC2911] end of section 3.3.4.2 and section 8.

c) 不得受现行安全策略的限制。例如,打印机可能会禁止不是订阅对象创建者的客户端查看其部分或全部属性。参见[RFC2911]第3.3.4.2节末尾和第8节。

The Printer can return the attributes of the Subscription Object in any order. The client MUST accept the attributes in any order.

打印机可以按任意顺序返回订阅对象的属性。客户端必须以任何顺序接受属性。

11.2.5. Get-Subscriptions operation
11.2.5. 获取订阅操作

This operation allows a client to retrieve the values of attributes of all Subscription Objects belonging to a Job or Printer.

此操作允许客户端检索属于作业或打印机的所有订阅对象的属性值。

A Printer MUST supported this operation.

打印机必须支持此操作。

This operation is similar to the Get-Subscription-Attributes operation, except that this Get-Subscriptions operation returns attributes from possibly more than one object.

此操作类似于获取订阅属性操作,只是此获取订阅操作可能会从多个对象返回属性。

This operation is similar to the Get-Jobs operation (see [RFC2911] section 3.2.6), except that the operation returns Subscription Objects rather than Job objects.

此操作类似于获取作业操作(请参见[RFC2911]第3.2.6节),只是该操作返回的是订阅对象而不是作业对象。

Access Rights: To query Per-Job Subscription Objects of the specified job (client supplied the "notify-job-id" operation attribute - see section 11.2.5.1.1), the authenticated user (see [RFC2911] section 8.3) performing this operation MUST (1) be the Subscription Object owner, (2) have Operator or Administrator access rights for this Printer (see [RFC2911] sections 1 and 8.5), or (3) be otherwise authorized by the Printer's administrator-configured security policy to query the Subscription Object for the target job. To query Per-Printer Subscription Objects of the Printer (client omits the "notify-job-id" operation attribute - see section 11.2.5.1.1), the authenticated user (see [RFC2911] section 8.3) performing this operation MUST (1) have Operator or Administrator access rights for this Printer (see [RFC2911] sections 1 and 8.5), or (2) be otherwise authorized by the Printer's administrator-configured security policy to query Per-Printer Subscription Objects for the target Printer. Otherwise the Printer MUST reject the operation and return: the 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' status code as appropriate. Furthermore, the Printer's security policy MAY limit which attributes are returned, in a manner similar to the Get-Jobs and Get-Printer-Attributes operations (see [RFC2911] end of sections 3.2.6.2 and 3.2.5.2).

访问权限:要查询指定作业的每个作业订阅对象(客户端提供了“通知作业id”操作属性-请参阅第11.2.5.1.1节),执行此操作的经过身份验证的用户(请参阅[RFC2911]第8.3节)必须(1)是订阅对象的所有者,(2)具有此打印机的操作员或管理员访问权限(请参阅[RFC2911]第1节和第8.5节),或(3)由打印机管理员配置的安全策略授权,以查询目标作业的订阅对象。要查询打印机的每台打印机订阅对象(客户端省略“通知作业id”操作属性-请参阅第11.2.5.1.1节),经过身份验证的用户(请参阅[RFC2911]第8.3节)执行此操作必须(1)具有此打印机的操作员或管理员访问权限(请参阅[RFC2911]第1节和第8.5节),或(2)由打印机管理员配置的安全策略授权,以查询目标打印机的每台打印机订阅对象。否则,打印机必须拒绝该操作并返回“客户端错误禁止”、“客户端错误未验证”或“客户端错误未授权”状态码(视情况而定)。此外打印机的安全策略可能会限制返回哪些属性,其方式类似于获取作业和获取打印机属性操作(请参见[RFC2911]第3.2.6.2节和第3.2.5.2节末尾)。

11.2.5.1. Get-Subscriptions Request
11.2.5.1. 获取订阅请求

The following groups of attributes are part of the Get-Subscriptions request:

以下属性组是Get Subscriptions请求的一部分:

Group 1: Operation Attributes

第1组:操作属性

Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in [RFC2911] section 3.1.4.1.

自然语言和字符集:“属性字符集”和“属性自然语言”属性如[RFC2911]第3.1.4.1节所述。

Target: The "printer-uri" attribute which defines the target for this operation as described in [RFC2911] section 3.1.5.

目标:“打印机uri”属性,用于定义[RFC2911]第3.1.5节所述的此操作的目标。

Requesting User Name: The "requesting-user-name" attribute SHOULD be supplied by the client as described in [RFC2911] section 8.3.

请求用户名:“请求用户名”属性应由客户提供,如[RFC2911]第8.3节所述。

11.2.5.1.1. "notify-job-id" (integer(1:MAX))
11.2.5.1.1. “通知作业id”(整数(1:MAX))

If the client specifies this attribute, the Printer returns the specified attributes of all Per-Job Subscription Objects associated with the Job whose "job-id" attribute value equals the value of this attribute. If the client does not specify this attribute, the Printer returns the specified attributes of all Per-Printer Subscription Objects. Note: there is no way to get all Per-Job

如果客户端指定此属性,打印机将返回与“作业id”属性值等于此属性值的作业关联的所有每作业订阅对象的指定属性。如果客户端未指定此属性,打印机将返回所有每打印机订阅对象的指定属性。注意:没有办法获得每个作业的所有信息

Subscriptions known to the Printer in a single operation. A Get-Jobs operation followed by a Get-Subscriptions operation for each Job will return all Per-Job Subscriptions.

打印机在一次操作中已知的订阅。Get Jobs操作后跟每个作业的Get Subscriptions操作将返回每个作业的所有订阅。

11.2.5.1.2. "limit" (integer(1:MAX))
11.2.5.1.2. “限制”(整数(1:最大值))

The client OPTIONALLY supplies this attribute. The Printer MUST support this attribute. It is an integer value that determines the maximum number of Subscription Objects that a client will receive from the Printer even if the "my-subscriptions" attribute constrains which Subscription Objects are returned. The limit is a "stateless limit" in that if the value supplied by the client is 'N', then only the first 'N' Subscription Objects are returned in the Get-Subscriptions Response. There is no mechanism to allow for the next 'M' Subscription Objects after the first 'N' Subscription Objects. If the client does not supply this attribute, the Printer responds with all applicable Subscription Objects.

客户端可以选择提供此属性。打印机必须支持此属性。它是一个整数值,用于确定客户端将从打印机接收的最大订阅对象数,即使“我的订阅”属性约束返回的订阅对象。该限制是一个“无状态限制”,因为如果客户端提供的值为“N”,则在Get Subscriptions响应中仅返回前“N”个订阅对象。没有允许在第一个“N”订阅对象之后再出现下一个“M”订阅对象的机制。如果客户端不提供此属性,打印机将使用所有适用的订阅对象进行响应。

11.2.5.1.3. "requested-attributes" (1setOf type2 keyword)
11.2.5.1.3. “请求的属性”(1setOf type2关键字)

The client OPTIONALLY supplies this attribute. The Printer MUST support this attribute. This attribute specifies the attributes of the specified Subscription Objects that the Printer MUST return in the response. Each value of this attribute is either an attribute name (defined in sections 5.3 and 5.4) or an attribute group name (defined in section 11.2.4.1). If the client omits this attribute, the Printer MUST respond as if the client had supplied this attribute with the one value: 'notify-subscription-id'.

客户端可以选择提供此属性。打印机必须支持此属性。此属性指定打印机必须在响应中返回的指定订阅对象的属性。该属性的每个值都是属性名称(在第5.3节和第5.4节中定义)或属性组名称(在第11.2.4.1节中定义)。如果客户端忽略此属性,打印机必须作出响应,就像客户端为此属性提供了一个值:“通知订阅id”。

11.2.5.1.4. "my-subscriptions" (boolean)
11.2.5.1.4. “我的订阅”(布尔值)

The client OPTIONALLY supplies this attribute. The Printer MUST support this attribute. If the value is 'false', the Printer MUST consider the Subscription Objects from all users as candidates. If the value is 'true', the Printer MUST return the Subscription Objects created by the requesting user of this request. If the client does not supply this attribute, the Printer MUST respond as if the client had supplied the attribute with a value of 'false'. The means for authenticating the requesting user and matching the Subscription Objects is similar to that for Jobs which is described in [RFC2911] section 8.

客户端可以选择提供此属性。打印机必须支持此属性。如果该值为“false”,则打印机必须将所有用户的订阅对象视为候选对象。如果该值为“true”,则打印机必须返回此请求的请求用户创建的订阅对象。如果客户端未提供此属性,则打印机必须作出响应,就像客户端提供的属性值为“false”一样。验证请求用户和匹配订阅对象的方法类似于[RFC2911]第8节中描述的作业方法。

11.2.5.2 Get-Subscriptions Response
11.2.5.2 获取订阅响应

The Printer returns the following sets of attributes as part of the Get-Subscriptions Response:

打印机返回以下属性集作为获取订阅响应的一部分:

Group 1: Operation Attributes

第1组:操作属性

Status Message: Same as [RFC2911].

状态消息:与[RFC2911]相同。

Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in [RFC2911] section 3.1.4.2.

自然语言和字符集:“属性字符集”和“属性自然语言”属性如[RFC2911]第3.1.4.2节所述。

Group 2: Unsupported Attributes

第2组:不支持的属性

Same as for Get-Subscription-Attributes.

与获取订阅属性相同。

Groups 3 to N: Subscription Attributes

组3到组N:订阅属性

The Printer responds with one Subscription Attributes Group for each requested Subscription Object (see the "notify-job-id" attribute in the Operation Attributes Group of this operation).

打印机为每个请求的订阅对象响应一个订阅属性组(请参阅此操作的操作属性组中的“通知作业id”属性)。

The Printer returns Subscription Objects in any order.

打印机以任意顺序返回订阅对象。

If the "limit" attribute is present in the Operation Attributes group of the request, the number of Subscription Attributes Groups in the response MUST NOT exceed the value of the "limit" attribute.

如果请求的操作属性组中存在“限制”属性,则响应中订阅属性组的数量不得超过“限制”属性的值。

It there are no Subscription Objects associated with the specified Job or Printer, the Printer MUST return zero Subscription Attributes Groups and it MUST NOT treat this case as an error,

如果没有与指定作业或打印机关联的订阅对象,则打印机必须返回零订阅属性组,并且不能将此情况视为错误,

i.e., the status-code MUST be 'successful-ok' unless something else causes the status code to have some other value.

i、 例如,状态代码必须为“成功正常”,除非其他原因导致状态代码具有其他值。

See the Group 3 response (Subscription Attributes Group) of the Get-Subscription-Attributes operation (section 11.2.4.2) for the attributes that a Printer returns in this group.

有关打印机在此组中返回的属性,请参阅获取订阅属性操作(第11.2.4.2节)的组3响应(订阅属性组)。

11.2.6. Renew-Subscription operation
11.2.6. 续订操作

This operation allows a client to request the Printer to extend the lease on a Per-Printer Subscription Object.

此操作允许客户端请求打印机在每打印机订阅对象上延长租约。

The Printer MUST support this operation.

打印机必须支持此操作。

The Printer MUST accept this request for a Per-Printer Subscription Object in any of the target Printer's states, i.e., 'idle', 'processing', or 'stopped', but MUST NOT change the Printer's "printer-state" attribute.

打印机必须在目标打印机的任何状态(即“空闲”、“正在处理”或“已停止”)下接受每个打印机订阅对象的请求,但不得更改打印机的“打印机状态”属性。

The Printer MUST reject this request for a Per-Job Subscription Object because it has no lease (see section 5.4.3). The status code returned MUST be 'client-error-not-possible'.

打印机必须拒绝每个作业订阅对象的请求,因为它没有租约(请参阅第5.4.3节)。返回的状态代码必须为“客户端错误不可能”。

Access Rights: The authenticated user (see [RFC2911] section 8.3) performing this operation MUST (1) be the owner of the Per-Printer Subscription Object, (2) have Operator or Administrator access rights for the Printer (see [RFC2911] sections 1 and 8.5), or (3) be otherwise authorized by the Printer's administrator-configured security policy to renew Per-Printer Subscription Objects for the target Printer. Otherwise, the Printer MUST reject the operation and return: the 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' status code as appropriate.

访问权限:执行此操作的经过身份验证的用户(请参见[RFC2911]第8.3节)必须(1)是每打印机订阅对象的所有者,(2)具有打印机的操作员或管理员访问权限(请参见[RFC2911]第1节和第8.5节),或(3)由打印机管理员配置的安全策略授权,以续订目标打印机的每打印机订阅对象。否则,打印机必须拒绝操作并返回“客户端错误禁止”、“客户端错误未验证”或“客户端错误未授权”状态代码(视情况而定)。

11.2.6.1. Renew-Subscription Request
11.2.6.1. 续订请求

The following groups of attributes are part of the Renew-Subscription Request:

以下属性组是续订订阅请求的一部分:

Group 1: Operation Attributes

第1组:操作属性

Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in [RFC2911] section 3.1.4.1.

自然语言和字符集:“属性字符集”和“属性自然语言”属性如[RFC2911]第3.1.4.1节所述。

Target: The "printer-uri" attribute which defines the target for this operation as described in [RFC2911] section 3.1.5.

目标:“打印机uri”属性,用于定义[RFC2911]第3.1.5节所述的此操作的目标。

Requesting User Name: The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the client as described in [RFC2911] section 8.3.

请求用户名:“请求用户名”(Name(MAX))属性应由客户提供,如[RFC2911]第8.3节所述。

11.2.6.1.1. "notify-subscription-id" (integer (1:MAX))
11.2.6.1.1. “通知订阅id”(整数(1:MAX))

The client MUST supply this attribute. The Printer MUST support this attribute. This attribute specifies the Per-Printer Subscription Object whose lease the Printer MUST renew. If the client omits this attribute, the Printer MUST reject this request with the 'client-error-bad-request' status code.

客户端必须提供此属性。打印机必须支持此属性。此属性指定打印机必须续订其租约的每打印机订阅对象。如果客户端忽略此属性,打印机必须使用“客户端错误错误请求”状态代码拒绝此请求。

Group 2: Subscription Template Attributes

组2:订阅模板属性

11.2.6.1.2. "notify-lease-duration" (integer(0:MAX))
11.2.6.1.2. “通知租赁期限”(整数(0:最大))

The client MAY supply this attribute. It indicates the number of seconds to renew the lease for the specified Subscription Object. A value of 0 requests an infinite lease (which MAY require Operator access rights). If the client omits this attribute, the Printer MUST use the value of the Printer's "notify-lease-duration-default" attribute. See section 5.3.8 for more details.

客户端可以提供此属性。它指示为指定订阅对象续订租约的秒数。值0请求无限期租约(可能需要操作员访问权限)。如果客户端忽略此属性,则打印机必须使用打印机的“notify lease duration default”属性的值。详见第5.3.8节。

11.2.6.2. Renew-Subscription Response
11.2.6.2. 续订响应

The Printer returns the following sets of attributes as part of the Renew-Subscription Response:

打印机返回以下属性集作为续订响应的一部分:

Group 1: Operation Attributes

第1组:操作属性

Status Message: Same as [RFC2911].

状态消息:与[RFC2911]相同。

The following are some of the status codes returned (see [RFC2911]:

以下是返回的一些状态代码(请参阅[RFC2911]:

successful-ok: The operation successfully renewed the lease on the Subscription Object for the requested duration.

成功确定:该操作在请求的持续时间内成功续订订阅对象上的租约。

successful-ok-ignored-or-substituted-attributes: The operation successfully renewed the lease on the Subscription Object for some duration other than the amount requested.

成功确定忽略或替换属性:该操作成功地将订阅对象上的租约续订了一段时间(请求的金额除外)。

client-error-not-possible: The operation failed because the "notify-subscription-id" Operation attribute identified a Per-Job Subscription Object.

客户端错误不可能:操作失败,因为“通知订阅id”操作属性标识了每个作业订阅对象。

client-error-not-found: The operation failed because the "notify-subscription-id" Operation attribute identified a non-existent Subscription Object.

找不到客户端错误:操作失败,因为“通知订阅id”操作属性标识了不存在的订阅对象。

Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in [RFC2911] section 3.1.4.2. The "attributes-natural-language" MAY be the natural language of the Subscription Object, rather than the one requested.

自然语言和字符集:“属性字符集”和“属性自然语言”属性如[RFC2911]第3.1.4.2节所述。“属性自然语言”可能是订阅对象的自然语言,而不是请求的自然语言。

Group 2: Unsupported Attributes

第2组:不支持的属性

See [RFC2911] section 3.1.7 for details on returning Unsupported Attributes.

有关返回不支持的属性的详细信息,请参见[RFC2911]第3.1.7节。

Group 3: Subscription Attributes

组3:订阅属性

The Printer MUST return the following Subscription Attribute:

打印机必须返回以下订阅属性:

11.2.6.2.1. "notify-lease-duration" (integer(0:MAX))
11.2.6.2.1. “通知租赁期限”(整数(0:最大))

The value of this attribute MUST be the number of seconds that the Printer has granted for the lease of the Subscription Object (see section 5.3.8 for details, such as the value of this attribute when the Printer doesn't support the requested value).

此属性的值必须是打印机为租用订阅对象而授予的秒数(有关详细信息,请参阅第5.3.8节,例如打印机不支持请求的值时此属性的值)。

11.2.7. Cancel-Subscription operation
11.2.7. 取消订阅操作

This operation allows a client to delete a Subscription Object and stop the Printer from delivering more Event Notifications. Once performed, there is no way to reference the Subscription Object.

此操作允许客户端删除订阅对象并停止打印机发送更多事件通知。一旦执行,就无法引用订阅对象。

A Printer MUST supported this operation.

打印机必须支持此操作。

The Printer MUST accept this request in any of the target Printer's states, i.e., 'idle', 'processing', or 'stopped', but MUST NOT change the Printer's "printer-state" attribute.

打印机必须在目标打印机的任何状态(即“空闲”、“正在处理”或“已停止”)下接受此请求,但不得更改打印机的“打印机状态”属性。

If the specified Subscription Object is a Per-Job Subscription Object, the Printer MUST accept this request in any of the target Job's states, but MUST NOT change the Job's "job-state" attribute or affect the Job.

如果指定的订阅对象是每作业订阅对象,则打印机必须在任何目标作业状态下接受此请求,但不得更改作业的“作业状态”属性或影响作业。

Note: There is no way to change any attributes on a Subscription Object, except the "notify-lease-duration" attribute (using the Renew-Subscription operation). In order to change other attributes, a client performs a Subscription Creation Operation and Cancel-Subscription operation on the old Subscription Object. If the client

注意:除了“通知租赁期限”属性(使用续订订阅操作)外,无法更改订阅对象上的任何属性。为了更改其他属性,客户端对旧订阅对象执行订阅创建操作和取消订阅操作。如果客户

wants to avoid missing Event Notifications, it performs the Subscription Creation Operation first. If this order would create too many Subscription Objects on the Printer, the client reverses the order.

为了避免丢失事件通知,它首先执行订阅创建操作。如果此订单会在打印机上创建太多订阅对象,则客户端会反转订单。

Access Rights: The authenticated user (see [RFC2911] section 8.3) performing this operation MUST (1) be the owner of the Subscription Object, (2) have Operator or Administrator access rights for the Printer (see [RFC2911] sections 1 and 8.5), or (3) be otherwise authorized by the Printer's administrator-configured security policy to cancel the target Subscription Object. Otherwise, the Printer MUST reject the operation and return: the 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' status code as appropriate.

访问权限:执行此操作的经过身份验证的用户(请参见[RFC2911]第8.3节)必须(1)是订阅对象的所有者,(2)具有打印机的操作员或管理员访问权限(请参见[RFC2911]第1节和第8.5节),或(3)由打印机管理员配置的安全策略以其他方式授权取消目标订阅对象。否则,打印机必须拒绝操作并返回“客户端错误禁止”、“客户端错误未验证”或“客户端错误未授权”状态代码(视情况而定)。

11.2.7.1. Cancel-Subscription Request
11.2.7.1. 取消订阅请求

The following groups of attributes are part of the Cancel-Subscription Request:

以下属性组是取消订阅请求的一部分:

Group 1: Operation Attributes

第1组:操作属性

Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in [RFC2911] section 3.1.4.1.

自然语言和字符集:“属性字符集”和“属性自然语言”属性如[RFC2911]第3.1.4.1节所述。

Target: The "printer-uri" attribute which defines the target for this operation as described in [RFC2911] section 3.1.5.

目标:“打印机uri”属性,用于定义[RFC2911]第3.1.5节所述的此操作的目标。

Requesting User Name: The "requesting-user-name" attribute SHOULD be supplied by the client as described in [RFC2911] section 8.3.

请求用户名:“请求用户名”属性应由客户提供,如[RFC2911]第8.3节所述。

11.2.7.1.1. "notify-subscription-id" (integer (1:MAX))
11.2.7.1.1. “通知订阅id”(整数(1:MAX))

The client MUST supply this attribute. The Printer MUST support this attribute. This attribute specifies the Subscription Object that the Printer MUST cancel. If the client omits this attribute, the Printer MUST reject this request with the 'client-error-bad-request' status code.

客户端必须提供此属性。打印机必须支持此属性。此属性指定打印机必须取消的订阅对象。如果客户端忽略此属性,打印机必须使用“客户端错误错误请求”状态代码拒绝此请求。

11.2.7.2. Cancel-Subscription Response
11.2.7.2. 取消订阅响应

The Printer returns the following sets of attributes as part of the Cancel-Subscription Response:

打印机返回以下属性集作为取消订阅响应的一部分:

Group 1: Operation Attributes

第1组:操作属性

Status Message: Same as [RFC2911].

状态消息:与[RFC2911]相同。

The following are some of the status codes returned (see [RFC2911]:

以下是返回的一些状态代码(请参阅[RFC2911]:

successful-ok: The operation successfully canceled (deleted) the Subscription Object.

成功确定:操作已成功取消(删除)订阅对象。

client-error-not-found: The operation failed because the "notify-subscription-id" Operation attribute identified a non-existent Subscription Object.

找不到客户端错误:操作失败,因为“通知订阅id”操作属性标识了不存在的订阅对象。

Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in [RFC2911] section 3.1.4.2. The "attributes-natural-language" MAY be the natural language of the Subscription Object, rather than the one requested.

自然语言和字符集:“属性字符集”和“属性自然语言”属性如[RFC2911]第3.1.4.2节所述。“属性自然语言”可能是订阅对象的自然语言,而不是请求的自然语言。

Group 2: Unsupported Attributes

第2组:不支持的属性

See [RFC2911] section 3.1.7 for details on returning Unsupported Attributes.

有关返回不支持的属性的详细信息,请参见[RFC2911]第3.1.7节。

12. Status Codes
12. 状态代码

The following status codes are defined as extensions for Notification and are returned as the value of the "status-code" parameter in the Operation Attributes Group of a response (see [RFC2911] section 3.1.6.1). Operations in this document can also return the status codes defined in section 13 of [RFC2911]. The 'successful-ok' status code is an example of such a status code.

以下状态代码定义为通知扩展,并作为响应操作属性组中“状态代码”参数的值返回(参见[RFC2911]第3.1.6.1节)。本文件中的操作也可返回[RFC2911]第13节中定义的状态代码。“成功确定”状态代码就是此类状态代码的一个示例。

12.1. successful-ok-ignored-subscriptions (0x0003)
12.1. 成功确定忽略的订阅(0x0003)

The Subscription Creation Operation was unable to create all requested Subscription Objects.

订阅创建操作无法创建所有请求的订阅对象。

For a Create-Job-Subscriptions or Create-Printer-Subscriptions operation, this status code means that the Printer created one or

对于创建作业订阅或创建打印机订阅操作,此状态代码表示打印机创建了一个或多个作业订阅

more Subscription Objects, but not all requested Subscription Objects.

更多订阅对象,但不是所有请求的订阅对象。

For a Job Creation operation, this status code means that the Printer created the Job along with zero or more Subscription Objects. The Printer returns this status code even if other job attributes are unsupported or in conflict. That is, if an IPP Printer finds a warning that would allow it to return 'successful-ok-ignored-subscriptions' and either 'successful-ok-ignored-or-substituted-attributes' and/or 'successful-ok-conflicting-attributes', it MUST return 'successful-ok-ignored-subscriptions'.

对于作业创建操作,此状态代码表示打印机创建了作业以及零个或多个订阅对象。即使其他作业属性不受支持或存在冲突,打印机也会返回此状态代码。也就是说,如果IPP打印机发现一条警告,允许它返回“成功的ok忽略订阅”和“成功的ok忽略或替换属性”和/或“成功的ok冲突属性”,它必须返回“成功的ok忽略订阅”。

12.2. client-error-ignored-all-subscriptions (0x0414)
12.2. 客户端错误忽略了所有订阅(0x0414)

This status code is the same as 'successful-ok-ignored-subscriptions' except that only the Create-Job-Subscriptions and Create-Printer-Subscriptions operation return it. They return this status code only when the Printer creates zero Subscription Objects.

此状态代码与“成功确定忽略订阅”相同,只是只有“创建作业订阅”和“创建打印机订阅”操作返回此状态代码。只有当打印机创建零订阅对象时,它们才会返回此状态代码。

13. Status Codes in Subscription Attributes Groups
13. 订阅属性组中的状态代码

This section contains values of the "notify-status-code" (type2 enum) attribute that the Printer returns in a Subscription Attributes Group in a response when the corresponding Subscription Object:

本节包含“通知状态代码”(type2 enum)属性的值,当相应的订阅对象:

1. is not created or

1. 未创建或

2. is created and some of the client-supplied attributes are not supported.

2. 已创建,但不支持客户端提供的某些属性。

The following sections are ordered in decreasing order of importance of the status-codes.

以下各节按状态代码重要性的降序排列。

13.1. client-error-uri-scheme-not-supported (0x040C)
13.1. 不支持客户端错误uri方案(0x040C)

This status code is defined in [RFC2911]. This document extends its meaning and allows it to be in a Subscription Attributes Group of a response.

此状态代码在[RFC2911]中定义。本文档扩展了它的含义,并允许它位于响应的订阅属性组中。

The scheme of the client-supplied URI in a "notify-recipient-uri" Subscription Template Attribute in a Subscription Creation Operation is not supported. See section 5.3.1.

不支持订阅创建操作中“通知收件人URI”订阅模板属性中客户端提供的URI的方案。见第5.3.1节。

13.2. client-error-attributes-or-values-not-supported (0x040B)
13.2. 不支持客户端错误属性或值(0x040B)

This status code is defined in [RFC2911]. This document extends its meaning and allows it to be in a Subscription Attributes Group of a response.

此状态代码在[RFC2911]中定义。本文档扩展了它的含义,并允许它位于响应的订阅属性组中。

The method of the client-supplied keyword in a "notify-pull-method" Subscription Template Attribute in a Subscription Creation Operation is not supported. See section 5.3.2.

不支持订阅创建操作中“notify pull method”订阅模板属性中客户端提供的关键字的方法。见第5.3.2节。

13.3. client-error-too-many-subscriptions (0x0415)
13.3. 客户端错误订阅过多(0x0415)

The number of Subscription Objects supported by the Printer would be exceeded if this Subscription Object were created (see section 5.2).

如果创建了此订阅对象,则打印机支持的订阅对象数将被超过(请参阅第5.2节)。

13.4. successful-ok-too-many-events (0x0005)
13.4. 成功确定太多事件(0x0005)

The client supplied more Events in the "notify-events" operation attribute of a Subscription Creation Operation than the Printer supports, as indicated in its "notify-max-events-supported" Printer attribute (see section 5.3.3).

客户端在订阅创建操作的“notify Events”操作属性中提供的事件多于打印机支持的事件,如其“notify max Events supported”打印机属性所示(请参阅第5.3.3节)。

13.5. successful-ok-ignored-or-substituted-attributes (0x0001)
13.5. 成功确定忽略或替换的属性(0x0001)

This status code is defined in [RFC2911]. This document extends its meaning to include unsupported Subscription Template Attributes and it can appear in a Subscription Attributes Group.

此状态代码在[RFC2911]中定义。此文档扩展了其含义,包括不受支持的订阅模板属性,并且可以显示在订阅属性组中。

14. Encodings of Additional Attribute Tags
14. 附加属性标记的编码

This section assigns values to two attributes tags as extensions to the encoding defined in [RFC2910]).

本节将值分配给两个属性标记,作为[RFC2910]中定义的编码的扩展。

The "subscription-attributes-tag" delimits Subscription Template Attributes Groups in requests and Subscription Attributes Groups in responses.

“subscription attributes tag”在请求中定义订阅模板属性组,在响应中定义订阅属性组。

The "event-notification-attributes-tag" delimits Event Notifications in Delivery Methods that use an IPP-like encoding.

“event notification attributes标记”在使用类似IPP编码的传递方法中定义事件通知。

The following table specifies the values for the delimiter tags:

下表指定了分隔符标记的值:

Tag Value (Hex) Meaning

标记值(十六进制)含义

0x06 "subscription-attributes-tag" 0x07 "event-notification-attributes-tag"

0x06“订阅属性标记”0x07“事件通知属性标记”

15. Conformance Requirements
15. 一致性要求

It is OPTIONAL for IPP clients and Printers to implement this Event Notification specification.

IPP客户端和打印机实现此事件通知规范是可选的。

15.1. Conformance requirements for clients
15.1. 客户的合规性要求

If this Event Notification specification is implemented by a client, the client MUST support the 'ippget' Pull Delivery Method and meet the conformance requirements as defined in [RFC3996] for clients. A client MAY support additional Delivery Methods.

如果此事件通知规范由客户端实施,客户端必须支持“ippget”拉式交付方法,并满足[RFC3996]中为客户端定义的一致性要求。客户机可能支持其他交付方法。

15.2. Conformance requirements for Printers
15.2. 打印机的一致性要求

If this Event Notification specification is implemented by a Printer, the Printer MUST:

如果此事件通知规范由打印机实现,则打印机必须:

- meet the Conformance Requirements detailed in section 5 of [RFC2911].

- 满足[RFC2911]第5节中详述的一致性要求。

- support the Subscription Template Attributes Group in requests and the Subscription Attributes Group in responses.

- 在请求中支持订阅模板属性组,在响应中支持订阅属性组。

- support all of the following attributes:

- 支持以下所有属性:

a. REQUIRED Subscription Object attributes in section 5. b. REQUIRED Printer Description object attributes in section 6. c. REQUIRED attributes in Event Notification content in section 8.

a. 第5节中要求的订阅对象属性。B第6节中要求的打印机描述对象属性。C第8节事件通知内容中的必需属性。

- support the 'ippget' Pull Delivery Method and meet the conformance requirements as defined in [RFC3996] for Printers. The Printer MAY support additional Push and Pull Delivery Methods.

- 支持“ippget”拉送方式,并满足[RFC3996]中定义的打印机一致性要求。打印机可能支持其他推送和拉送方式。

- deliver Event Notifications that conform to the requirements of section 9 and the requirements of the Delivery Method Document for each supported Delivery Method (the conformance requirements for Delivery Method Documents is specified in section 10).

- 针对每个支持的交付方法,交付符合第9节要求和交付方法文件要求的事件通知(第10节规定了交付方法文件的一致性要求)。

- for all of the Job Creation Operations that the Printer supports, MUST support the REQUIRED extensions for notification defined in section 11.1.3.

- 对于打印机支持的所有作业创建操作,必须支持第11.1.3节中定义的通知所需的扩展。

- meet the conformance requirements for operations as described in Table 16 and meet the requirements for Printers as specified in the indicated sub-sections of section 11:

- 满足表16所述操作的一致性要求,并满足第11节所示小节中规定的打印机要求:

Table 16 - Printer Conformance Requirements for Operations

表16-操作的打印机一致性要求

Operation Printer Conformance Requirements

操作打印机一致性要求

Create-Printer-Subscriptions (section 11.1.2) REQUIRED Create-Job-Subscriptions (section 11.1.1) OPTIONAL Get-Subscription-Attributes (section 11.2.3) REQUIRED Get-Subscriptions (section 11.2.5) REQUIRED Renew-Subscription (section 11.2.6) REQUIRED Cancel-Subscription (section 11.2.7) REQUIRED

创建打印机订阅(第11.1.2节)必需创建作业订阅(第11.1.1节)可选获取订阅属性(第11.2.3节)必需获取订阅(第11.2.5节)必需续订订阅(第11.2.6节)必需取消订阅(第11.2.7节)必需

16. Model for Notification with Cascading Printers (Informative)
16. 带有级联打印机的通知模型(信息型)

With this model (see Figure 2 below), there is an intervening Print server between the human user and the output-device. So the system effectively has two Printer objects. There are two cases to consider.

在这个模型中(参见下面的图2),在人类用户和输出设备之间有一个中间的打印服务器。因此,系统实际上有两个打印机对象。有两种情况需要考虑。

1. When the Printer 1 (in the server) generates Events, the system behaves like the client and Printer in Figure 1. In this case, Printer 1 delivers Event Notifications that are shown as Event Notifications (A) of Figure 2.

1. 当打印机1(在服务器中)生成事件时,系统的行为与图1中的客户机和打印机类似。在这种情况下,打印机1发送的事件通知如图2的事件通知(A)所示。

2. When the Printer 2 (in the output-device) generates Events, there are two possible system configurations:

2. 当打印机2(在输出设备中)生成事件时,有两种可能的系统配置:

a) Printer 1 forwards the client-supplied Subscription Creation Operations to the downstream Printer 2 and lets Printer 2 deliver the Event Notifications directly to the Notification Recipients supplied by the Client (Event Notifications(C) in the diagram).

a) 打印机1将客户端提供的订阅创建操作转发给下游打印机2,并允许打印机2将事件通知直接传递给客户端提供的通知收件人(图中的事件通知(C))。

b) Printer 1 performs the client-supplied Subscription Creation Operations and also forwards the Subscription Creation Operations to Printer 2 with the Notification Recipient changed to be the Printer 1. When an Event occurs in Printer 2, Printer 2 delivers the Event Notification (B) to Notification Recipient of Printer 1, which relays the received Event Notification (B) to the client-supplied Notification Recipient (as Event Notifications(A) in the diagram). Note, when a client performs a Subscription Creation Operation, Printer 1 need not forward the Subscription Creation Operation to Printer 2 if it would create a duplicate Subscription Object on Printer 2.

b) 打印机1执行客户端提供的订阅创建操作,并将订阅创建操作转发给打印机2,通知收件人更改为打印机1。当打印机2中发生事件时,打印机2将事件通知(B)传递给打印机1的通知接收者,后者将接收到的事件通知(B)转发给客户端提供的通知接收者(如图中的事件通知(A))。注意,当客户端执行订阅创建操作时,如果打印机1将在打印机2上创建重复的订阅对象,则不需要将订阅创建操作转发给打印机2。

Note: when Printer 1 is forwarding Subscription Creation Operations to Printer 2, it may request Printer 2 to create additional Subscription Objects (called "piggy-backing"). Piggy-backing is useful when:

注意:当打印机1将订阅创建操作转发给打印机2时,它可能会请求打印机2创建其他订阅对象(称为“piggy backing”)。在以下情况下,Piggy backing很有用:

- Device A is configured to accept (IPP or non-IPP) requests from other servers.

- 设备A配置为接受来自其他服务器的(IPP或非IPP)请求。

- Server S wants to receive Job Events that the client didn't request and Server S wants these Events for jobs it submits and not for other jobs.

- 服务器S希望接收客户端未请求的作业事件,服务器S希望为其提交的作业接收这些事件,而不是为其他作业接收这些事件。

                              server S                       device A
                           +------------+                 +------------+
                           |            |                 |            |
   +--------+ Subscription | ###########|                 | ###########|
   | client |--Creation ----># Printer #|  Subscription   | # Printer #|
   +--------+  Operation   | # Object 1#|---Creation------|># Object 2#|
                           | ###|#######|   Operation     | ####|#|####|
                           +----|---^---+                 +-----|-|----+
   +--------+     Event         |   |                           | |
   |Notific-|<-Notifications(A)-+   +-- Event Notifications(B)--+ |
   |ation Re|<-------------Event Notifications(C)-----------------+
   |cipient |
   +--------+
        
                              server S                       device A
                           +------------+                 +------------+
                           |            |                 |            |
   +--------+ Subscription | ###########|                 | ###########|
   | client |--Creation ----># Printer #|  Subscription   | # Printer #|
   +--------+  Operation   | # Object 1#|---Creation------|># Object 2#|
                           | ###|#######|   Operation     | ####|#|####|
                           +----|---^---+                 +-----|-|----+
   +--------+     Event         |   |                           | |
   |Notific-|<-Notifications(A)-+   +-- Event Notifications(B)--+ |
   |ation Re|<-------------Event Notifications(C)-----------------+
   |cipient |
   +--------+
        

Figure 2 - Model for Notification with Cascading Printers

图2-带有级联打印机的通知模型

17. Distributed Model for Notification (Informative)
17. 分布式通知模型(信息型)

A Printer implementation could use some other remote notification server to provide some or most of the service. For example, the remote notification server could deliver Event Notifications using Delivery Methods that are not directly supported by the output device or Printer object. Or, the remote notification server could store Subscription Objects (passed to it from the output device in response to Subscription Creation requests), accept Events, format the Event Notification in the natural language of the Notification Recipient, and deliver the Event Notifications to the Notification Recipient(s).

打印机实现可以使用其他远程通知服务器来提供部分或大部分服务。例如,远程通知服务器可以使用输出设备或打印机对象不直接支持的传递方法传递事件通知。或者,远程通知服务器可以存储订阅对象(在响应订阅创建请求时从输出设备传递给它),接受事件,以通知收件人的自然语言格式化事件通知,并将事件通知传递给通知收件人。

Figure 3 shows this partitioning. The interface between the output device (or Printer object) and the remote notification server is outside the scope of this document and is intended to be transparent to the client and this document.

图3显示了这个分区。输出设备(或打印机对象)与远程通知服务器之间的接口不在本文档的范围内,旨在对客户端和本文档透明。

                                            ***********************
                                            *
                                            * Printer in combination
                                            * with the distributed
                                            * Notification Server)
                                            *
                                            * output device or server
                                            * +---------------+
      PDA, desktop, or server               * +  ###########  +
           +--------+                       * |  #         #  |
           | client |---IPP Subscription--------># Printer #  |
           +--------+   Creation operation  * |  # Object  #  |
                                            * |  #####|#####  |
                                            * +-------|-------+
                                            *         | Subscriptions
                                            *         | OR Event
        +------------+                      *         | Notifications
        |Notification|   IPP-defined        *  +------v--------+
        |Recipient   |<--Event Notifications---| Notification  |
        +------------+                      *  | Server        |
                                            *  +---------------+
                                            *
                                            *************************
   *** = Implementation configuration opaque boundary
        
                                            ***********************
                                            *
                                            * Printer in combination
                                            * with the distributed
                                            * Notification Server)
                                            *
                                            * output device or server
                                            * +---------------+
      PDA, desktop, or server               * +  ###########  +
           +--------+                       * |  #         #  |
           | client |---IPP Subscription--------># Printer #  |
           +--------+   Creation operation  * |  # Object  #  |
                                            * |  #####|#####  |
                                            * +-------|-------+
                                            *         | Subscriptions
                                            *         | OR Event
        +------------+                      *         | Notifications
        |Notification|   IPP-defined        *  +------v--------+
        |Recipient   |<--Event Notifications---| Notification  |
        +------------+                      *  | Server        |
                                            *  +---------------+
                                            *
                                            *************************
   *** = Implementation configuration opaque boundary
        

Figure 3 - Opaque Use of a Notification Server Transparent to the Client

图3-对客户端透明的通知服务器的不透明使用

18. Extended Notification Recipient (Informative)
18. 扩展通知收件人(资料性)

The model allows for an extended Notification Recipient that is itself a notification server that forwards each Event Notification to another recipient (called the Ultimate Notification Recipient in this section). The Delivery Method to the Ultimate Recipient is probably different from the Delivery Method used by the Printer to the extended Notification Recipient.

该模型允许一个扩展通知接收者,它本身就是一个通知服务器,将每个事件通知转发给另一个接收者(在本节中称为最终通知接收者)。发送给最终收件人的方法可能不同于打印机发送给扩展通知收件人的方法。

This extended Notification Recipient is transparent to the Printer but not to the client.

此扩展通知收件人对打印机透明,但对客户端不透明。

When a client performs a Subscription Creation Operation, it specifies the extended Notification Recipient as it would any Notification Recipient. In addition, the client specifies the Ultimate Notification Recipient in the Subscription Creation Operation in a manner specified by the extended Notification Recipient. Typically, it is either some bytes in the value of "notify-user-data" or some additional parameter in the value of "notify-recipient-uri". The client also subscribes directly with the

当客户端执行订阅创建操作时,它会像指定任何通知收件人一样指定扩展通知收件人。此外,客户端将以扩展通知收件人指定的方式在订阅创建操作中指定最终通知收件人。通常,它是“notify user data”值中的一些字节,或者是“notify recipient uri”值中的一些附加参数。客户端还直接向

extended Notification Recipient (by means outside this document), since it is a notification server in its own right.

扩展通知收件人(通过本文档之外的方式),因为它本身就是一个通知服务器。

The IPP Printer treats the extended Notification Recipient like any other Notification Recipient and the IPP Printer is not aware of the forwarding. The Delivery Method that the extended Notification Recipient uses for delivering the Event Notification to the Ultimate Notification Recipient is beyond the scope of this document and is transparent to the IPP Printer.

IPP打印机将扩展通知收件人视为任何其他通知收件人,并且IPP打印机不知道转发。扩展通知收件人用于向最终通知收件人传递事件通知的传递方法超出了本文档的范围,并且对IPP打印机是透明的。

Examples of this extended Notification Recipient are paging, immediate messaging services, general notification services, and NOS vendors' infrastructure. Figure 4 shows this approach.

此通知基础架构的示例有:扩展的寻呼服务、通用的寻呼服务和即时通知服务。图4显示了这种方法。

      PDA, desktop, or server                    server or output device
                                                      +---------------+
          +--------+                                  |  ###########  |
          | client |---Subscription Creation -----------># Printer #  |
          +--------+       Operation                  |  # Object  #  |
                                                      |  #####|#####  |
   +------------+     +------------+   IPP-defined    +-------|-------+
   |Ultimate    | any |Notification|<--Event Notifications----+
   |Notification|<----|Recipient   |
   |Recipient   |     +------------+
   +------------+     (Notification Server)
        
      PDA, desktop, or server                    server or output device
                                                      +---------------+
          +--------+                                  |  ###########  |
          | client |---Subscription Creation -----------># Printer #  |
          +--------+       Operation                  |  # Object  #  |
                                                      |  #####|#####  |
   +------------+     +------------+   IPP-defined    +-------|-------+
   |Ultimate    | any |Notification|<--Event Notifications----+
   |Notification|<----|Recipient   |
   |Recipient   |     +------------+
   +------------+     (Notification Server)
        

Figure 4 - Use of an Extended Notification Recipient transparent to the Printer

图4-使用对打印机透明的扩展通知收件人

19. Object Model for Notification (Normative)
19. 通知的对象模型(标准)

This section describes the Notification object model that adds a Subscription Object which together with the Job and Printer object provide the complete Notification semantics.

本节介绍通知对象模型,该模型添加了订阅对象,该订阅对象与作业和打印机对象一起提供完整的通知语义。

The object relationships can be seen pictorially as:

对象关系可以从图形上看为:

   Subscription Objects (Per-Printer Subscriptions)     Printer object
   +----+                                               +------------+
   | s1 |<--------------------------------------------->|            |
   +----++                                              |            |
    | s2 |<-------------------------------------------->|     p1     |
    +----++                                             |            |
     | s3 |<------------------------------------------->|            |
     +----+                                             +------------+
                    Job objects
                    +---------+
                    |         |
     +----+         |   j1    |
     | s4 |<------->|         |
     +----+         |         |
                    |         |    s4 is a Per-Job Subscription Object
                    ++--------++
                     |         |
       +----+        |   j2    |
       | s5 |<------>|         |
       +----++       |         |
        | s6 |<----->|         |    s5 and s6 are Per-Job Subscription
        +----+       ++--------++                  Objects
                      |         |
                      |   j3    |
                      |         |
                      |         |         <----> indicates association
                      +---------+
        
   Subscription Objects (Per-Printer Subscriptions)     Printer object
   +----+                                               +------------+
   | s1 |<--------------------------------------------->|            |
   +----++                                              |            |
    | s2 |<-------------------------------------------->|     p1     |
    +----++                                             |            |
     | s3 |<------------------------------------------->|            |
     +----+                                             +------------+
                    Job objects
                    +---------+
                    |         |
     +----+         |   j1    |
     | s4 |<------->|         |
     +----+         |         |
                    |         |    s4 is a Per-Job Subscription Object
                    ++--------++
                     |         |
       +----+        |   j2    |
       | s5 |<------>|         |
       +----++       |         |
        | s6 |<----->|         |    s5 and s6 are Per-Job Subscription
        +----+       ++--------++                  Objects
                      |         |
                      |   j3    |
                      |         |
                      |         |         <----> indicates association
                      +---------+
        

Figure 5 - Object Model for Notification

图5-通知的对象模型

s1, s2, and s3 are Per-Printer Subscription Objects and can identify Printer and/or Job Events.

s1、s2和s3是每打印机订阅对象,可以标识打印机和/或作业事件。

s4, s5, and s6 are Per-Job Subscription Objects and can identify Printer and/or Job Events.

s4、s5和s6是每作业订阅对象,可以识别打印机和/或作业事件。

19.1. Object relationships
19.1. 对象关系

This sub-section defines the object relationships between the Printer, Job, and Subscription Objects by example. Whether Per-Printer Subscription Objects are actually contained in a Printer object or are just bi-directionally associated with them in some way is IMPLEMENTATION DEPENDENT and is transparent to the client. Similarly, whether Per-Job Subscription Objects are actually

本小节通过示例定义打印机、作业和订阅对象之间的对象关系。每打印机订阅对象是否实际包含在打印机对象中,或者只是以某种方式与它们双向关联,取决于实现,并且对客户端是透明的。类似地,每个作业订阅对象是否实际

contained in a Job object or are just bi-directionally associated with them in some way is IMPLEMENTATION DEPENDENT and is transparent to the client. The object relationships are defined as follows:

包含在作业对象中或仅以某种方式与它们双向关联的对象依赖于实现,并且对客户端是透明的。对象关系定义如下:

19.2. Printer Object and Per-Printer Subscription Objects
19.2. 打印机对象和每打印机订阅对象

1. The Printer object contains (is associated with) zero or more Per-Printer Subscription Objects (p1 contains s1-s3 Per-Printer Subscription Objects).

1. 打印机对象包含(关联)零个或多个每打印机订阅对象(p1包含s1-s3每打印机订阅对象)。

2. Each Per-Printer Subscription Object (s1, s2, and s3) is contained in (or is associated with) exactly one Printer object (p1).

2. 每个每打印机订阅对象(s1、s2和s3)仅包含在一个打印机对象(p1)中(或与之关联)。

19.3. Job Object and Per-Job Subscription Objects
19.3. 作业对象和每作业订阅对象

1. A Job object (j1, j2, j3) is associated with zero or more Per-Job Subscription Objects (s4-s6). Job j1 is associated with Per-Job Subscription Object s4, Job j2 is associated with Per-Job Subscription Objects s5 and s6, and Job j3 is not associated with any Per-Job Subscription Object.

1. 作业对象(j1、j2、j3)与零个或多个每作业订阅对象(s4-s6)关联。作业j1与每个作业订阅对象s4关联,作业j2与每个作业订阅对象s5和s6关联,作业j3与任何每个作业订阅对象都不关联。

2. Each Per-Job Subscription Object is associated with exactly one Job object.

2. 每个每个作业订阅对象仅与一个作业对象关联。

20. Per-Job versus Per-Printer Subscription Objects (Normative)
20. 每作业与每打印机订阅对象(标准)

Per-Job and Per-Printer Subscription Objects are quite similar. Either type of Subscription Object can subscribe to Job Events, Printer Events, or both. Both types of Subscription Objects can be queried using the Get-Subscriptions and Get-Subscription-Attributes operations and canceled using the Cancel-Subscription operation. Both types of Subscription Objects create Subscription Objects which have the same Subscription Object attributes defined. However, there are some semantic differences between Per-Job Subscription Objects and Per-Printer Subscription Objects. A Per-Job Subscription Object is established by the client when submitting a job and after creating the job using the Create-Job-Subscriptions operation by specifying the "job-id" of the Job with the "notify-job-id" attribute. A Per-Printer Subscription Object is established between a client and a Printer using the Create-Printer-Subscriptions operation. Some specific differences are:

每作业和每打印机订阅对象非常相似。任一类型的订阅对象都可以订阅作业事件、打印机事件或两者。这两种类型的订阅对象都可以使用“获取订阅”和“获取订阅属性”操作查询,也可以使用“取消订阅”操作取消。这两种类型的订阅对象都会创建定义了相同订阅对象属性的订阅对象。但是,每作业订阅对象和每打印机订阅对象之间存在一些语义差异。客户端在提交作业时以及使用“创建作业订阅”操作创建作业后,通过使用“通知作业id”属性指定作业的“作业id”,建立每个作业订阅对象。使用“创建打印机订阅”操作在客户端和打印机之间建立每打印机订阅对象。一些具体区别是:

1. A client usually creates one or more Per-Job Subscription Objects as part of the Job Creation operations (Create-Job, Print-Job, and Print-URI), rather than using the OPTIONAL Create-Job-Subscriptions operation, especially since Printer implementations NEED NOT support the Create-Job-Subscriptions operation, since it is OPTIONAL.

1. 客户端通常创建一个或多个每作业订阅对象作为作业创建操作(创建作业、打印作业和打印URI)的一部分,而不是使用可选的创建作业订阅操作,特别是因为打印机实现不需要支持创建作业订阅操作,因为它是可选的。

2. For Per-Job Subscription Objects, the Subscription Object is only valid while the job is "not-complete" (see sections 5.4.3) while for the Per-Printer Subscription Objects, the Subscription Object is valid until the time (in seconds) that the Printer returned in the "notify-lease-expiration-time" operation attribute.

2. 对于每作业订阅对象,订阅对象仅在作业“未完成”(参见第5.4.3节)时有效,而对于每打印机订阅对象,订阅对象在打印机在“通知租约到期时间”操作属性中返回的时间(秒)之前有效。

3. Job Events in a Per-Job Subscription Object apply only to "one job" (the Job created by the Job Creation operation or references by the Create-Job-Subscriptions operation) while Job Events in a Per-Printer Subscription Object apply to ALL jobs contained in the IPP Printer.

3. 每作业订阅对象中的作业事件仅适用于“一个作业”(由作业创建操作创建的作业或由创建作业订阅操作创建的引用),而每打印机订阅对象中的作业事件适用于IPP打印机中包含的所有作业。

21. Normative References
21. 规范性引用文件

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119 , March 1997.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[RFC2396] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifiers (URI): Generic Syntax", RFC 2396, August 1998.

[RFC2396]Berners Lee,T.,Fielding,R.,和L.Masinter,“统一资源标识符(URI):通用语法”,RFC 2396,1998年8月。

[RFC2717] Petke, R. and I. King, "Registration Procedures for URL Scheme Names", RFC 2717, November 1999.

[RFC2717]Petke,R.和I.King,“URL方案名称的注册程序”,RFC 2717,1999年11月。

[RFC2910] Herriot, R., Butler, S., Moore, P., and R. Turner, "Internet Printing Protocol/1.1: Encoding and Transport", RFC 2910, September 2000.

[RFC2910]Herriot,R.,Butler,S.,Moore,P.,和R.Turner,“互联网打印协议/1.1:编码和传输”,RFC 29102000年9月。

[RFC2911] deBry, R., Hastings, T., Herriot, R., Isaacson, S., and P. Powell, "Internet Printing Protocol/1.1: Model and Semantics", RFC 2911, September 2000.

[RFC2911]deBry,R.,Hastings,T.,Herriot,R.,Isaacson,S.,和P.Powell,“互联网打印协议/1.1:模型和语义”,RFC 29112000年9月。

[RFC3381] Hastings, T., Lewis, H., and R. Bergman, "IPP: Job Progress Attributes", RFC 3381, September 2002.

[RFC3381]黑斯廷斯,T.,刘易斯,H.,和R.伯格曼,“IPP:工作进度属性”,RFC 33812002年9月。

[RFC3996] Herriot, R., Hastings, T., and H. Lewis, "Internet Printing Protocol (IPP): The 'ippget' Delivery Method for Event Notifications", RFC 3996, March 2005.

[RFC3996]Herriot,R.,Hastings,T.,和H.Lewis,“互联网打印协议(IPP):事件通知的“ippget”交付方法”,RFC 39962005年3月。

22. Informative References
22. 资料性引用

[IANA-CON] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.

[IANA-CON]Narten,T.和H.Alvestrand,“在RFCs中编写IANA注意事项部分的指南”,BCP 26,RFC 2434,1998年10月。

[RFC2565] Herriot, R., Butler, S., Moore, P., and R. Turner, "Internet Printing Protocol/1.0: Encoding and Transport", RFC 2565, April 1999.

[RFC2565]Herriot,R.,Butler,S.,Moore,P.,和R.Turner,“互联网打印协议/1.0:编码和传输”,RFC 25651999年4月。

[RFC2566] deBry, R., Hastings, T., Herriot, R., Isaacson, S., and P. Powell, "Internet Printing Protocol/1.0: Model and Semantics", RFC 2566, April 1999.

[RFC2566]deBry,R.,Hastings,T.,Herriot,R.,Isaacson,S.,和P.Powell,“互联网打印协议/1.0:模型和语义”,RFC 2566,1999年4月。

[RFC2567] Wright, D., "Design Goals for an Internet Printing Protocol", RFC 2567, April 1999.

[RFC2567]Wright,D.,“互联网打印协议的设计目标”,RFC2567,1999年4月。

[RFC2568] Zilles, S., "Rationale for the Structure and Model and Protocol for the Internet Printing Protocol", RFC 2568, April 1999.

[RFC2568]Zilles,S.“互联网打印协议的结构、模型和协议的基本原理”,RFC 2568,1999年4月。

[RFC2569] Herriot, R., Hastings, T., Jacobs, N., and J. Martin, "Mapping between LPD and IPP Protocols", RFC 2569, April 1999.

[RFC2569]Herriot,R.,Hastings,T.,Jacobs,N.,和J.Martin,“LPD和IPP协议之间的映射”,RFC 2569,1999年4月。

[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol - HTTP/1.1", RFC 2616, June 1999.

[RFC2616]菲尔丁,R.,盖蒂斯,J.,莫卧儿,J.,弗莱斯蒂克,H.,马斯特,L.,利奇,P.,和T.伯纳斯李,“超文本传输协议-HTTP/1.1”,RFC 2616,1999年6月。

[RFC3196] Hastings, T., Manros, C., Zehler, P., Kugler, C., and H. Holst, "Internet Printing Protocol/1.1: Implementer's Guide", RFC 3196, November 2001.

[RFC3196]黑斯廷斯,T.,曼罗斯,C.,泽勒,P.,库格勒,C.,和H.霍尔斯特,“互联网打印协议/1.1:实施者指南”,RFC3196,2001年11月。

[RFC3997] Hastings, T., Editor, deBry, R., and H. Lewis, "Internet Printing Protocol (IPP): Requirements for IPP Notifications", RFC 3997, March 2005.

[RFC3997]黑斯廷斯,T.,编辑,deBry,R.,和H.Lewis,“互联网打印协议(IPP):IPP通知的要求”,RFC 39972005年3月。

23. IANA Considerations
23. IANA考虑

This section contains the registration information that IANA added to the IPP Registry according to the procedures defined in RFC 2911 [RFC2911] section 6 to cover the definitions in this document. In addition, this section defines how Events and Delivery Methods will be registered when they are defined in other documents. The resulting registrations have been published in the http://www.iana.org/assignments/ipp-registrations registry.

本节包含IANA根据RFC 2911[RFC2911]第6节中定义的程序添加到IPP注册中心的注册信息,以涵盖本文件中的定义。此外,本节还定义了在其他文档中定义事件和传递方法时如何注册它们。由此产生的注册已在http://www.iana.org/assignments/ipp-registrations 登记处。

23.1. Attribute Registrations
23.1. 属性注册

The following table lists all the attributes defined in this document. These have been registered according to the procedures in RFC 2911 [RFC2911] section 6.2.

下表列出了本文档中定义的所有属性。已根据RFC 2911[RFC2911]第6.2节中的程序进行了登记。

   Subscription Template attributes:                 Reference  Section
   ---------------------------------                 ---------  -------
   notify-attributes (1setOf type2 keyword)          [RFC3995]  5.3.4
   notify-attributes-supported (1setOf type2 keyword)
                                                     [RFC3995]  5.3.4.1
   notify-charset (charset)                          [RFC3995]  5.3.6
   notify-events (1setOf type2 keyword)              [RFC3995]  5.3.3
   notify-events-default (1setOf type2 keyword)      [RFC3995]  5.3.3.1
   notify-events-supported (1setOf type2 keyword)    [RFC3995]  5.3.3.2
   notify-lease-duration (integer(0:67108863))       [RFC3995]  5.3.8
   notify-lease-duration-default (integer(0:67108863))
                                                     [RFC3995]  5.3.8.1
   notify-lease-duration-supported (1setOf (integer(0: 67108863) |
          rangeOfInteger(0:67108863)))               [RFC3995]  5.3.8.2
   notify-max-events-supported (integer(2:MAX))      [RFC3995]  5.3.3.3
   notify-natural-language (naturalLanguage)         [RFC3995]  5.3.7
   notify-pull-method (type2 keyword)                [RFC3995]  5.3.2
   notify-pull-method-supported (1setOf type2 keyword)
                                                     [RFC3995]  5.3.2.1
   notify-recipient-uri (uri)                        [RFC3995]  5.3.1
   notify-schemes-supported  (1setOf uriScheme)      [RFC3995]  5.3.1.1
   notify-time-interval (integer(0:MAX))             [RFC3995]  5.3.9
   notify-user-data (octetString(63))                [RFC3995]  5.3.5
        
   Subscription Template attributes:                 Reference  Section
   ---------------------------------                 ---------  -------
   notify-attributes (1setOf type2 keyword)          [RFC3995]  5.3.4
   notify-attributes-supported (1setOf type2 keyword)
                                                     [RFC3995]  5.3.4.1
   notify-charset (charset)                          [RFC3995]  5.3.6
   notify-events (1setOf type2 keyword)              [RFC3995]  5.3.3
   notify-events-default (1setOf type2 keyword)      [RFC3995]  5.3.3.1
   notify-events-supported (1setOf type2 keyword)    [RFC3995]  5.3.3.2
   notify-lease-duration (integer(0:67108863))       [RFC3995]  5.3.8
   notify-lease-duration-default (integer(0:67108863))
                                                     [RFC3995]  5.3.8.1
   notify-lease-duration-supported (1setOf (integer(0: 67108863) |
          rangeOfInteger(0:67108863)))               [RFC3995]  5.3.8.2
   notify-max-events-supported (integer(2:MAX))      [RFC3995]  5.3.3.3
   notify-natural-language (naturalLanguage)         [RFC3995]  5.3.7
   notify-pull-method (type2 keyword)                [RFC3995]  5.3.2
   notify-pull-method-supported (1setOf type2 keyword)
                                                     [RFC3995]  5.3.2.1
   notify-recipient-uri (uri)                        [RFC3995]  5.3.1
   notify-schemes-supported  (1setOf uriScheme)      [RFC3995]  5.3.1.1
   notify-time-interval (integer(0:MAX))             [RFC3995]  5.3.9
   notify-user-data (octetString(63))                [RFC3995]  5.3.5
        
   Subscription Description Attributes:
   notify-job-id (integer(1:MAX))                    [RFC3995]  5.4.6
   notify-lease-expiration-time (integer(0:MAX))     [RFC3995]  5.4.3
   notify-printer-up-time (integer(1:MAX))           [RFC3995]  5.4.4
   notify-printer-uri (uri)                          [RFC3995]  5.4.5
   notify-sequence-number (integer (0:MAX))          [RFC3995]  5.4.2
   notify-subscriber-user-name (name(MAX))           [RFC3995]  5.4.7
   notify-subscription-id  (integer (1:MAX))         [RFC3995]  5.4.1
        
   Subscription Description Attributes:
   notify-job-id (integer(1:MAX))                    [RFC3995]  5.4.6
   notify-lease-expiration-time (integer(0:MAX))     [RFC3995]  5.4.3
   notify-printer-up-time (integer(1:MAX))           [RFC3995]  5.4.4
   notify-printer-uri (uri)                          [RFC3995]  5.4.5
   notify-sequence-number (integer (0:MAX))          [RFC3995]  5.4.2
   notify-subscriber-user-name (name(MAX))           [RFC3995]  5.4.7
   notify-subscription-id  (integer (1:MAX))         [RFC3995]  5.4.1
        

Printer Description Attributes: printer-state-change-date-time (dateTime) [RFC3995] 6.2 printer-state-change-time (integer(1:MAX)) [RFC3995] 6.1

打印机描述属性:打印机状态更改日期时间(dateTime)[RFC3995]6.2打印机状态更改时间(整数(1:MAX))[RFC3995]6.1

Attributes Only in Event Notifications notify-subscribed-event (type2 keyword) [RFC3995] 8.1 notify-text (text(MAX)) [RFC3995] 8.2

仅事件通知中的属性通知订阅的事件(type2关键字)[RFC3995]8.1通知文本(文本(最大值))[RFC3995]8.2

23.2. Additional Enum Attribute Value Registrations within the IPP registry

23.2. IPP注册表中的其他枚举属性值注册

The following table lists all the new enum attribute values defined in this document. These have been registered within the IPP registry according to the procedures in RFC 2911 [RFC2911] section 6.1.

下表列出了此文档中定义的所有新枚举属性值。已根据RFC 2911[RFC2911]第6.1节中的程序在IPP注册中心注册。

   Attribute
     Value      Name                                 Reference   Section
     ------     -----------------------------        ---------   -------
   operations-supported (1setOf type2 enum)          [RFC2911]   4.4.15
     0x0016     Create-Printer-Subscriptions         [RFC3995]   7.1
     0x0017     Create-Job-Subscriptions             [RFC3995]   7.1
     0x0018     Get-Subscription-Attributes          [RFC3995]   7.1
     0x0019     Get-Subscriptions                    [RFC3995]   7.1
     0x001A     Renew-Subscription                   [RFC3995]   7.1
     0x001B     Cancel-Subscription                  [RFC3995]   7.1
        
   Attribute
     Value      Name                                 Reference   Section
     ------     -----------------------------        ---------   -------
   operations-supported (1setOf type2 enum)          [RFC2911]   4.4.15
     0x0016     Create-Printer-Subscriptions         [RFC3995]   7.1
     0x0017     Create-Job-Subscriptions             [RFC3995]   7.1
     0x0018     Get-Subscription-Attributes          [RFC3995]   7.1
     0x0019     Get-Subscriptions                    [RFC3995]   7.1
     0x001A     Renew-Subscription                   [RFC3995]   7.1
     0x001B     Cancel-Subscription                  [RFC3995]   7.1
        
23.3. Operation Registrations
23.3. 业务登记

The following table lists all of the operations defined in this document. These have been registered according to the procedures in RFC 2911 [RFC2911] section 6.4.

下表列出了本文档中定义的所有操作。已根据RFC 2911[RFC2911]第6.4节中的程序进行了登记。

   Operation Name                                    Reference   Section
   ---------------------------------                 ---------   -------
   Cancel-Subscription                               [RFC3995]   11.2.7
   Create-Job - Extensions                           [RFC3995]   11.1.3
   Create-Job-Subscriptions                          [RFC3995]   11.1.1
   Create-Printer-Subscriptions                      [RFC3995]   11.1.2
   Get-Printer-Attributes - Extensions               [RFC3995]   11.2.3
   Get-Subscription-Attributes                       [RFC3995]   11.2.4
   Get-Subscriptions                                 [RFC3995]   11.2.5
   Print-Job - Extensions                            [RFC3995]   11.1.3
   Print-URI - Extensions                            [RFC3995]   11.1.3
   Renew-Subscription                                [RFC3995]   11.2.6
   Validate-Job Operation - Extensions               [RFC3995]   11.2.2
        
   Operation Name                                    Reference   Section
   ---------------------------------                 ---------   -------
   Cancel-Subscription                               [RFC3995]   11.2.7
   Create-Job - Extensions                           [RFC3995]   11.1.3
   Create-Job-Subscriptions                          [RFC3995]   11.1.1
   Create-Printer-Subscriptions                      [RFC3995]   11.1.2
   Get-Printer-Attributes - Extensions               [RFC3995]   11.2.3
   Get-Subscription-Attributes                       [RFC3995]   11.2.4
   Get-Subscriptions                                 [RFC3995]   11.2.5
   Print-Job - Extensions                            [RFC3995]   11.1.3
   Print-URI - Extensions                            [RFC3995]   11.1.3
   Renew-Subscription                                [RFC3995]   11.2.6
   Validate-Job Operation - Extensions               [RFC3995]   11.2.2
        
23.4. Status code Registrations
23.4. 状态码注册

The following table lists all the status codes defined in this document. These have been registered according to the procedures in RFC 2911 [RFC2911] section 6.6.

下表列出了本文档中定义的所有状态代码。已根据RFC 2911[RFC2911]第6.6节中的程序进行了登记。

   Value    Status Code Name                        Reference  Section
   -----    ----------------------------            ---------  -------
   0x0000:0x00FF - Successful:
   0x0003   successful-ok-ignored-subscriptions     [RFC3995]  12.1
   0x0005   successful-ok-too-many-events           [RFC3995]  13.4
        
   Value    Status Code Name                        Reference  Section
   -----    ----------------------------            ---------  -------
   0x0000:0x00FF - Successful:
   0x0003   successful-ok-ignored-subscriptions     [RFC3995]  12.1
   0x0005   successful-ok-too-many-events           [RFC3995]  13.4
        

0x0400:0x04FF - Client Error: 0x0414 client-error-ignored-all-subscriptions [RFC3995] 12.2 0x0415 client-error-too-many-subscriptions [RFC3995] 13.3

0x0400:0x04FF-客户端错误:0x0414客户端错误忽略所有订阅[RFC3995]12.2 0x0415客户端错误订阅过多[RFC3995]13.3

23.5. Attribute Group tag Registrations
23.5. 属性组标记注册

The following table lists all the attribute group tags defined in this document. These have been registered according to the procedures in RFC 2911 [RFC2911] section 6.5.

下表列出了本文档中定义的所有属性组标记。已根据RFC 2911[RFC2911]第6.5节中的程序进行了登记。

   Value    Attribute Group Tag Name                 Reference  Section
   -----    --------------------------------         --------   -------
   0x06     subscription-attributes-tag              [RFC3995]  14
   0x07     event-notification-attributes-tag        [RFC3995]  14
        
   Value    Attribute Group Tag Name                 Reference  Section
   -----    --------------------------------         --------   -------
   0x06     subscription-attributes-tag              [RFC3995]  14
   0x07     event-notification-attributes-tag        [RFC3995]  14
        
23.6. Registration of Events
23.6. 活动登记

The following table lists all the Events defined in this document as type2 keywords to be used with the "notify-events", "notify-events-default", and "notify-events-supported" Subscription Template attributes (see section 5.3.3)). Rather than creating a separate section in the IPP Registry for Events, these event keywords have been registered according to the procedures of [RFC2911] section 7.1 as additional keyword attribute values for use with the "notify-events" Subscription Template attribute (see section 5.3.3), i.e., registered as keyword values for the "notify-events", "notify-events-default", and "notify-events-supported" attributes:

下表列出了本文档中定义为type2关键字的所有事件,这些关键字将与“notify Events”、“notify Events default”和“notify Events supported”订阅模板属性一起使用(参见第5.3.3节)。根据[RFC2911]第7.1节中的程序,这些事件关键字已注册为附加关键字属性值,以与“通知事件”订阅模板属性一起使用,而不是在IPP注册表中为事件创建单独的部分(参见第5.3.3节),即注册为“notify events”、“notify events default”和“notify events supported”属性:

   Attribute (attribute syntax)
     Value                                          Reference  Section
     ---------------------                          ---------  -------
   notify-events (1setOf type2 keyword)             [RFC3995]  5.3.3
   notify-events-default (1setOf type2 keyword)     [RFC3995]  5.3.3.1
   notify-events-supported (1setOf type2 keyword)   [RFC3995]  5.3.3.2
   notify-subscribed-event (type2 keyword)          [RFC3995]  8.1
     No Events:
       none                                         [RFC3995]  5.3.3.4.1
     Printer Events:
       printer-state-changed                        [RFC3995]  5.3.3.4.2
       printer-restarted                            [RFC3995]  5.3.3.4.2
       printer-shutdown                             [RFC3995]  5.3.3.4.2
       printer-stopped                              [RFC3995]  5.3.3.4.2
        
   Attribute (attribute syntax)
     Value                                          Reference  Section
     ---------------------                          ---------  -------
   notify-events (1setOf type2 keyword)             [RFC3995]  5.3.3
   notify-events-default (1setOf type2 keyword)     [RFC3995]  5.3.3.1
   notify-events-supported (1setOf type2 keyword)   [RFC3995]  5.3.3.2
   notify-subscribed-event (type2 keyword)          [RFC3995]  8.1
     No Events:
       none                                         [RFC3995]  5.3.3.4.1
     Printer Events:
       printer-state-changed                        [RFC3995]  5.3.3.4.2
       printer-restarted                            [RFC3995]  5.3.3.4.2
       printer-shutdown                             [RFC3995]  5.3.3.4.2
       printer-stopped                              [RFC3995]  5.3.3.4.2
        

printer-config-changed [RFC3995] 5.3.3.4.2 printer-media-changed [RFC3995] 5.3.3.4.2 printer-finishings-changed [RFC3995] 5.3.3.4.2 printer-queue-order-changed [RFC3995] 5.3.3.4.2 Job Events: job-state-changed [RFC3995] 5.3.3.4.3 job-created [RFC3995] 5.3.3.4.3 job-completed [RFC3995] 5.3.3.4.3 job-stopped [RFC3995] 5.3.3.4.3 job-config-changed [RFC3995] 5.3.3.4.3 job-progress [RFC3995] 5.3.3.4.3

打印机配置更改[RFC3995]5.3.3.4.2打印机介质更改[RFC3995]5.3.3.4.2打印机完成更改[RFC3995]5.3.3.4.2打印机队列顺序更改[RFC3995]5.3.3.4.2作业事件:作业状态更改[RFC3995]5.3.3.4.3已创建作业[RFC3995]5.3.3.4.3已完成作业[RFC3995]5.3.3.4.3已停止作业[RFC3995]5.3.4.3作业配置更改[RFC3995]5.3.3.4.3作业进度[RFC3995]5.3.3.4.3

23.7. Registration of Event Notification Delivery Methods
23.7. 事件通知传递方法的注册

This section describes the requirements and procedures for registration and publication of Event Notification Delivery Methods and for the submission of such proposals.

本节描述了事件通知交付方法的注册和发布以及提交此类建议书的要求和程序。

23.7.1. Requirements for Registration of Event Notification Delivery Methods

23.7.1. 事件通知交付方法的注册要求

Registered IPP Event Notification Delivery Methods are expected to follow a number of requirements described below.

注册的IPP事件通知交付方法应遵循以下所述的多项要求。

23.7.1.1. Required Characteristics
23.7.1.1. 所需特性

A Delivery Method Document MUST either (1) contain all of the semantics of the Delivery Method or (2) contain the IPP Delivery Method registration requirements and a profile of some other protocol that in combination is the Delivery Method (e.g., mailto). The Delivery Method Document (and any documents it requires) MUST define either (1) a URL for a Push Delivery Method that the meets the requirements of [RFC2717]. or (2) a keyword for a Pull Delivery method.

交付方法文件必须(1)包含交付方法的所有语义,或(2)包含IPP交付方法注册要求和其他协议的概要文件,这些协议组合为交付方法(如mailto)。交付方法文档(及其所需的任何文档)必须定义(1)符合[RFC2717]要求的推送交付方法的URL。或者(2)拉式交付方法的关键字。

IPP Event Notification Delivery Method Documents MUST meet the requirements of this document (see sections 9 and 10).

IPP事件通知交付方法文件必须符合本文件的要求(见第9节和第10节)。

In addition, a Delivery Method Document MUST contain the following information:

此外,交付方法文档必须包含以下信息:

Type of registration: IPP Event Notification Delivery Method Name of this delivery method: Proposed URL scheme name of this Push Delivery Method or the keyword name of this Pull Delivery Method: Name of proposer: Address of proposer:

注册类型:IPP事件通知传递方法此传递方法的名称:此推送传递方法的建议URL方案名称或此拉送传递方法的关键字名称:投标人名称:投标人地址:

Email address of proposer: Is this delivery method REQUIRED or OPTIONAL for conformance to the IPP Event Notification and Subscriptions document: Is this delivery method defining Machine Consumable and/or Human Consumable content:

投标人的电子邮件地址:为了符合IPP事件通知和订阅文件的要求,该交付方法是必需的还是可选的:该交付方法是否定义了机器耗材和/或人类耗材内容:

23.7.1.2. Naming Requirements
23.7.1.2. 命名要求

Exactly one (URL scheme or keyword) name MUST be assigned to each Delivery Method.

必须为每个传递方法指定一个(URL方案或关键字)名称。

Each assigned name MUST uniquely identify a single Delivery Method. All Push Delivery Method names MUST conform to the rules for URL scheme names, according to [RFC2396] and [RFC2717] for schemes in the IETF tree. All Pull Delivery Method names MUST conform to the rules for keywords according to [RFC2911].

每个分配的名称必须唯一标识一个传递方法。根据IETF树中方案的[RFC2396]和[RFC2717],所有推送交付方法名称必须符合URL方案名称的规则。根据[RFC2911],所有拉式传递方法名称必须符合关键字规则。

23.7.1.3. Functionality Requirements
23.7.1.3. 功能需求

Delivery Methods MUST function as a protocol that is capable of delivering (push or pull) IPP Event Notifications to Notification Recipients.

传递方法必须作为能够向通知收件人传递(推送或拉送)IPP事件通知的协议。

23.7.1.4. Usage and Implementation Requirements
23.7.1.4. 使用和实施要求

Use of a large number of Delivery Methods may hamper interoperability. However, the use of a large number of undocumented and/or unlabeled Delivery Methods hampers interoperability even more.

大量交付方法的使用可能会妨碍互操作性。然而,大量未记录和/或未标记的交付方法的使用更阻碍了互操作性。

A Delivery Method should therefore be registered ONLY if it adds significant functionality that is valuable to a large community, OR if it documents existing practice in a large community. Note that Delivery Methods registered for the second reason should be explicitly marked as being of limited or specialized use and should only be used with prior bilateral agreement.

因此,只有当交付方法添加了对大型社区有价值的重要功能,或者记录了大型社区中的现有实践时,才应该注册交付方法。请注意,出于第二个原因注册的交付方法应明确标记为有限或专门用途,且仅应在事先达成双边协议的情况下使用。

23.7.1.5. Publication Requirements
23.7.1.5. 出版要求

Delivery Method Documents MUST be published in a standards track, informational, or experimental RFCs.

交付方法文档必须在标准跟踪、信息或实验RFC中发布。

23.7.2. Registration Procedure
23.7.2. 登记程序

The IPP WG is developing a small number of Delivery Methods which are intended to be published as standards track RFCs. However, some parties may wish to register additional Delivery Methods in the future. This section describes the procedures for these additional Delivery Methods.

IPP工作组正在开发少量交付方法,这些方法将作为标准跟踪RFC发布。但是,有些缔约方今后可能希望登记其他交付方法。本节介绍这些附加交付方法的程序。

23.7.2.1. Present the proposal to the Community
23.7.2.1. 向社区提出建议

First the Delivery Method Document MUST be an Internet-Draft with a target category of standards track, informational, or experimental. The same MUST be true for any documents that it references.

首先,交付方法文档必须是互联网草稿,目标类别为标准跟踪、信息或实验。它引用的任何文档都必须是相同的。

Deliver the proposed Delivery Method Document proposal to the "ipp@pwg.org" mailing list. This mailing list has been established by [RFC2911] for reviewing proposed registrations and discussing other IPP matters. Proposed Delivery Method Documents are not formally registered and MUST NOT be used until approved.

将建议的交付方法文件建议书交付给“ipp@pwg.org“邮件列表。[RFC2911]已建立此邮件列表,用于审查拟议注册和讨论其他IPP事宜。拟定的交付方法文件未经正式注册,未经批准前不得使用。

The intent of the public posting is to solicit comments and feedback on the definition and suitability of the Delivery Method and the name chosen for it over a four week period.

公开发布的目的是在四周内征求关于交付方法的定义和适用性以及为其选择的名称的意见和反馈。

23.7.2.2. Delivery Method Reviewer
23.7.2.2. 交付方法审查员

The Delivery Method Reviewer is the same person who has been appointed by the IETF Application Area Director(s) as the IPP Designated Expert according to [RFC2911] and [IANA-CON]. When the four week period is over and the IPP Designated Expert is convinced that consensus has been achieved, the IPP Designated Expert either approves the request for registration or rejects it. Rejection may occur because of significant objections raised on the list or objections raised externally.

交付方法评审员是指IETF应用领域总监根据[RFC2911]和[IANA-CON]任命为IPP指定专家的同一人。当四周期限结束,IPP指定专家确信已达成共识时,IPP指定专家批准或拒绝注册请求。由于清单上提出的重大异议或外部提出的异议,可能会导致拒绝。

Decisions made by the Reviewer must be posted to the ipp@pwg.org mailing list within 14 days. Decisions made by the Reviewer may be appealed to the IESG.

审核人做出的决定必须发布到ipp@pwg.org14天内发送邮件列表。评审员做出的决定可向IESG提出上诉。

23.7.2.3. IANA Registration
23.7.2.3. IANA注册

Provided that the Delivery Method registration proposal has either passed review or has been successfully appealed to the IESG, the IANA will be notified by the delivery method reviewer and asked to register the Delivery Method and make it available to the community.

如果交付方法注册提案已通过审查或已成功向IESG提出上诉,则交付方法审查员将通知IANA,并要求IANA注册交付方法并将其提供给社区。

23.7.3. Delivery Method Document Registrations
23.7.3. 文件注册的交付方法

Each Push Delivery Method Document defines a URI scheme. Such a URI scheme is used in a URI value of the "notification-recipient" (uri) Subscription Template attribute (see section 5.3.1) and the uriScheme value of the "notify-schemes-supported" (1setOf uriScheme 5.3.1.1) Printer attribute(see section ). Rather than creating a separate section in the IPP Registry for Delivery Methods, Push Delivery Methods will be registered as an additional value of the "notify-schemes-supported" Printer attribute. These uriScheme values will be

每个推送交付方法文档定义一个URI方案。此类URI方案用于“通知收件人”(URI)订阅模板属性的URI值(参见第5.3.1节)和“支持的通知方案”(1setOf URI方案5.3.1.1)打印机属性的URI值(参见第5.3.1节)。推送传递方法将注册为“notify schemes supported”打印机属性的附加值,而不是在IPP注册表中为传递方法创建单独的部分。这些uriScheme值将是

registered according to the procedures of [RFC2911] section 7.1 for additional attribute values. Therefore, the IPP Registry entry for a Push Delivery Method will be of the form:

根据[RFC2911]第7.1节中的程序注册附加属性值。因此,推送交付方法的IPP注册表项将采用以下形式:

   Attribute
     Value                                        Ref.       Section
     ---------------------                        --------   -------
   notify-schemes-supported (1setOf uriScheme)    [RFC3995]  5.3.1.1
     <scheme name>                                RFC xxxx   m.n
        
   Attribute
     Value                                        Ref.       Section
     ---------------------                        --------   -------
   notify-schemes-supported (1setOf uriScheme)    [RFC3995]  5.3.1.1
     <scheme name>                                RFC xxxx   m.n
        

Each Pull Delivery Method Document defines a keyword method which is registered as an additional value of the "notify-pull-method" and "notify-pull-method-supported" Printer attributes. These keyword values will be registered according to the procedures of [RFC2911] section 7.1 for additional attribute values. Therefore, the IPP Registry entry for a Pull Delivery Method will be of the form:

每个Pull Delivery Method文档定义一个关键字方法,该关键字方法注册为“notify Pull Method”和“notify Pull Method supported”打印机属性的附加值。这些关键字值将根据[RFC2911]第7.1节中的程序注册,以获取附加属性值。因此,拉式交付方法的IPP注册表项将采用以下形式:

   Attribute
     Value                                        Ref.       Section
     ---------------------                        --------   -------
   notify-pull-method (type2 keyword)             [RFC3995]  5.3.2
   notify-pull-method-supported (1setOf type2 keyword)
                                                  [RFC3995]  5.3.2.1
     <method keyword name>                        RFC xxxx    m.n
        
   Attribute
     Value                                        Ref.       Section
     ---------------------                        --------   -------
   notify-pull-method (type2 keyword)             [RFC3995]  5.3.2
   notify-pull-method-supported (1setOf type2 keyword)
                                                  [RFC3995]  5.3.2.1
     <method keyword name>                        RFC xxxx    m.n
        
23.7.4. Registration Template
23.7.4. 注册模板

To: ipp@pwg.org Subject: Registration of a new Delivery Method

致:ipp@pwg.org主题:新交付方式的注册

Delivery Method name:

传递方法名称:

(All Push Delivery Method names must be suitable for use as the value of a URL scheme in the IETF tree and all Pull Delivery Method names must be suitable IPP keywords according to [RFC2911])

(根据[RFC2911],所有推送交付方法名称必须适合用作IETF树中URL方案的值,并且所有拉送交付方法名称必须是合适的IPP关键字)

Published specification(s):

已发布的规范:

(A specification for the Delivery Method must be openly available that accurately describes what is being registered.)

(交付方法的规范必须公开提供,准确描述正在注册的内容。)

Person & email address to contact for further information:

联系人和电子邮件地址,以获取更多信息:

24. Internationalization Considerations
24. 国际化考虑

This IPP Notification specification continues support for the internationalization of [RFC2911] of attributes containing text strings and names. Allowing a Subscribing Client to specify a different natural language and charset for each Subscription Object increases the internationalization support.

本IPP通知规范继续支持包含文本字符串和名称的属性的[RFC2911]国际化。允许订阅客户端为每个订阅对象指定不同的自然语言和字符集可以增加国际化支持。

The Printer MUST be able to localize the content of Human Consumable Event Notifications and to localize the value of "notify-text" attribute in Machine Consumable Event Notifications that it delivers to Notification Recipients. For localization, the Printer MUST use the value of the "notify-charset" attribute and the "notify-natural-language" attribute in the Subscription Object supplied by the Subscribing Client.

打印机必须能够本地化人工耗材事件通知的内容,并本地化其发送给通知收件人的机器耗材事件通知中“通知文本”属性的值。对于本地化,打印机必须在订阅客户端提供的订阅对象中使用“notify charset”属性和“notify natural language”属性的值。

25. Security Considerations
25. 安全考虑

Clients submitting Notification requests to the IPP Printer have the same security issues as submitting an IPP/1.1 print job request (see [RFC2911] section 3.2.1 and section 8). The same mechanisms used by IPP/1.1 can therefore be used by the client Notification submission. Operations that require authentication can use the HTTP authentication. Operations that require privacy can use the HTTP/TLS privacy. As with IPP/1.1 Print Job Objects, if there is no security on Subscription Objects, sequential assignment of subscription-ids exposes the system to a passive traffic monitoring threat.

向IPP打印机提交通知请求的客户端与提交IPP/1.1打印作业请求具有相同的安全问题(请参见[RFC2911]第3.2.1节和第8节)。因此,客户通知提交可以使用IPP/1.1使用的相同机制。需要身份验证的操作可以使用HTTP身份验证。需要隐私的操作可以使用HTTP/TLS隐私。与IPP/1.1打印作业对象一样,如果订阅对象没有安全性,则订阅ID的顺序分配会使系统面临被动流量监控威胁。

25.1. Client access rights
25.1. 客户端访问权限

The Subscription Object access control model is the same as the access control model for Job objects. The client MUST have the following access rights for the indicated Subscription operations:

订阅对象访问控制模型与作业对象的访问控制模型相同。对于指定的订阅操作,客户端必须具有以下访问权限:

1. Create-Job-Subscriptions (see section 11.1.1): A Per-Job Subscription object is associated with a Job. To create Per-Job Subscription Objects, the authenticated user (see [RFC2911] section 8.3) performing this operation MUST (1) be the job owner, (2) have Operator or Administrator access rights for this Printer (see [RFC2911] sections 1 and 8.5), or (3) be otherwise authorized by the Printer's administrator-configured security policy to create Per-Job Subscription Objects for the target job.

1. 创建作业订阅(请参阅第11.1.1节):每个作业订阅对象与作业关联。要创建每作业订阅对象,执行此操作的经过身份验证的用户(请参见[RFC2911]第8.3节)必须(1)是作业所有者,(2)具有此打印机的操作员或管理员访问权限(请参见[RFC2911]第1节和第8.5节),或(3)由打印机管理员配置的安全策略以其他方式授权为目标作业创建每作业订阅对象。

2. Create-Printer-Subscriptions (see section 11.1.2): A Per-Printer Subscription object is associated with the Printer. To create Per-Printer Subscription Objects, the authenticated user (see [RFC2911] section 8.3) performing this operation MUST (1) have Operator or Administrator access rights for this Printer (see

2. 创建打印机订阅(请参阅第11.1.2节):每打印机订阅对象与打印机关联。要创建每打印机订阅对象,执行此操作的经过身份验证的用户(请参见[RFC2911]第8.3节)必须(1)具有此打印机的操作员或管理员访问权限(请参见

[RFC2911] sections 1 and 8.5) or (2) be otherwise authorized by the Printer's administrator-configured security policy to create Per-Printer Subscription Objects for this Printer.

[RFC2911]第1节和第8.5节)或(2)节必须由打印机管理员配置的安全策略授权,才能为此打印机创建每打印机订阅对象。

3. Get-Subscription-Attributes (see section 11.2.4): The access control model for this operation is the same as that of the Get-Job-Attributes operation (see [RFC2911] section 3.3.4). The primary difference is that a Get-Subscription-Attributes operation is directed at a Subscription Object rather than at a Job object, and a returned attribute group contains Subscription Object attributes rather than Job object attributes. To query the specified Subscription Object, the authenticated user (see [RFC2911] section 8.3) performing this operation MUST (1) be the Subscription Object owner, (2) have Operator or Administrator access rights for this Printer (see [RFC2911] sections 1 and 8.5), or (3) be otherwise authorized by the Printer's administrator-configured security policy to query the Subscription Object for the target job. Furthermore, the Printer's security policy MAY limit which attributes are returned, in a manner similar to the Get-Job-Attributes operation (see [RFC2911] end of section 3.3.4.2).

3. 获取订阅属性(参见第11.2.4节):此操作的访问控制模型与获取作业属性操作的访问控制模型相同(参见[RFC2911]第3.3.4节)。主要区别在于获取订阅属性操作针对的是订阅对象而不是作业对象,并且返回的属性组包含订阅对象属性而不是作业对象属性。要查询指定的订阅对象,执行此操作的经过身份验证的用户(请参见[RFC2911]第8.3节)必须(1)是订阅对象的所有者,(2)具有此打印机的操作员或管理员访问权限(请参见[RFC2911]第1节和第8.5节),或(3)由打印机管理员配置的安全策略以其他方式授权查询目标作业的订阅对象。此外,打印机的安全策略可能会以类似于获取作业属性操作的方式限制返回哪些属性(请参见第3.3.4.2节的[RFC2911]结尾)。

4. Get-Subscriptions (see section 11.2.5): The access control model for this operation is the same as that of the Get-Jobs operation (see [RFC2911] section 3.2.6). The primary difference is that the operation is directed at Subscription Objects rather than at Job objects, and the returned attribute groups contain Subscription Object attributes rather than Job object attributes. To query Per-Job Subscription Objects of the specified job (client supplied the "notify-job-id" operation attribute - see section 11.2.5.1.1), the authenticated user (see [RFC2911] section 8.3) performing this operation MUST (1) be the Subscription Object owner, (2) have Operator or Administrator access rights for this Printer (see [RFC2911] sections 1 and 8.5), or (3) be otherwise authorized by the Printer's administrator-configured security policy to query the Subscription Object for the target job. To query Per-Printer Subscription Objects of the Printer (client omits the "notify-job-id" operation attribute - see section 11.2.5.1.1), the authenticated user (see [RFC2911] section 8.3) performing this operation MUST (1) have Operator or Administrator access rights for this Printer (see [RFC2911] sections 1 and 8.5), or (2) be otherwise authorized by the Printer's administrator-configured security policy to query Per-Printer Subscription Objects for the target Printer. Furthermore, the Printer's security policy MAY limit which attributes are returned, in a manner similar to the Get-Job-Attributes operation (see [RFC2911] end of section 3.2.6.2).

4. 获取订阅(参见第11.2.5节):此操作的访问控制模型与获取作业操作的访问控制模型相同(参见[RFC2911]第3.2.6节)。主要区别在于操作针对的是订阅对象而不是作业对象,并且返回的属性组包含订阅对象属性而不是作业对象属性。要查询指定作业的每个作业订阅对象(客户端提供了“通知作业id”操作属性-请参阅第11.2.5.1.1节),执行此操作的经过身份验证的用户(请参阅[RFC2911]第8.3节)必须(1)是订阅对象的所有者,(2)具有此打印机的操作员或管理员访问权限(请参阅[RFC2911]第1节和第8.5节)或(3)节)由打印机管理员配置的安全策略另行授权,以查询目标作业的订阅对象。要查询打印机的每打印机订阅对象(客户端省略“通知作业id”操作属性-请参阅第11.2.5.1.1节),执行此操作的经过身份验证的用户(请参阅[RFC2911]第8.3节)必须(1)具有此打印机的操作员或管理员访问权限(请参阅[RFC2911]第1节和第8.5节),或(2)由打印机管理员配置的安全策略授权,以查询目标打印机的每打印机订阅对象。此外,打印机的安全策略可能会以类似于获取作业属性操作的方式限制返回哪些属性(请参阅第3.2.6.2节的[RFC2911]结尾)。

5. Renew-Subscriptions (see section 11.2.6): The authenticated user (see [RFC2911] section 8.3) performing this operation MUST (1) be the owner of the Per-Printer Subscription Object, (2) have Operator or Administrator access rights for the Printer (see [RFC2911] sections 1 and 8.5), or (3) be otherwise authorized by the Printer's administrator-configured security policy to renew Per-Printer Subscription Objects for the target Printer

5. 续订(参见第11.2.6节):执行此操作的经过身份验证的用户(参见[RFC2911]第8.3节)必须(1)是每打印机订阅对象的所有者,(2)具有打印机的操作员或管理员访问权限(参见[RFC2911]第1节和第8.5节),或(3)由打印机管理员配置的安全策略授权,以续订目标打印机的每打印机订阅对象

6. Cancel-Subscription (see section 11.2.7): The authenticated user (see [RFC2911] section 8.3) performing this operation MUST (1) be the owner of the Subscription Object, (2) have Operator or Administrator access rights for the Printer (see [RFC2911] sections 1 and 8.5), or (3) be otherwise authorized by the Printer's administrator-configured security policy to cancel the target Subscription Object.

6. 取消订阅(参见第11.2.7节):执行此操作的经过身份验证的用户(参见[RFC2911]第8.3节)必须(1)是订阅对象的所有者,(2)具有打印机的操作员或管理员访问权限(参见[RFC2911]第1节和第8.5节),或(3)由打印机管理员配置的安全策略以其他方式授权取消目标订阅对象。

The standard security concerns (delivery to the right user, privacy of content, tamper proof content) apply to each Delivery Method. Some Delivery Methods are more secure than others. Each Delivery Method Document MUST discuss its Security Considerations.

标准安全问题(交付给正确的用户、内容隐私、防篡改内容)适用于每种交付方法。有些传递方法比其他方法更安全。每个交付方法文档必须讨论其安全注意事项。

25.2. Printer security threats
25.2. 打印机安全威胁

Notification trap door: If a Printer supports the OPTIONAL "notify-attributes" Subscription Template attribute (see section 5.3.4) where the client can request that the Printer return any specified Job, Printer, and Subscription object attributes, the Printer MUST apply the same security policy to these requested attributes in the Get-Notifications request as it does for the Get-Jobs, Get-Job-Attributes, Get-Printer-Attributes, and Get-Subscription-Attributes requests.

通知陷阱门:如果打印机支持可选的“通知属性”订阅模板属性(请参阅第5.3.4节),客户端可以在该属性中请求打印机返回任何指定的作业、打印机和订阅对象属性,打印机必须对Get Notifications请求中的这些请求属性应用与对Get Jobs、Get Job attributes、Get Printer attributes和Get Subscription attributes请求相同的安全策略。

25.3. Notification Recipient security threats
25.3. 通知收件人安全威胁

Unwanted Events Notifications (spam): For any Push Delivery Method, by far the biggest security concern is the abuse of notification: delivering unwanted Event Notifications to third parties (i.e., spam). The problem is made worse by notification addresses that may be redistributed to multiple parties. There exist scenarios where third party notification is used (see Scenario #2 and #3 in [RFC3997]). Any fully secure solution would require active agreement of all recipients before delivering anything.

不需要的事件通知(垃圾邮件):对于任何推送交付方法,到目前为止最大的安全问题是滥用通知:向第三方交付不需要的事件通知(即垃圾邮件)。通知地址可能被重新分配给多方,这使得问题更加严重。存在使用第三方通知的场景(参见[RFC3997]中的场景2和场景3])。任何完全安全的解决方案在交付任何内容之前都需要所有收件人的积极同意。

26. Description of the base IPP documents (Informative)
26. 基本IPP文件说明(资料性)

The base set of IPP documents includes:

IPP文件的基本集包括:

   Design Goals for an Internet Printing Protocol [RFC2567]
   Rationale for the Structure and Model and Protocol for the Internet
      Printing Protocol [RFC2568]
   Internet Printing Protocol/1.1: Model and Semantics [RFC2911]
   Internet Printing Protocol/1.1: Encoding and Transport [RFC2910]
   Internet Printing Protocol/1.1: Implementer's Guide [RFC3196]
   Mapping between LPD and IPP Protocols [RFC2569]
        
   Design Goals for an Internet Printing Protocol [RFC2567]
   Rationale for the Structure and Model and Protocol for the Internet
      Printing Protocol [RFC2568]
   Internet Printing Protocol/1.1: Model and Semantics [RFC2911]
   Internet Printing Protocol/1.1: Encoding and Transport [RFC2910]
   Internet Printing Protocol/1.1: Implementer's Guide [RFC3196]
   Mapping between LPD and IPP Protocols [RFC2569]
        

The "Design Goals for an Internet Printing Protocol" document takes a broad look at distributed printing functionality, and it enumerates real-life scenarios that help to clarify the features that need to be included in a printing protocol for the Internet. It identifies requirements for three types of users: end users, operators, and administrators. It calls out a subset of end user requirements that are satisfied in IPP/1.0 [RFC2566, RFC2565]. A few OPTIONAL operator operations have been added to IPP/1.1 [RFC2911, RFC2910].

“Internet打印协议的设计目标”文档广泛介绍了分布式打印功能,并列举了有助于澄清需要包含在Internet打印协议中的功能的实际场景。它确定了三类用户的需求:最终用户、操作员和管理员。它调用了IPP/1.0[RFC2566,RFC2565]中满足的最终用户需求子集。IPP/1.1[RFC2911、RFC2910]中增加了一些可选的操作员操作。

The "Rationale for the Structure and Model and Protocol for the Internet Printing Protocol" document describes IPP from a high level view, defines a roadmap for the various documents that form the suite of IPP specification documents, and gives background and rationale for the IETF IPP working group's major decisions.

“互联网打印协议的结构、模型和协议的基本原理”文件从高层次上描述了IPP,定义了构成IPP规范文件套件的各种文件的路线图,并为IETF IPP工作组的主要决策提供了背景和基本原理。

The "Internet Printing Protocol/1.1: Model and Semantics" document describes a simplified model with abstract objects, their attributes, and their operations. The model introduces a Printer and a Job. The Job supports multiple documents per Job. The model document also addresses how security, internationalization, and directory issues are addressed.

“Internet打印协议/1.1:模型和语义”文档描述了一个简化模型,其中包含抽象对象、它们的属性及其操作。该模型引入了打印机和作业。每个作业支持多个文档。模型文档还讨论了如何解决安全性、国际化和目录问题。

The "Internet Printing Protocol/1.1: Encoding and Transport" document is a formal mapping of the abstract operations and attributes defined in the model document onto HTTP/1.1 [RFC2616]. It also defines the encoding rules for a new Internet MIME media type called "application/ipp". This document also defines the rules for transporting over HTTP a message body whose Content-Type is "application/ipp". This document defines the 'ipp' scheme for identifying IPP printers and jobs.

“Internet打印协议/1.1:编码和传输”文档是模型文档中定义的抽象操作和属性到HTTP/1.1[RFC2616]的正式映射。它还定义了称为“应用程序/ipp”的新Internet MIME媒体类型的编码规则。本文档还定义了通过HTTP传输内容类型为“application/ipp”的消息体的规则。本文件定义了识别ipp打印机和作业的“ipp”方案。

The "Internet Printing Protocol/1.1: Implementer's Guide" document gives insight and advice to implementers of IPP clients and IPP objects. It is intended to help them understand IPP/1.1 and some of the considerations that may assist them in the design of their client and/or IPP object implementations. For example, a typical order of

“互联网打印协议/1.1:实施者指南”文件为IPP客户端和IPP对象的实施者提供了见解和建议。它旨在帮助他们理解IPP/1.1以及一些可能有助于他们设计客户端和/或IPP对象实现的注意事项。例如,一个典型的

processing requests is given, including error checking. Motivation for some of the specification decisions is also included.

处理请求,包括错误检查。还包括一些规范决策的动机。

The "Mapping between LPD and IPP Protocols" document gives some advice to implementers of gateways between IPP and LPD (Line Printer Daemon) implementations.

“LPD和IPP协议之间的映射”文档为IPP和LPD(Line Printer Daemon)实现之间网关的实现者提供了一些建议。

27. Contributors
27. 贡献者

The following people made significant contributions to the design and review of this specification:

以下人员对本规范的设计和审查做出了重大贡献:

Scott A. Isaacson Novell, Inc. 122 E 1700 S Provo, UT 84606

Scott A.Isaacson Novell,Inc.美国犹他州普罗沃南部122 E 1700,邮编84606

Phone: 801-861-7366 Fax: 801-861-2517 EMail: sisaacson@novell.com

电话:801-861-7366传真:801-861-2517电子邮件:sisaacson@novell.com

Roger deBry Utah Valley State College Orem, UT 84058

罗杰·德布里犹他谷州立学院奥勒姆,UT 84058

Phone: 801-863-8848 EMail: debryro@uvsc.edu

电话:801-863-8848电子邮件:debryro@uvsc.edu

Jay Martin Underscore Inc. 9 Jacqueline St. Hudson, NH 03051-5308

杰伊·马丁公司地址:新罕布什尔州杰奎琳圣哈德逊9号,邮编:03051-5308

Phone: 603-889-7000 Fax: 775-414-0245 EMail: jkm@underscore.com

电话:603-889-7000传真:775-414-0245电子邮件:jkm@underscore.com

Michael Shepherd Xerox Corporation 800 Phillips Road MS 128-51E Webster, NY 14450

迈克尔·谢泼德施乐公司,纽约州韦伯斯特菲利普斯路800号,邮编:14450

Phone: 716-422-2338 Fax: 716-265-8871 EMail: mshepherd@usa.xerox.com

电话:716-422-2338传真:716-265-8871电子邮件:mshepherd@usa.xerox.com

Ron Bergman Ricoh Printing Systems America 1757 Tapo Canyon Road Simi Valley, CA 93063-3394

罗恩·伯格曼理光印刷系统美国加利福尼亚州西米谷塔波峡谷路1757号,邮编93063-3394

Phone: 805-578-4421 Fax: 805-578-4001 EMail: ron.bergman@rpsa.ricoh.com

电话:805-578-4421传真:805-578-4001电子邮件:ron。bergman@rpsa.ricoh.com

Authors' Addresses

作者地址

Robert Herriot Global Workflow Solutions 706 Colorado Ave. Palo Alto, CA 94303

Robert Herriot全球工作流解决方案加利福尼亚州帕洛阿尔托市科罗拉多大道706号,邮编94303

Phone: 650-324-4000 EMail: bob@herriot.com

电话:650-324-4000电子邮件:bob@herriot.com

Tom Hastings Xerox Corporation 701 S Aviation Blvd, ESAE 242 El Segundo, CA 90245

汤姆·黑斯廷斯施乐公司,美国加利福尼亚州塞贡多市ESAE 242 S航空大道701号,邮编90245

Phone: 310-333-6413 Fax: 310-333-6342 EMail: hastings@cp10.es.xerox.com

电话:310-333-6413传真:310-333-6342电子邮件:hastings@cp10.es.xerox.com

Full Copyright Statement

完整版权声明

Copyright (C) The Internet Society (2005).

版权所有(C)互联网协会(2005年)。

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

本文件受BCP 78中包含的权利、许可和限制的约束,除其中规定外,作者保留其所有权利。

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

本文件及其包含的信息是按“原样”提供的,贡献者、他/她所代表或赞助的组织(如有)、互联网协会和互联网工程任务组不承担任何明示或暗示的担保,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

Intellectual Property

知识产权

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

IETF对可能声称与本文件所述技术的实施或使用有关的任何知识产权或其他权利的有效性或范围,或此类权利下的任何许可可能或可能不可用的程度,不采取任何立场;它也不表示它已作出任何独立努力来确定任何此类权利。有关RFC文件中权利的程序信息,请参见BCP 78和BCP 79。

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

向IETF秘书处披露的知识产权副本和任何许可证保证,或本规范实施者或用户试图获得使用此类专有权利的一般许可证或许可的结果,可从IETF在线知识产权存储库获取,网址为http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

IETF邀请任何相关方提请其注意任何版权、专利或专利申请,或其他可能涵盖实施本标准所需技术的专有权利。请将信息发送至IETF的IETF-ipr@ietf.org.

Acknowledgement

确认

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC编辑功能的资金目前由互联网协会提供。