October 31, 2003
Candidate Standard 5100.7

The Printer Working Group (PWG)
Standard for The Internet Printing Protocol (IPP):
Job Extensions

Abstract: This IPP specification extends the Job semantics of the IPP Model and Semantics [rfc2911] object model.  This specification defines some new Operation attributes for use in Job Creation and Document Creation operations.  The Printer copies these Operation attributes to the corresponding Job Description attributes, which the clients may query.  The Document Creation Operation attributes describe the Document Content and permit the Printer to reject requests that it cannot process correctly.  Some corresponding "xxx-default" and "xxx-supported" Printer attributes are defined.  This specification defines some Job Template attributes that apply to a multi-document Job as a whole and the “output-device” Job Template attribute that can apply to Documents and to Sheets as well as Jobs.  This specification also defines some additional values for the "job-state-reasons" Job Description attribute.  Each of the attributes defined in this specification are independent of each other and are OPTIONAL for a Printer to support.

October 31, 2003
Candidate Standard 5100.5

The Printer Working Group (PWG)
Standard for
The Internet Printing Protocol (IPP):
Job Extensions

This version of the PWG Proposed Standard is available electronically at:

ftp://ftp.pwg.org/pub/pwg/standards/pwg5100.7.pdf , .doc, .rtf
This document is an IEEE-ISTO PWG Candidate Standard.  For a definition of a "PWG Candidate Standard" and its transition to a "PWG Standard", see:  ftp://ftp.pwg.org/pub/pwg/general/pwg-process.pdf.  

Copyright (C) 2003, IEEE ISTO. All rights reserved. 
This document may be copied and furnished to others, and derivative works that comment on, or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice, this paragraph and the title of the Document as referenced below are included on all such copies and derivative works.  However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the IEEE-ISTO and the Printer Working Group, a program of the IEEE-ISTO. 
Title:  The Printer Working Group Standard for the Internet Printing Protocol (IPP): Job and Document Operation extensions 
The IEEE-ISTO and the Printer Working Group DISCLAIM ANY AND ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED INCLUDING (WITHOUT LIMITATION) ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 
The Printer Working Group, a program of the IEEE-ISTO, reserves the right to make changes to the document without further notice.  The document may be updated, replaced or made obsolete by other documents at any time. 
The IEEE-ISTO takes no position regarding the validity or scope of any intellectual property 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; neither does it represent that it has made any effort to identify any such rights. 
The IEEE-ISTO invites any interested party to bring to its attention any copyrights, patents, or patent applications, or other proprietary rights which may cover technology that may be required to implement the contents of this document. The IEEE-ISTO and its programs shall not be responsible for identifying patents for which a license may be required by a document and/or IEEE-ISTO Industry Group Standard or for conducting inquiries into the legal validity or scope of those patents that are brought to its attention. Inquiries may be submitted to the IEEE-ISTO by e-mail at: 
ieee-isto@ieee.org 
The Printer Working Group acknowledges that the IEEE-ISTO (acting itself or through its designees) is, and shall at all times, be the sole entity that may authorize the use of certification marks, trademarks, or other special designations to indicate compliance with these materials. 
Use of this document is wholly voluntary.  The existence of this document does not imply that there are no other ways to produce, test, measure, purchase, market, or provide other goods and services related to its scope. 

About the IEEE-ISTO

The IEEE-ISTO is a not-for-profit corporation offering industry groups an innovative and flexible operational forum and support services.  The IEEE-ISTO provides a forum not only to develop standards, but also to facilitate activities that support the implementation and acceptance of standards in the marketplace.  The organization is affiliated with the IEEE (http://www.ieee.org/) and the IEEE Standards Association (http://standards.ieee.org/).

For additional information regarding the IEEE-ISTO and its industry programs visit http://www.ieee-isto.org.

About the IEEE-ISTO PWG
The Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization (ISTO) with member organizations including printer manufacturers, print server developers, operating system providers, network operating systems providers, network connectivity vendors, and print management application developers.  The group is chartered to make printers and the applications and operating systems supporting them work together better.  All references to the PWG in this document implicitly mean “The Printer Working Group, a Program of the IEEE ISTO.” In order to meet this objective, the PWG will document the results of their work as open standards that define print related protocols, interfaces, procedures and conventions. Printer manufacturers and vendors of printer related software will benefit from the interoperability provided by voluntary conformance to these standards. 
In general, a PWG standard is a specification that is stable, well understood, and is technically competent, has multiple, independent and interoperable implementations with substantial operational experience, and enjoys significant public support. 
For additional information regarding the Printer Working Group visit:  http://www.pwg.org

Contact information:
IPP Web Page:  http://www.pwg.org/ipp/ 
IPP Mailing List:  ipp@pwg.org 
To subscribe to the ipp mailing list, send the following email:
1) send it to majordomo@pwg.org 
2) leave the subject line blank
3) put the following two lines in the message body:
subscribe ipp
end
Implementers of this specification are encouraged to join the IPP Mailing List in order to participate in any discussions of clarifications or review of registration proposals for additional names.  Requests for additional extensions, for inclusion in this specification, should be sent to the IPP Mailing list for consideration.  In order to reduce spam the mailing list rejects mail from non-subscribers, so you must subscribe to the mailing list in order to send a question or comment to the mailing list.

Table of Contents
1	Introduction and Summary
1.1 Attributes Summary
2	Terminology
2.1 Conformance Terminology
2.2 Other Terminology
3	Operation Attributes for Job Creation and Document Creation operations
3.1 Operation attributes for Job Creation operations only
3.1.1 ipp-attribute-fidelity (boolean) ([rfc2911] section 3.2.1 and 15)
3.1.1.1 Why there are no “ipp-attribute-fidelity-default” and “ipp-attribute-fidelity-supported” attributes
3.1.2 job-mandatory-attributes (1setOf type2 keyword)
3.1.2.1 Why there are no “job-mandatory-attributes-default” and “job-mandatory-attributes-supported” Printer Description attributes
3.2 Operation attributes for both Job and Document Creation operations
3.2.1 compression (type2 keyword)
3.2.2 document-charset (charset)
3.2.3 document-digital-signature (type2 keyword)
3.2.4 document-format (mimeMediaType)
3.2.5 document-format-details (1setOf collection)
3.2.5.1 document-source-application-name (name(MAX))
3.2.5.2 document-source-application-version (text(127))
3.2.5.3 document-source-os-name (name(40))
3.2.5.4 document-source-os-version (text(40))
3.2.5.5 document-format (mimeMediaType)
3.2.5.6 document-format-device-id (text(127))
3.2.5.7 document-format-version (text(127))
3.2.5.8 document-natural-language (1setOf naturalLanguage)
3.2.6 document-format-version (text(127))
3.2.6.1 Why no "document-format-version-default"
3.2.7 document-message (text(MAX))
3.2.8 document-name (name(MAX))
3.2.9 document-natural-language (naturalLanguage)
4	Job Template attributes
4.1 Job Template attributes defined for Job-wide effect in multi-document jobs
4.1.1 job-copies (integer(1:MAX))
4.1.1.1 job-copies-default (integer(1:MAX))
4.1.1.2 job-copies-supported (rangeOfInteger(1:MAX))
4.1.1.3 job-copies-actual (1setof Integer(1:MAX))
4.1.2 job-cover-back (collection)
4.1.2.1 job-cover-back-default (collection)
4.1.2.2 job-cover-back-supported (1setOf type2 keyword)
4.1.2.3 job-cover-back-actual (1setOf collection)
4.1.3 job-cover-front (collection)
4.1.3.1 job-cover-front-default (collection)
4.1.3.2 job-cover-front-supported (1setOf type2 keyword)
4.1.3.3 job-cover-front-actual (1setOf collection)
4.1.4 job-finishings (1setOf type2 enum)
4.1.4.1 job-finishings-default (1setOf type2 enum)
4.1.4.2 job-finishings-ready (1setOf type2 enum)
4.1.4.3 job-finishings-supported (1setOf type2 enum)
4.1.4.4 job-finishings-actual (1setOf type2 enum)
4.1.5 job-finishings-col (1setOf collection)
4.1.5.1 job-finishings-col-default (collection)
4.1.5.2 job-finishings-col-ready (collection)
4.1.5.3 job-finishings-col-supported (1setOf type2 keyword)
4.1.5.4 job-finishings-col-actual (1setOf collection)
4.2 Job Template attributes that may have Document Scope and Override Scope
4.2.1 output-device (name(127))
4.2.1.1 Why there is no output-device-default
4.2.1.2 output-device-supported (1setOf name(127))
4.2.1.3 output-device-actual (1setOf name(127))
4.2.2 print-content-optimize (type2 keyword)
4.2.2.1 print-content-optimize-default (type2 keyword)
4.2.2.2 print-content-optimize-supported(1setOf type2 keyword)
4.2.2.3 print-content-optimize-actual (1setOf type2 keyword)
5	Job Description attributes
5.1 Job Description attributes that describe the Job as a whole
5.1.1 errors-count (integer(0:MAX))
5.1.2 ipp-attribute-fidelity (boolean)
5.1.3 job-mandatory-attributes (1setOf type2 keyword)
5.1.4 warnings-count (integer(0:MAX))
5.2 Job Description attributes that are defaults for the Document(s) in the Job
5.2.1 compression-supplied (type3 keyword)
5.2.2 document-charset-supplied (charset)
5.2.3 document-digital-signature-supplied (type2 keyword)
5.2.4 document-format-details-supplied (1setOf collection)
5.2.5 document-format-supplied (mimeMediaType)
5.2.6 document-format-version-supplied (text(127))
5.2.7 document-message-supplied (text(MAX))
5.2.8 document-name-supplied (name (MAX))
5.2.9 document-natural-language-supplied (naturalLanguage)
6	New values to existing attributes
6.1 New job-state-reasons(1setOf type2 keyword) Values
6.2 New media (type 3 keyword | name(MAX)) Values
7	New Printer Description attributes
7.1 document-charset-default (charset)
7.2 document-charset-supported (1setOf charset)
7.3 document-digital-signature-default (type2 keyword)
7.4 document-digital-signature-supported (1setOf type2 keyword)
7.5 document-format-details-default (collection)
7.6 document-format-details-supported (1setOf type2 keyword)
7.7 document-format-version-default (text(127))
7.8 document-format-version-supported (1setOf text(127))
7.9 document-natural-language-default (naturalLanguage)
7.10 document-natural-language-supported (1setOf naturalLanguage)
8	Status codes
8.1 server-error-too-many-jobs (0x050B)
8.2 server-error-too-many-documents (0x050C)
9	Override Scope of Attributes
9.1 Override Scope of Job Template attributes
9.2 Scope for Operation attributes
10	Conformance Requirements
10.1 Printer conformance requirements
10.2 Client conformance requirements
11	Normative References
12	Informative References
13	IANA Considerations
13.1 Attribute Registrations
13.2 Keyword attribute values
13.3 Enum Attribute Values
14	Internationalization Considerations
15	Security Considerations
16	Contributors
17	Author’s Address
18	Annex A: Additional requirements for a revision of the PWG IEEE/ISTO 5101.1 Candidate Standard [pwg5101.1] to add the new ‘choice_xxx’

Table of Tables
Table 1 - Summary of Job Creation Operation attributes
Table 2 - Summary of Job and Document Creation Operation attributes
Table 3 - Summary of Job Template Attributes
Table 4 - Operation, Default, and Supported Attributes
Table 5 - Operation Attributes supplied in Job and Document Creation Requests
Table 6 - "document-format-details" member Operation attributes
Table 7 - Job Template attributes
Table 8 - Job Description attributes that describe the Job as a whole
Table 9 - New "job-state-reasons" attribute values
Table 10 - New Printer Description attributes
Table 11 - Keyword values of "document-format-details-supported Printer attribute
Table 12  Override Scope for Job Template Attributes
Table 13  Scope for Operation Attributes

1	Introduction and Summary
This IPP specification is an assortment of attributes and values that extend the Job semantics of the IPP Model and Semantics [rfc2911].  This specification defines some new Operation attributes for use in Job Creation and Document Creation operations.  The Printer copies these Operation attributes to the corresponding Job Description attributes, which the clients may query.  The Document Creation Operation attributes describe the Document Content and permit the Printer to reject requests that it cannot process correctly.  Some corresponding "xxx-default" and "xxx-supported" Printer attributes are defined.  This specification defines some Job Template attributes that apply to a multi-document Job as a whole; their names start with “job-“ to indicate their job-wide scope.  This specification defines the “output-device” Job Template attribute that can apply to Documents and to Sheets as well as Jobs  This specification also defines some additional values for the "job-state-reasons" Job Description attribute.  Each of the attributes defined in this specification are independent of each other and are OPTIONAL for a Printer to support.
This specification is an IPP extension referenced by the PWG Semantic Model [pwg-sm].  The purpose for these extensions is so that the print industry can have a common semantic specification for use in IPP, the PWG Semantic Model [pwg-sm], the PWG Print Service Interface (PSI) project [pwg-psi], the PWG IPP Fax (IPPFAX) project [ippfax], and the Free Standards Group Job Ticket API [fsg-jt].  
1.1	Attributes Summary
Table 1 summarizes the Operation attributes defined in this specification for use with Job Creation operations.  The Printer copies these Operation attributes to corresponding Job Description attributes defined in this specification.  
Table 1 - Summary of Job Creation Operation attributes
Operation attribute	Printer support	Description	
ipp-attribute-fidelity (boolean)	MUST	Allows the client to control whether or not the Printer MUST support all Job Template attributes supplied in Job Creation operation, else the Printer MUST reject the job.  Defined in [rfc2911] section 3.2.1.2 and 15.	
job-mandatory-attributes (1setOf type2 keyword)	MAY	Allows the client to list the Job Template attributes that the Printer MUST support when supplied in the Job Creation operation, else the Printer MUST reject the job.	

Table 2 summarizes the Operation attributes defined in this specification for use with Job Creation operations and Send-Document and Send-URI operations.  These Operation attributes allow the client to supply descriptions of the Document Content to the Printer about individual Document Contents at request time.  When supplied in a Job Creation request, these Operation attributes provide defaults for the Document or Documents of the Job.  When supplied in a Document Creation operation, they describe the Document explicitly.  This specification does not define corresponding Document Description attributes, since this specification does not include or depend on a Document object.
Table 2 - Summary of Job and Document Creation Operation attributes
Operation attribute	Printer support	Description	
document-charset (charset)	MAY	The charset of the Document content	
document-digital-signature (type2 keyword)	MAY	The type of digital signature, if any, used in the Document Content.	
document-format-details (1setOf collection)	MAY	The details of the Document Content, including when it’s a package of files (e.g., zip, multipart/related).  The details include information, such as the application and the operating system that created the document, the intended device type (when the format is device-dependent), and the natural languages of the document. 	
document-format-version (text(127))	MAY	The version of the document format.	
document-format-natural-language (naturalLanguage)	MAY	The primary natural language of the Document Content.	

Table 3 summarizes the Job Template attributes defined in this specification for use with Job Creation operations.  The Job Template attributes that have a “job-“ prefix are defined to apply to the Job as a whole, independent of the value of the "multiple-document-handling" Job Template attribute ([rfc2911] section 4.2.4), whose 'separate-documents-collated-copies' and 'separate-documents-uncollated-copies' values cause the Printer to produce separate Output Documents.  The “output-device” Job Template attribute is not restricted to be job-wide and can be supplied in Document Creation operations and in the “override” attribute to override at the Sheet level (see section 9). When supplied in a Document Creation operation, the “output-device” Job Template attribute describes the Document explicitly.  This specification does not define corresponding Document Description attributes, since this specification does not include or depend on a Document object.

Table 3 - Summary of Job Template Attributes
Job Template attribute	Printer support	Description	
job-copies (integer(1:MAX))	MAY	The number of copies of the entire Job.	
job-cover-back (collection)	MAY	The cover for the back of the entire Job.	
job-cover-front (collection)	MAY	The cover for the front of the entire Job.	
job-finishings (1setOf type2 enum)	MAY	The finishing for the entire Job.	
job-finishings-col (1setOf collection)	MAY	The finishing characteristics for the entire Job.	
output-device (name(127))	MAY	Allows the client to indicate a preference for output devices, for a Printer that supports one or more output device (see fan-out in [rfc2911] section 2.1).	
2	Terminology
This section defines terminology used throughout this document.
2.1	Conformance Terminology
Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, MAY, and OPTIONAL, have special meaning relating to conformance as defined in RFC 2119 [rfc2119].  
2.2	Other Terminology
This document uses the same terminology as [rfc2911], such as “client”, “Printer”, “attribute”, “attribute value”, “keyword”, “Job Template attribute”, “Operation attribute”, “operation”, “request”, “response”, and “support” (see [rfc2911] section 12.2.3) with the same meaning.  In addition, the following terms are defined for use in this document:
Document Creation operation - operations that accept Document Content.  Specifically: Print-Job, Print-URI, Send-Document and Send-URI.  Note:  Print-Job and Print-URI are both Job Creation and Document Creation operations.
Finished Document - the result that the Printer produces on Sheets after the operations of printing, folding, cutting, finishing, etc. are completed.
Job Attribute - an Operation attribute or a Job Template attribute that applies to the Job (object) as a whole.  For example, “job-name” is an Operation attribute and “job-priority” is a Job Template attribute.
Job Creation operation - operations that create Job objects, specifically: Print-Job, Print-URI, and Create-Job as defined in [rfc2911].
Operation attribute - an attribute supplied by a client in the Operation Attribute group of a request in order to affect the behavior of the operation or an attribute returned by the Printer in the Operation Attributes group in an operation response in order to report the results of the operation.  For some Operation attributes, the Printer copies the values supplied by the client to corresponding Job Description attributes.
Page  - The term "Page"  used throughout this document is a synonym for PDL page.  
PDL Page - A "PDL Page" is a page according to the definition of pages in the language used to express the document data.   Note: If the PDL contains multiple original source pages  that have been placed on a single page by the client application, then the PDL page count is one.  On the other hand, if the client requests that multiple PDL Pages are placed on a single side of media, by supplying “number-up” with a value greater than 1, then the PDL page count will be more than one.  [rfc2911] uses the term “print stream page” for PDL Page.
Sheet - A Sheet is the unit of media that a printer puts marks on. It is the most basic unit of output from a printer. A printer may mark on one side or on both sides of a sheet.
3	Operation Attributes for Job Creation and Document Creation operations
This section defines Operation attributes for use in Job Creation operations and/or Document Creation operations and as such describe characteristics of the Job and Document, rather than instructions to the Printer.  For some of these Operation attributes there are corresponding “xxx-default” and “xxx-supported” Printer Description attributes (see section 7). 
Table 4 lists the Operation attributes and their attribute syntaxes supplied in Job Creation and Document Creation operations and the attribute syntaxes of their corresponding "xxx-default" and "xxx-supported" Printer Description attributes, if any.  A "-" indicates that there isn't an "xxx-default" or "xxx-supported" Printer Description attribute.
Table 4 - Operation, Default, and Supported Attributes
Operation attribute: 
attribute name "xxx"	Operation
attribute syntax	Printer: Default Value
attribute syntax
"xxx-default" 	Printer: Supported Values
attribute syntax
"xxx-supported"	
document-charset	charset	charset	1setOf charset	
document-digital-signature	type2 keyword	type2 keyword	1setOf type2 keyword	
document-format	mimeMediaType	mimeMediaType	1setOf mimeMediaType	
document-format-details	1setOf collection	1setOf collection	1setOf type2 keyword	
document-source-application-name	name(MAX)	name(MAX)	-	
document-source-application-version	text(127)	text(127)	-	
document-source-os-name	name(40)	name(40)	-	
document-source-os-version	text(40)	text(40)	-	
document-format	mimeMediaType	mimeMediaType	-	
document-format-device-id	text(127)	text(127)	-	
document-format-version	text(127)	text(127)	-	
document-natural-language	naturalLanguage	naturalLanguage	-	
document-format-version	text(127)	text(127)	1setOf text(127)	
document-message	text(MAX)	-	-	
document-name	name(MAX)	-	-	
document-natural-language	naturalLanguage	naturalLanguage	1setOf naturalLanguage	
ipp-attribute-fidelity	boolean	-	-	
job-mandatory-attributes	1setOf type2 keyword	-	-	
				
Table 5 lists the Operation attributes that clients supply in Job and Document Creation operations and whether the Printer copies (indicated by “”) the supplied value to the corresponding Job Description attribute.  The following statements apply to all Operation attributes for Job and Document Creation operations and are not repeated in each Operation attribute Description:
If the Printer doesn’t support the “xxx” Operation attribute, the Printer MUST ignore the “xxx” attribute (as with any OPTIONAL Operation attribute) and return the “xxx” attribute with the supplied value as unsupported in the Unsupported Attributes group as specified in [rfc2911] section 3.1.7.
If the Printer supports the “xxx” Operation attribute, the Printer MUST also:
1.	support the corresponding "xxx-default" and "xxx-supported" Printer Description attributes as well, if defined (see Table 4 and section 7).  If the Printer supports either of the “xxx-default” or “xxx-supported” Printer Description attributes, then the Printer MUST also support the corresponding Operation attribute.
2.	validate the values supplied by the client in the "xxx" Operation attribute against the values indicated in the Printer's corresponding "xxx-supported" Printer Description attribute (see section 7).  If the values do not validate, the Printer MUST perform one of the actions indicated for that Operation attribute, unless explicitly specified otherwise in the Description, such as (1) reject the request, (2) accept the request and either (a) hold the job for operator intervention or (b) print the Job ignoring the attribute.  In all of these cases, the Printer MUST return the Operation attribute with the unsupported value in the Unsupported Attributes group in the response (see [rfc2911] section 3.1.7).
Legend:		
“Operation”	Column indicates the operation attribute names for Job and Document Creation requests.    	
“*”	Following attribute name indicates value sent on Create-Job, Print-Job and Print-Uri is the default for all the Documents in the Job.	
“Creation operations”	Column indicates which operations the Operation attribute can be supplied in: PJ=Print-Job, PU=Print-URI, CJ=Create-Job,  SD=Send-Document, and SU=Send-URI.    	
“y”	The Operation attribute is defined for use with the indicated operations.	
“y”	The Operation attribute is defined for use with the indicated operations.  It has a corresponding Job Description attribute (see section 4.1.5.4) defined that the Printer MUST support and to which the Printer MUST copy this Operation attribute, if it supports the Operation attribute.  See Table 4 for whether there are corresponding “xxx-default” and “xxx-supported” Printer Description attributes defined. 	
“y**”	Same as above except the corresponding Job Description attribute has an “-supplied” suffix appended to the Operational attribute name.	
“-”	the Operation attribute is not defined for the indicated operation.	
“Conformance”	column indicates the conformance requirements for what the client supplies in a  request and the Printer supports in a request.  For (indented) member attributes, a MUST means if the collection attribute is supplied or supported.	
“Section”	column indicates where the Operation attribute is defined in this spec.	

Table 5 - Operation Attributes supplied in Job and Document Creation Requests
Operation attribute name 	Attribute Syntax	Creation operations	Conformance	Section	
		CJ	PJ, PU	SD, SU	Client supply	Printer support		
The following 10 Operation attributes have corresponding “xxx-supplied” Job Description attributes:	
compression	type2 keyword	y**	y**	y	MAY	MAY	§3.2.1	
document-charset*	charset	y**	y**	y	MAY	MAY	§3.2.2	
document-digital-signature*	type2 keyword	y**	y**	y	MAY	MAY	§3.2.3	
document-format*	mimeMediaType	y**	y**	y	MAY	MUST	§3.2.4	
document-format-details*	1setOf collection	y**	y**	y	MAY	MAY	§3.2.5	
document-source-application-name*	name(MAX)	y	y	y	MAY	MAY	§3.2.5.1	
document-source-application-version*	text(127)	y	y	y	MAY	MAY	§3.2.5.2	
document-source-os-name*	name(40)	y	y	y	MAY	MAY	§3.2.5.3	
document-source-os-version*	text(40)	y	y	y	MAY	MAY	§3.2.5.4	
document-format*	mimeMediaType	y	y	y	MUST	MUST	§3.2.5.5	
document-format-device-id*	text(127)	y	y	y	MAY	MAY	§3.2.5.6	
document-format-version*	text(127)	y	y	y	SHOULD	MUST	§3.2.5.7	
document-natural-language*	naturalLanguage	y	y	y	MAY	MAY	§3.2.5.8	
document-format-version*	text(127)	y**	y**	y	MAY	MAY	§3.2.6	
document-message*	text(MAX)	y**	y**	y	MAY	MAY	§3.2.7	
document-name*	name(MAX)	y**	y**	y	MAY	MUST	§3.2.8	
document-natural-language*	naturalLanguage	y**	y**	y	MAY	MAY	§3.2.9	
ipp-attribute-fidelity	boolean	y	y	-	MAY	MUST	§3.1.1, 	
job-mandatory-attributes	1setOf type2 keyword	y	y	-	MAY	MAY	§3.1.2	

3.1	Operation attributes for Job Creation operations only
This section defines additional operation attributes that the client MAY supply in Job Creation operations (Print-Job, Print-URI, and Create-Job) and Validate-Job, but not in Send-Document or Send-URI operations.
3.1.1	ipp-attribute-fidelity (boolean) ([rfc2911] section 3.2.1 and 15)
This REQUIRED Operation attribute specifies the policy for the Printer to use (see [rfc2911] §3.2.1.1) when the client supplies unsupported Job Template attributes or values in a Job Creation operation.  The value ‘true’ indicates that total fidelity to client-supplied Job Template attributes and values is required for this Job Creation operation.  If the client supplies the value ‘false’ or omits the attribute, then the Printer MUST accept the Job Creation operation.  
The Printer MUST copy this attribute to the corresponding (new) Job Description attribute (see section 5.1.2). 
3.1.1.1	Why there are no “ipp-attribute-fidelity-default” and “ipp-attribute-fidelity-supported” attributes
Because [rfc2911] defines the default value to be ‘false’ there is no point to define an “ipp-attribute-fidelity-default” Printer Description attribute.  Because [rfc2911] REQUIRES a Printer to support the “ipp-attribute-fidelity” Operation attribute there is no need for an “ipp-attribute-fidelity-supported” Printer Description attribute.
3.1.2	job-mandatory-attributes (1setOf type2 keyword)
This OPTIONAL Operation attribute permits the client to identify which Job Template attributes the Printer MUST support in this Job Creation request in order to accept the Job.  The Printer MUST reject this Job Creation operation if the client supplies an unsupported Job Template attribute or value in the request that is also identified in this list.  The client MAY supply the “job-mandatory-attributes” Operation attribute in a Job Creation operation or Validate-Job operation and MUST NOT supply this attribute in any other operation.  If the Printer supports the "job-mandatory-attributes" Operation attribute, the Printer MUST support this attribute in all Job Creation operations that it supports and in the Validate-Job operation.  
If the client supplies the “job-mandatory-attributes” Operation attribute and the ‘ipp-attribute-fidelity” Operation attribute with the ‘true’ value, the Printer MUST ignore the “job-mandatory-attributes”, since the client is requesting that all of the supplied Job Template attributes in the Job Creation request MUST be supported in order for the Printer to accept the Job.
The Printer MUST copy this attribute to the corresponding “job-mandatory-attributes” Job Description attribute (see section 5.1.3) for auditing and trouble-shooting purposes.
The values of the “job-mandatory-attributes” attribute are the keyword attribute names that identify Job Template attributes; for example, ‘job-hold-until’, ‘job-finishings’ (see section 4.1.3.3), ‘copies’ and ‘media’.  In order to identify a member attribute of a collection attribute, the keyword names of both the collection attribute and the member attribute are given separated by a period (.) character.  For example, to make the “media” attribute of the “cover-front” collection attribute mandatory, supply the keyword value: ‘cover-front.media’.  
The Printer MUST accept any keyword values for the “job-mandatory-attributes” attribute itself whether or not the corresponding Job Template attributes are supported by the Printer and MUST NOT return any unsupported keywords in the Unsupported Attributes Group in the response.  If the client supplies this "job-mandatory-attributes" Operation attribute in a Job Creation operation with values that represent Job Template attributes that the Printer doesn't support, the Printer MUST otherwise accept the attribute anyway.  The Printer MUST reject this Job Creation only if the client actually supplies any of the identified Job Template attributes that the Printer doesn't support.  Because the Printer doesn't reject when the "job-mandatory-attributes" Operation attribute has unsupported attribute keyword names, the client MAY supply all of the attribute keyword names that the client supports without having to tailor the list to the particular Printer to which the client is submitting the Job Creation operation, thereby simplifying client use of this attribute.
Note:  The “job-mandatory-attributes” has nothing to do with whether the Printer overrides the PDL with the identified Job Template attributes (see [rfc2911] sections 4.4.28 and 15).
3.1.2.1	Why there are no “job-mandatory-attributes-default” and “job-mandatory-attributes-supported” Printer Description attributes
By definition, omission of the “job-mandatory-attributes” Operation attribute (and the “ipp-attribute-fidelity” Operation attribute with a ‘false’ value or omitted) means that the client is requesting that none of the supplied Job Template attributes need to be supported in order to accept the Job, i.e., the Printer MUST NOT reject the job because of any unsupported Job Template attributes.  So the default is an empty list, so there is no point to have a “job-mandatory-attributes-default” Printer attribute. 
By definition, the client can supply any Job Template attribute in the value list of the “job-mandatory-attributes” Operation attribute, whether or not the Printer actually supports that Job Template attribute.  Therefore, it is not possible to have a “job-mandatory-attributes-supported” list, since all possible keywords would have to be expressed. 
Note: the client MAY query the Printer’s “job-creation-attributes-supported” (see [ippsave] section 7.1) and “document-creation-attributes-supported” (see [pwg5100.5] section 10.1) to see which Job Template and Document Template attributes the Printer actually supports.
3.2	Operation attributes for both Job and Document Creation operations
This section defines the semantics for the Operation attributes that a client MAY supply in a Job Creation operation (Print-Job, Print-URI, Create-Job) or a Document Creation operation (Print-Job, Print-URI, Send-Document and Send-URI).  Note: Print-Job and Print-URI are both Job Creation and Document Creation operations.  
3.2.1	compression (type2 keyword)
This REQUIRED Operation attribute identifies the compression used for the Documents in this Job and is defined in [rfc2911] section .  It is included in this specification, because this specification defines the corresponding “compressions-supplied” Job Description attribute (see section 5.2.1.
3.2.2	document-charset (charset)
This OPTIONAL Operation attribute identifies the charset of the Document Content.  This Operation attribute is intended to be supported by Printers that support a document-format in which the charset may be ambiguous in the Document content, such as ‘application/vnd.hp-PCL’, where the charset escape sequence MAY be omitted from the data.
If a client supplies the “document-charset” Operation attribute in a Document Creation operation with a value that the Printer doesn’t support, the Printer MUST reject the job and return the status code: ‘client-error-charset-not-supported’ (see [rfc2911] section 3.1.4.14), since the interpretation of the content will be mis-understood by the Printer.
The standard values for these attributes are Internet Media types (sometimes called MIME types).  For further details see the description of the 'mimeMediaType' attribute syntax in [rfc2911] section 4.1.9.  
The Printer MUST support this attribute if it supports a document format for which the Document Content can be ambiguous with respect to the charset being used to encode the data.  For example, the ‘application/vnd.hp-PCL’ MAY omit the charset escape sequence.  Although [rfc2854] strongly RECOMMENDS that ‘text/html’, include a “; charset=charset’ parameter in the MIME type itself (that is, explicitly in the value of the “document-format” attribute), often the charset= parameter is not present in the MIME type and the Printer MUST assume a charset.  Thus a Printer that supports the text/html MIME type MUST support the “document-charset” operation attributes.  Also many text files use the various 8-bit ISO 8859 charsets in which the lower half is US-ASCII and the upper half is various Latin sets (about 8 or 9), Greek, Cyrillic, Hebrew, and Arabic.  Shift JIS is another example where the left half is US-ASCII, but the right half can be one of a number of things.  But if the data doesn't contain the charset escape sequences, this attribute can help the Printer know what the charset is in the Document.  Such document formats are called “charset-ambiguous” document formats.  Finally, even though [rfc2046] REQUIRES the “; charset=” MIME type parameter if the file contains other than US-ASCII, in practice, the “; charset=” MIME type parameter is often omitted, thus making ‘text/plain’ a charset-ambiguous document format.  See the discussion in [rfc2911] section 4.1.9 and [rfc2046].
The Printer MAY also check the Document content while processing to see that the document data meets the coding requirements for the supplied charset.  If the data contains something that is outside the charset encoding, the Printer MUST either (1) hold the job or (2) abort, and SHOULD NOT continue printing square boxes for encoded characters that are outside the charset supplied by the client.
Many other document formats, such as ‘application/postscript’ and ‘application/pdf’, are not charset-ambiguous, so that Printers that support only such formats MAY omit support of the “document-charset” Operation/ Description attributes.
If the Printer supports the "document-charset" Operation attribute, it MUST also support the corresponding "document-charset-default" and "document-charset-supported" Printer Description attributes as well and vice versa (see sections 7.1 and 7.2).   
3.2.3	document-digital-signature (type2 keyword)
This OPTIONAL Operation attribute identifies the technology of digital signature in the Document content.  
If a client supplies this “document-digital-signature” Operation attribute in a Document Creation operation with a value that the Printer doesn’t support, the Printer MUST perform one of the following actions depending on implementation:  (1) reject the request OR (2) accept the request, set the Job's "job-state-reasons" attribute to 'digital-signature-type-not-supported' (see section 6.1), and either (a) put the Job in the 'pending-held' state or (b) process the job ignoring the attribute.  See section 3 above for more details. 
If the Printer supports this attribute and the value supplied by the client, the Printer MAY verify the signature according to the rule for that signature format and “document-format”.  If the signature does not verify, then the Printer MUST perform one of the following actions depending on implementation (which MAY depend on the “document-format” and a site-established policy): 
1.	ignore the signature (and MAY indicate on the printed output some how) and MUST set the Job's "job-state-reasons" Job Description attribute with the 'digital-signature-did-not-verify' value (see section 6.1).
2.	put the job on hold and wait for human intervention and MUST set the Job's "job-state-reasons" Job Description attribute with the 'job-digital-signature-wait' and 'digital-signature-did-not-verify' values (see section 6.1), OR
3.	abort the job depending on implementation and/or site configuration and MUST set the Job's "job-state-reasons" Job Description attribute with the 'job-aborted-by-system' and 'digital-signature-did-not-verify' values (see section 6.1).
Different PDLs have different techniques of embedding the signature.  If the Printer supports the "document-digital-signature" attribute and the supplied “document-format”, the Printer MUST accept the document.  However, if the Printer either doesn’t support the value of the “document-digital-signature” Operation attribute or doesn’t support the technique used by the supplied “document-format” attribute, the Printer MUST either (1) ignore the signature or (2) put the job on hold and wait for human intervention, depending on implementation.  If the Printer doesn’t support the supplied value, the Printer MUST return the “document-digital-signature” attribute with its value as unsupported in the Unsupported Attributes group as specified in [rfc2911] section 3.1.7.  
The following standard keyword values are defined: 
'dss':  Digital Signature Standard (DSS) [dss].
‘none’:  There is not a digital signature in the Document content.  If this attribute is supported, the ‘none’ value MUST be implemented but MAY be removed by the administrator.
'pgp':  PGP Message Exchange Formats [rfc1991].
‘smime':  Enhanced Security Services for S/MIME [rfc2634].
'xmldsig'  XML Digital Signature [xmldsig].
3.2.4	document-format (mimeMediaType)
This REQUIRED Operation attribute (see [rfc2911] section 3.2.1.1) indicates the document format of the supplied Document Content.  If a client supplies the “document-format” Operation attribute with a value that the Printer doesn’t support, the Printer MUST reject the job and return the status code ‘client-error-document-format-not-supported’ (see [rfc2911] section 3.1.4.11), since the Printer cannot process the data.
The standard values for this attribute are Internet Media types (sometimes called MIME types).  For some MIME types, such as ‘text/plain’ [rfc2046], the “; charset=” parameter is defined which specifies the charset of the Document content.  The Printer MUST support the charset MIME parameter as well as the “document-charset” Operation attribute (section 3.2.2) if the Printer supports any text MIME type, such as ‘text/plain’ or ‘text/html’.  For further details see the description of the 'mimeMediaType' attribute syntax in [rfc2911] section 4.1.9 and [rfc2046] and the “document-charset” Operation attribute (section 3.2.2).  
Many printer languages in the Printer MIB do not have a MIME type registered with IANA.  It is the intent of the PWG to registers all of the Printer MIB v2 XXX Printer Languages as 'application/vnd.PWG-XXX'.  If a Printer Language already has a registered MIME Media type or gets a registration in the future, then that MIME Type MUST be used in preference to the 'application/vnd.PWG-XXX' MIME Type.  For example, PostScript has the MIME Media type: 'application/postscript' and PCL has the MIME Media Type: 'application/vnd.HP-PCL, so those MIME Media types MUST be used instead of 'application/vnd.PWG-PS' and 'application/vnd.PWG-PCL'.  For example, the NEC NPDL printer language from the Printer MIB does not have a MIME type registered with IANA.  Therefore, the “document-format” = ‘application/vnd.PWG-NPDL’ MUST be used.
See also the “document-format-version” Operation attribute in section 3.2.6 and the “document-format-details” Operation attribute in section 3.2.5.
3.2.5	document-format-details (1setOf collection)
This OPTIONAL Operation attribute supplied in Document Creation operations summarizes the details of the Document content, including any files contained in the Document.  This Operation attribute is intended to be supported by Printers that support a packaging document format, such as ‘application/zip’ or ‘multipart/related’, in order to detail the contents.  However, this Operation attribute MAY be used with any document format.  See Table 6 for a list of the member attributes along with the client and Printer conformance requirements.  
All member attributes, if supplied, MUST have contents.  The value MUST NOT be omitted.
If a Printer supports a packaging MIME type, such as ‘multipart/related’ or ‘application/zip’, the Printer MUST support this “document-format-details” Operation attribute.  If a Printer does not support a packaging MIME type, it MAY omit support of the “document-format-details” Operation attribute and Description attribute.  The purpose of the “document-format-details” Operation attribute is to describe the details of the document format or formats in the supplied Document, including the packaging format itself, so that the Printer knows what to expect.  
If a client supplies the “document-format-details” Operation attribute in a Document Creation request with member attributes and/or values that the Printer doesn’t support, the Printer MUST perform one of the following actions depending on implementation:  (1) reject the request OR (2) accept the request and either (a) put the Job in the 'pending-held' state or (b) process the job ignoring the attribute.  See section 3 above for more details.  However, if the  “document-charset” or the “document-format” member attributes are the ones in question, the Printer MUST reject the request, same as for the “document-charset” and “document-format” Operation attributes (see sections 3.2.2 and 3.2.4) and return the 'client-error-charset-not-supported'  (see [rfc2911] section 13.1.4.16) or the  ‘client-error-document-format-not-supported’ (see [rfc2911] section 13.1.4.11) status-codes, respectively.  
For a packaging format, the “document-format-details” attribute does not provide means to associate each collection value with particular document in the archive file, so it does not provide a “manifest” of the packaging.  One of the packaging collection values MAY describe the packaging format itself, in which case that collection value MUST be the first collection value.  The remaining collection values provide the summary of the details of the contained files in any order.  
There MUST NOT be any duplicate collection values, that is, no collection values with all the same member attribute values;  it’s a set, not a sequence.  So 100 PostScript files with the same details in a .zip file:
(1) MAY have one collection value with the “document-format” member attribute = ‘application/zip’ MIME type value and MAY have additional member attributes that give details about the .zip file itself and 
(2) MUST have one collection value containing a “document-format” member attribute = ‘application/postscript’ and MAY have additional member attributes that give the details about the PostScript files.
If a file in a packaging file is itself a packaging file, the single “document-format-details” (1setOf collection) Operation attribute SHOULD contain the flattened distinct collection values for all files at all nested levels.  Therefore, the “document-format-details” collection attribute is not recursively defined and MUST NOT contain the “document-format-details” attribute as a member attribute. 
Table 6 - "document-format-details" member Operation attributes
Member Attribute Name	Attribute Syntax	Client supplies	Printer Support	Member Attribute Section	Top Level Attribute Section	
document-source-application-name	name(MAX)	MAY	MAY	3.2.5.1	N/A	
document-source-application-version	text(127)	MAY	MAY	3.2.5.2	N/A	
document-source-os-name	name(40)	MAY	MAY	3.2.5.3	N/A	
document-source-os-version	text(40)	MAY	MAY	3.2.5.4	N/A	
document-format	mimeMediaType	MUST	MUST	3.2.5.5	3.2.4	
document-format-device-id	text(127)	MAY	MAY	3.2.5.6	N/A	
document-format-version	text(127)	SHOULD	MUST	3.2.5.7	3.2.6	
document-natural-languages	1setOf naturalLanguage	MAY	MAY	3.2.5.8	3.2.9	

The client can determine which member attributes of the “document-format-details” are supported by querying the Printer’s “document-format-details-supported” (1setOf type2 keyword) Printer Description attribute (see section 7.6).  
Table 6 shows that three of the member attributes also have comparable top level Operation attributes defined with the same names.  See the sections listed in the rightmost column.  These three high level attributes have corresponding “xxx-default” and “xxx-supported” Printer Description attributes.  These values are also for use with the corresponding three member attributes.  The remaining member attributes do not have any corresponding “xxx-default” and “xxx-supported” Printer Description attribute.  
If a client supplies this “document-format-details” Operation attribute with a member attribute with a value that the Printer doesn’t support, the Printer MUST perform one of the following actions:  (1) reject the request OR (2) accept the request and either (a) put the Job in the 'pending-held' state or (b) process the job ignoring the attribute.  See section 3 above for more details. 
3.2.5.1	document-source-application-name (name(MAX))
This OPTIONAL member Operation attribute identifies the application that generated the document.  The value MUST be all lowercase in order to facilitate matching.  The version number MUST NOT be included (see the "document-source-application-version" attribute).  Examples: “photoshop”, “microsoft word”, “unknown”.
3.2.5.2	document-source-application-version (text(127))
This OPTIONAL member Operation attribute identifies the version number of the application that created the document.  The value MUST be all lowercase in order to facilitate matching.  The intent of this attribute is for purposes of affecting the interpreting by the Printer for any formats for which the source application version might have different semantics.  Examples:  
“8.1 (4331)” for Winzip, “5.0.5 10/26/2001” for Acrobat, “2000 (9.0.4119 sr-1)” for Microsoft Word
If the client omits this member attribute, that matches with any version.  Similarly, the Printer’s member attribute MAY be omitted or be a zero length string to indicate any.
3.2.5.3	document-source-os-name (name(40))
This OPTIONAL member Operation attribute identifies the name of the operating system on which the document was generated.  Valid values are the operating system names defined in the IANA Operating System name registry [os-names] with the version number portion removed (see the “document-source-os-version” attribute).  IANA Operating System Names consist of up to 40 uppercase US-ASCII letters, hyphen (“-“), period (“.”), and slash (“/”) characters.  The value MUST be all lowercase in order to facilitate matching.  
Possible example IANA OS Registry values: ‘linux’, ‘macos’, ‘sun-os’, ‘unix’, “unknown”, ‘windows‘. 
ACTION ITEM:  Get Sun to register SOLARIS with IANA.(Tom H)
3.2.5.4	document-source-os-version (text(40))
This OPTIONAL member Operation attribute identifies the version of the operating system on which the document was generated.  Valid values include the version portion of any of the operating system names defined in the IANA Registry [os-names].  The value MUST be all lowercase in order to facilitate matching.  The value MUST NOT include the name portion of the registered OS name (see “document-source-os-name” attribute).   
Possible example values for the indicated “document-source-os-name” value are:  
for ‘linux’:  ‘1.0’, ‘1.2’, ‘2,0’, ‘2.2’, ‘2.4’
for ‘unix’:  ‘bsd’, ‘v’, ‘v.1’, ‘v.2’, ‘v.3’, ‘pc’
for ‘windows’:  ‘95’, ‘98’, ‘ce’, ‘nt’, ‘nt-2’, ‘nt-3’, ‘nt-3.5’, ‘nt-3.51’, ‘nt-4’, ‘nt-5’ (windows 2000), 
ACTION ITEM:  Get Microsoft to register NT-5.1 (maybe NT-5.2) with IANA.(Ira M)

3.2.5.5	document-format (mimeMediaType)
This REQUIRED member Operation attribute identifies the document format (see [rfc2911] §3.2.1.1) of the collection value of which it is a member.  The client MUST supply and the Printer MUST support this member attribute in each collection value.  The values for this member attribute are Internet Media types (sometimes called MIME types) and have the same values and semantics as for the top level “document-format” Operation attribute with the same name (see section 3.2.4 for the semantics).  
3.2.5.6	document-format-device-id (text(127))
This OPTIONAL member Operation attribute identifies the type of device for which the document was formatted, including manufacturer and model.  This attribute is intended to identify document formats that are not portable, e.g., PDLs that are device dependent.  The value of this variable MUST exactly match the IEEE 1284-2000 Device ID string (see [IEEE1284] clause 6), except the length field MUST NOT be specified.  See the Microsoft Universal Plug and Play [upnp] section 2.2.6 DeviceId parameter for details and examples.  Here is an example showing only the required fields for a PostScript document: 
MANUFACTURER:ACME Co.;COMMAND SET:PS;MODEL:LaserBeam 9;
3.2.5.7	document-format-version (text(127))
This REQUIRED member Operation attribute identifies the level or version of the document format identified by the “document-format” member attribute.  The client MAY supply and the Printer MUST support this member attribute if the Printer supports the “document-format-details” Operation attribute.  The semantics and supported values of this “document-format-version” member attribute MUST be the same as for the top level “document-format-version” Operation attribute with the same name (see section 3.2.6 for the semantics). 
3.2.5.8	document-natural-language (1setOf naturalLanguage)
This OPTIONAL member Operation attribute specifies the natural language(s) of the collection value of which it is a member.  The values for this attribute are natural language codes (with optional country codes) and have the same values and semantics as for the top level “document-natural-language” (naturalLanguage) operation attribute with the same name (see section 3.2.9 for the semantics).  If the document contains multiple natural languages, then the first value MUST be the primary language of the document. 
3.2.6	document-format-version (text(127))
This OPTIONAL Operation attribute identifies the level or version of the document format of the Document content identified by the “document-format” Operation attribute (section 3.2.4).  
If the client supplies this “document-format-version” Operation attribute, the client MUST also supply the “document-format” Operation attribute (section 3.2.4), so that the Printer does not need to parse the “document-format-version” string in order to determine the document format and version.
If a client supplies this “document-format-version” Operation attribute with a value that the Printer doesn’t support as indicated by the Printer's "document-format-version-supported" attribute (see section 7.8), the Printer MUST perform one of the following actions, depending on implementation:  (1) reject the request OR (2) accept the request and either (a) put the Job in the 'pending-held' state or (b) process the job ignoring the attribute.  See section 3 above for more details. 
The defined values are taken from the Printer MIB [rfc1759] langTC values (after removing the “lang”) used in the prtInterpreterLangFamily and the prtInterpreterLangLevel attributes (SNMP calls them “objects”) separated by the “/” character.  If there is no version, just the langTC prefix without the “/” is used.  Note: the Printer MIB prtInterpreterLangVersion attribute is not used, since no standard values are given in the Printer MIB.  
The short first field before the “/” character are unique, so that the version values are self-identifying so that all the versions for all document formats can be combined into a single list for the Printer’s “document-format-version-supported” Printer attribute.  The first field also tends to be the acronym for the document format and often is also the file name extension registered with IANA.  The Printer MIB shows the first field in uppercase for readability.  However, the Printer MUST perform case-insensitive matching of supplied values with supported values.  If the common acronym includes a “/”, such as TIFF/IT, the “/” is changed to “-“ so that the first field ends with the first “/.”
Example values:
‘PS/3’:  For Postscript level 3 [rfc1759].
‘PCL/5e’:  For PCL 5e [rfc1759].
‘PDF/1.4’:  For PDF version 1.4 [pdf]
‘PDF/X-1a:2001’:  For PDF/X-1a [iso15930]
‘DCS/2.0’  For Document Color Separation (DCS), version 2.0.  [dcs2.0]
‘TIFF-IT/FP:1998’:  TIFF/IT [iso12639] - Full Page - baseline.
‘TIFF-IT/CT:1998’:  TIFF/IT [iso12639] - Continuous Tone picture data - baseline
‘TIFF-IT/FP/P1:1998’:  TIFF/IT [iso12639] - Full Page - profile 1
‘TIFF-IT/CT/P1:1998’:  TIFF/IT [iso12639] - Continuous Tone picture data - profile 1
‘Automatic’:  auto sense the format [rfc1759].  Is use in combination with the ‘application/octet-stream’ (see [rfc2911] section 4.1.9.1) value of the “document-format” attribute (section 3.2.4).

3.2.6.1	Why no "document-format-version-default"
There is no “document-format-version-default” since to be meaningful, the default would have to depend on the “document-format”.  Currently, there are no “xxx-default” attributes whose values depend on the value of other attributes.  Thus an implementation is free to supply its own defaults that depend on the “document-format”.
3.2.7	document-message (text(MAX))
This OPTIONAL Operation attribute contains a message from the user to the operator about the Document.  
3.2.8	document-name (name(MAX))
The Printer MUST support this Operation attribute in Print-Job, Print-URI, Send-Document, and Send-URI operations (see [rfc2911 section 3.2.1.1) and MAY support it in the Create-Job operation.  For the Print-Job, Print-URI, and Create-Job operations, the Printer MUST copy the value to the corresponding Job Description attribute.
3.2.9	document-natural-language (naturalLanguage)
This OPTIONAL Operation attribute specifies the primary natural language of the Document content (see [rfc2911] section 3.2.1.1 and section 4.1.8).  
If the client supplies this "document-natural-language" Operation attribute with a value that the Printer doesn’t support, the Printer MUST perform one of the following actions:  (1) reject the request OR (2) accept the request and either (a) put the Job in the 'pending-held' state or (b) process the job ignoring the attribute.  See section 3 above for more details. 
The values MAY include region as well as the language according to [rfc2911 section 4.1.8.  If the document contains more than one language, the value is the first or primary language of the document.  The Printer MAY use this value to select fonts or other Globalization processing.  As indicated in [rfc2911] section 4.1.8, example include:
'en':  for English
'en-us': for US English
'fr':  for French
'de':  for German

4	Job Template attributes
Table 7 lists the new Job Template attributes defined in this specification.  These Job Template attributes can be supplied in the Job Creation operations: Print-Job, Print-URI, and Create-Job operations and the Validate-Job operation.  
Job Template attributes are OPTIONAL for a Printer to support and for a client to supply in a Job Creation request.  If a Printer supports a Job Template attribute, then the Printer MUST copy the supplied attribute to the Job object, so that a client MAY query the attributes in subsequent Get-Job-Attributes/Get-Jobs operations (see [rfc2911] section 4.2).  In addition, as in [rfc2911], for each “xxx” Job Template attribute supported, the Printer MUST support the corresponding “xxx-default” and “xxx-supported” Printer attributes, if defined.
Table 7 - Job Template attributes
Job Template attribute name "xxx"	Attribute Syntax	Printer: Default Value
attribute syntax
"xxx-default"	Printer: Supported Values
attribute syntax
"xxx-supported"	
job-copies	integer(1:MAX)	integer(1:MAX)	rangeOfInteger(1:MAX)	
job-cover-back	collection	collection	1setOf type2 keyword	
cover-type	type2 keyword	-	1setOf type2 keyword	
media	type3 keyword | name(MAX)	-	1setOf (type3 keyword | name(MAX))	
media-col	collection	-	1setOf type2 keyword	
member attributes [pwg5100.3]	See [pwg5100.3]	-	-	
job-cover-front	collection	collection	1setOf type2 keyword	
member attributes - same as job-cover-back	see job-cover-back			
job-finishings	1setOf type2 enum	1setOf type2 enum10	1setOf type2 enum	
job-finishings-col	collection	collection	1setOf type2 keyword	
finishing-template	name(MAX)	-	1setOf name(MAX)	
stitching	collection		1setOf type2 keyword	
stitching-reference-edge	type2 keyword	-	1setOf type2 keyword	
stitching-offset	integer (0:MAX)	-	1setOf (integer(0:MAX) | rangeOfInteger(0:MAX))	
stitching-locations	1setOf integer(0:MAX)	-	1setOf (integer(0:MAX) | rangeOfInteger(0:MAX))	
output-device	name(127)	-	1setOf name(127)	
print-content-optimize	type2 keyword	type2 keyword	1setOf type2 keyword	
4.1	Job Template attributes defined for Job-wide effect in multi-document jobs
This section defines additional Job Template attributes that have Job-wide effect and so are intended for use in the creation of multi-document Jobs.  These Job Template attributes have the "job-" prefix to indicate their Job wide scope.  When clients supply these job-wide Job Template attributes, they MUST supply these attributes in Job Creation and Validate-Job operations only.  Clients MUST NOT supply these Job Template attributes as Document Template attributes in the Send-Document and Send-URI operations ([pwg5100.5]) or in any other operations.  Note that clients do not supply these attributes as member attributes of the "overrides" Job Template attribute (See [pwg5100.6]).
4.1.1	job-copies (integer(1:MAX))
This OPTIONAL Job Template attribute specifies the number of job copies, i.e., with all of the Documents taken together.  Its interpretation is independent of the value of the “multiple-document-handling” Job Template attribute.  See the “copies” Job Template attribute defined in [rfc2911] section 4.2.5 that switches between job copies and document copies depending on the value of the “multiple-document-handling” Job Template attribute ([rfc2911] section 4.2.4).  
For example assume a Job has two documents.  The “copies” attribute has a value of ‘3’ and “job-copies” has a value of ‘2”.  With “multiple-document-handling” set to ‘separate-documents-collated-copies’ the resulting printout would have two sets (i.e. job-copies=2).  The first set would be 3 copies of Document 1 and then 3 copies of Document 2.  The second set would be identical to the first.  If a similar Job was run with “multiple-documents-handling” set to ‘single-document-new-sheet’ it would also produce two set.  In this case however each set would contain Document 1, Document 2, Document 1, Document 2, Document 1, Document 2 (i.e copies=3).  The “copies” and “job-copies” become more interesting when Documents within the Job each have their own value of “copies”.  This can be accomplished via the Document object [pwg5100.5] or Overrides [pwg5100.6].
4.1.1.1	job-copies-default (integer(1:MAX))
This OPTIONAL Job Template Printer attribute specifies the default number of copies for the job as a whole.  The Printer MUST support this attribute if it supports the "job-copies" Job Template attribute.
4.1.1.2	job-copies-supported (rangeOfInteger(1:MAX))
This OPTIONAL Job Template Printer attribute specifies the supported range of the number of copies for the job as a whole.  The Printer MUST support this attribute if it supports the "job-copies" Job Template attribute.
4.1.1.3	job-copies-actual (1setof Integer(1:MAX))
This OPTIONAL Job Description attribute specifies the number of copies that the Printer actually printed for the job as a whole.  The Printer MAY support this attribute even if it does not support the "job-copies" Job Template attribute.
4.1.2	job-cover-back (collection)
This OPTIONAL Job Template attribute specifies the cover for the back of the job, i.e., with all of the Documents taken together and is independent of the value of the “multiple-document-handling” Job Template attribute.  The member attributes are the same as “cover-back” (see [pwg5100.3] section 3.1) and with the same conformance requirements.  However, the “cover-back” Job Template attribute switches between a job back cover and a document back cover depending on the value of the “multiple-document-handling” Job Template attribute ([rfc2911] section 4.2.4).  The “job-cover-back” Job Template attribute is equivalent to “cover-back” with “multiple-document-handling” = ‘single-document-new-sheet’.
4.1.2.1	job-cover-back-default (collection)
This OPTIONAL Job Template Printer attribute specifies the default the cover for the back of the job.  The Printer MUST support this attribute if it supports the "job-cover-back" Job Template attribute.
4.1.2.2	job-cover-back-supported (1setOf type2 keyword)
This OPTIONAL Job Template Printer attribute specified the supported member attributes of the "job-cover-back" Job Template collection attributes.  The Printer MUST support this attribute if it supports the "job-cover-back" Job Template attribute.
4.1.2.3	job-cover-back-actual (1setOf collection)
This OPTIONAL Job Description attribute specifies the "job-cover-back" that the Printer actually used in producing the job.  The Printer MAY support this attribute even if it does not support the "job-cover-back" Job Template attribute.
4.1.3	job-cover-front (collection)
This OPTIONAL Job Template attribute specifies the cover for the front of the job, i.e., with all of the Documents taken together and is independent of the value of the “multiple-document-handling” Job Template attribute.  The member attributes are the same as the “cover-front” Job Template attribute (see [pwg5100.3] section 3.2) and with the same conformance requirements.  However, the “cover-front” Job Template attribute switches between a job front cover and a document front cover depending on the value of the “multiple-document-handling” Job Template attribute ([rfc2911] section 4.2.4).  The “job-cover-front” Job Template attribute is equivalent to “cover-front” with “multiple-document-handling” = ‘single-document-new-sheet’.
4.1.3.1	job-cover-front-default (collection)
This OPTIONAL Job Template Printer attribute specifies the default the cover for the front of the job.  The Printer MUST support this attribute if it supports the "job-cover-front" Job Template attribute.
4.1.3.2	job-cover-front-supported (1setOf type2 keyword)
This OPTIONAL Job Template Printer attribute specified the supported member attributes of the "job-cover-front" Job Template attributes.  The Printer MUST support this attribute if it supports the "job-cover-front" Job Template collection attribute.
4.1.3.3	job-cover-front-actual (1setOf collection)
This OPTIONAL Job Description attribute specifies the "job-cover-front" that the Printer actually used in producing the job.  The Printer MAY support this attribute even if it does not support the "job-cover-front" Job Template attribute.
4.1.4	job-finishings (1setOf type2 enum)
This OPTIONAL Job Template attribute specifies the job finishings, i.e., with all of the Documents taken together.  Its interpretation is independent of the value of the “multiple-document-handling” Job Template attribute.  See the “finishings” Job Template attribute defined in [rfc2911] section 4.2.6 that switches between job finishings and document finishings depending on the value of the “multiple-document-handling” Job Template attribute ([rfc2911] section 4.2.4).  The “job-finishings” Job Template attribute is equivalent to “finishings” with “multiple-document-handling” = ‘single-document-new-sheet’.
4.1.4.1	job-finishings-default (1setOf type2 enum)
This OPTIONAL Job Template Printer attribute specifies the default job finishings.  The Printer MUST support this attribute if it supports the "job-finishings" Job Template attribute.
4.1.4.2	job-finishings-ready (1setOf type2 enum)
This OPTIONAL Job Template Printer attribute specifies the ready job finishings, that is, the job finishings that maybe used without operator intervention.  The Printer MUST support this attribute if it supports the "job-finishings" Job Template attribute.
4.1.4.3	job-finishings-supported (1setOf type2 enum)
This OPTIONAL Job Template Printer attribute specified the supported job finishings values.  The Printer MUST support this attribute if it supports the "job-finishings" Job Template attribute.
4.1.4.4	job-finishings-actual (1setOf type2 enum)
This OPTIONAL Job Description attribute specifies the "job-finishings" that the Printer actually used in producing the job.  The Printer MAY support this attribute even if it does not support the "job-finishings" Job Template attribute.
4.1.5	job-finishings-col (1setOf collection)
This OPTIONAL Job Template attribute specifies the job finishings collection, i.e., with all of the Documents taken together.  Its interpretation is independent of the value of the “multiple-document-handling” Job Template attribute.  See the “finishings-col” Job Template attribute defined in [pwg5100.3] section 3.2 that switches between job finishings collection and document finishings collection depending on the value of the “multiple-document-handling” Job Template attribute ([rfc2911] section 4.2.4).  The “job-finishings-col” Job Template attribute is equivalent to “finishings-col” with “multiple-document-handling” = ‘single-document-new-sheet’.
4.1.5.1	job-finishings-col-default (collection)
This OPTIONAL Job Template Printer attribute specifies the default job finishings collection.  The Printer MUST support this attribute if it supports the "job-finishings-col" Job Template attribute.
4.1.5.2	job-finishings-col-ready (collection)
This OPTIONAL Job Template Printer attribute specifies the ready job finishings collection, that is, the job finishings collection that maybe used without operator intervention.  The Printer MUST support this attribute if it supports the "job-finishings-col" Job Template attribute.
4.1.5.3	job-finishings-col-supported (1setOf type2 keyword)
This OPTIONAL Job Template Printer attribute specified the supported member attributes of the "job-finishings-col" Job Template collection attribute.  The Printer MUST support this attribute if it supports the "job-finishings-col" Job Template attribute.
4.1.5.4	job-finishings-col-actual (1setOf collection)
This OPTIONAL Job Description attribute specifies the "job-finishings-col" attributes that the Printer actually used in producing the job.  The Printer MAY support this attribute even if it does not support the "job- finishings-col " Job Template attribute.
4.2	Job Template attributes that may have Document Scope and Override Scope
This section defines additional Job Template attributes that are not restricted to job-wide scope and MAY be supplied in Document Creation operations and in the “override” attribute to override at the Sheet level (see section 9). When supplied in a Document Creation operation, these Job Template attributes describes the Document explicitly.  This specification does not define corresponding Document Description attributes, since this specification does not include or depend on a Document object.
4.2.1	output-device (name(127))
This OPTIONAL Job Template attribute specifies the name of the target output device for a Printer that fans-out to multiple devices (see [rfc2911] section 2.1).  This allows the client to control which output device the Printer selects.  If this Job Template attribute is omitted, the Printer selects whichever output device seems best for the job in an implementation dependent manner.  Note that “output-device” can be applied at the Job, Document, Document-Copy or Page level.   
4.2.1.1	Why there is no output-device-default
There is no “output-device-default” Printer attribute.  A Printer MAY have a dynamic scheduling algorithm to assign jobs to output devices, in which case the “output-device-supported” Printer attribute would have multiple values.  A client that did not supply an explicit “output-device” is asking the Printer to choose the most appropriate output device(s) (i.e. physical printer(s)) to print the Job.  If “output-device-default” was allowed there would be no way to request this since the default output device would be assigned when it was not supplied by the client.  If the Printer does not have a dynamic scheduling algorithm to assign Jobs to output devices, the Printer would populate “output-device-supported” with only one value.
4.2.1.2	output-device-supported (1setOf name(127))
This OPTIONAL Job Template Printer attribute specifies the supported “output-device” values.  The Printer MUST support this attribute if it supports the "output-device" Job Template attribute.
4.2.1.3	output-device-actual (1setOf name(127))
This OPTIONAL Job Description attribute specifies the output-device(s) that the Printer actually used to produce the job [ippact].  The Printer MAY support this Job Description attribute even if it does not support the "output-device " Job Template attribute.  The “output-device-actual” attribute MAY have more than one value, while the [rfc2911] “output-device-assigned” Job Description attribute has only a single name(127) value. 
For example printers that automatically splits Jobs between OutputDevices can indicate the location of the pages of the Job via this element   This can occur if the Printer automatically routes Pages to the appropriate output device or “output-device” is included in an “override” or applied to individual Documents within the Job. 
4.2.2	   print-content-optimize (type2 keyword)
ThisOPTIONAL Job Template attribute refines the value specified by the “print-quality” ([rfc2911] §4.2.13) attribute.  The “print-quality” attribute specifies the level of quality.  The “print-content-optimize” attribute directs the type of optimization/processing that will be performed on the Document content.  It does not necessarily mean the value describes the content.  
The standard keyword values are:
•	'photo': optimize for photographic clarity
•	'graphics': optimize for graphic clarity such as graphs and line drawings
•	'text': optimize for text clarity
•	'text-and-graphics': optimize for both text and graphic clarity
4.2.2.1	print-content-optimize-default (type2 keyword)
This OPTIONAL Job Template Printer attribute specifies the default “print-content-optimize” value.  The Printer MUST support this attribute if it supports the "output-device" Job Template attribute.
4.2.2.2	print-content-optimize-supported(1setOf type2 keyword)
This OPTIONAL Job Template Printer attribute specifies the supported “print-content-optimize” values.  The Printer MUST support this attribute if it supports the "output-device" Job Template attribute.
4.2.2.3	print-content-optimize-actual (1setOf type2 keyword)
This OPTIONAL Job Description attribute specifies the “print-content-optimize “(s) that the Printer actually used to produce the job [ippact].  The Printer MAY support this Job Description attribute even if it does not support the " print-content-optimize " Job Template attribute.  Note: The “print-content-optimize -actual” attribute MAY have more than one value, while the “print-content-optimize” Job Description attribute has only a single value.

5	Job Description attributes
This section defines the new Job Description attributes defined in this IPP specification.  Job Description attributes are Job object attributes that are filled in by the Printer.  Some Job Description attribute values are supplied by the client in the Job operation using corresponding Operation attributes as indicated in the “Set by” column.  The Printer MUST NOT support modification of any of these Job Description attributes using the Set-Job-Attributes operation ([rfc3380]).
This section divides Job Descriptions into two subsections:  Section 5.1 contains Job Description attributes that describe the Job as a whole and Section 5.2 contains Job Description attributes that are defaults for the Document(s) in the Job.  The following legend is used in the tables in both sections:
Legend:		
IPP Attribute Syntax	the attribute syntax (see [rfc2911] section 4.1).	
Set by	indicates whether the value is set by the client or Printer in the Job Creation operation:
client - means that the Printer MUST populate this Job Description attribute by copying from the corresponding Operation attribute that the client MAY supply in the Job Creation operation.   See Table 5 for the corresponding Operation attribute.
Printer - means that the Printer sets the value based on the state of the Printer.	
Printer conformance	indicates MUST or MAY for Printer conformance.	
Reference	references either to a sub-section of this specification or to a section in another specification, where further information about this attributes can be found.	

5.1	Job Description attributes that describe the Job as a whole
This section defines those Job Description attributes that describe the Job as a whole.  See section 5.2 below for those Job Description attributes that are defaults for the Document or Documents in the Job.
Table 8 - Job Description attributes that describe the Job as a whole
Job Description
attribute name	IPP Attribute Syntax	Set by	Printer conformance	Reference	
errors-count	integer(0:MAX)	Printer	MAY	§5.1.1	
ipp-attribute-fidelity	boolean	client	MAY	§5.1.2	
job-mandatory-attributes	1setOf type2 keyword	client	MAY	§5.1.3	
output-device-assigned	name(127)	Printer	MAY	[rfc2911] §4.3.7.2	
warnings-count	integer(0:MAX)	Printer	MAY	§5.1.4	

Most of the existing “job-state” and “job-state-reasons” Job Description attribute values apply equally well to individual documents in a multi-document job (with removal of the ‘job-’ prefix for those that apply to both Job and Document).  Furthermore, the job states are completely service-type neutral, so they can apply to scanning, faxing, and formatting processes as well.  The job state reasons have a number of reasons that are print service specific, but most can apply to other types of service as well.  The reason for separating state from reasons is so that the states can be the fundamental states that most implementations have, while the state reasons can vary depending on the sophistication of the system.  The states are the ones that clients are most likely to base actions upon, and the state reasons are more information, both for programs and people.
5.1.1	 errors-count (integer(0:MAX))
This OPTIONAL Job Description attribute counts the number of errors encountered processing the job as a whole.  An error where some portion of the printed output is not present, such as a glyph encountered which isn't in the Printer's font or an image in a page was in a format that the Printer didn't support, though the Printer did support the overall document format. 
5.1.2	ipp-attribute-fidelity (boolean)
This OPTIONAL Job Description attribute indicates the value of the corresponding “ipp-attribute-fidelity” Operation attribute ([rfc2911] section 3.2.1.1) that the client supplied in the Job Creation operation.  This Job Description attribute has no effect on the processing of the job once the Job Creation operation has been accepted.  However, this attribute does provide an audit capability to the user and service desk for comparing unexpected printed results with what was submitted.
5.1.3	job-mandatory-attributes (1setOf type2 keyword)
This OPTIONAL Job Description attribute indicates which Job Template attributes that the client required that the Printer Support in order to accept the Job Creation request.  The Printer populates this attribute with the value of the corresponding “job-mandatory-attributes” Operation attribute (see section 3.1.2) supplied by the client in the Job Creation operation.  This Job Description attribute has no effect on the processing of the job once the Job Creation operation has been accepted14.   However, this Job Description attribute does provide an audit capability of the Job object in the Job History (see [rfc2911] section 4.3.7.2) to the user and service desk for comparing unexpected printed results with what was submitted.  See section  3.1.2 for additional details of the semantics of this “job-mandatory-attributes” Operation attribute that are not repeated here.
5.1.4	warnings-count (integer(0:MAX))
This OPTIONAL Job Description attribute counts the number of warnings encountered processing the job as a whole.  A warning is where no information is lost, but the appearance of the printed output MAY not be as expected.
5.2	Job Description attributes that are defaults for the Document(s) in the Job
This section defines those Job Description attributes that provide defaults for the Document Or Documents in the Job.  See section 5.1 above for those Job Description attributes that describe the Job as a whole.
5.2.1	compression-supplied (type3 keyword)
This REQUIRED Job Description attribute specifies the default compression used to represent the document(s) in the Job.  The Printer sets this Job Description attribute from the corresponding Operation attribute (see [rfc2911] §3.2.1.1) supplied by the client in the Job Creation operation. 
5.2.2	document-charset-supplied (charset)
This OPTIONAL Job Description attribute specifies the default charset used to represent this document (see section 3.2.2).  The Printer sets this Job Description attribute from the corresponding Operation attribute supplied by the client in the Job Creation operation.
5.2.3	document-digital-signature-supplied (type2 keyword)
This OPTIONAL Job attribute specifies the default digital signature technology used in the Document content.  The Printer sets this Job Description attribute from the corresponding “document-digital-signature” Operation attribute (see section 3.2.3 for the semantics), if supplied by the client in the Job Creation operation.  If a Printer supports the “document-digital-signature” Operation attribute, the Printer MUST support this “document-digital-signature” Job Description attribute.
5.2.4	document-format-details-supplied (1setOf collection)
This OPTIONAL Job Description attribute specifies the default details of the document format(s) of the Document Object content.  The Printer sets this Job Description attribute from the corresponding “document-format-details” Operation attribute (see section 3.2.5 for the semantics), if supplied by the client in the Job Creation operation.  If a Printer supports the “document-format-details” Operation attribute, the Printer MUST support this “document-format-details” Job Description attribute.
5.2.5	document-format-supplied (mimeMediaType) 
This REQUIRED Job Description attribute specified the default document format of the Document Object content.  The Printer sets this Job Description attribute from the corresponding “document-format” Operation attribute (see [rfc2911] section 3.2.1.1 and[pwg5100.7]section 3.2.4 for the semantics), if supplied by the client in the Job Creation operation.  
5.2.6	document-format-version-supplied (text(127))
This OPTIONAL Job Description attribute specifies the default version of the document format of the Document Object content.  The Printer sets this Job Description attribute from the corresponding “document-format-version” Operation attribute (see section 3.2.6 for the semantics), if supplied by the client in the Job Creation operation (see section ).  If a Printer supports the “document-format-version” Operation attribute, the Printer MUST support this “document-format-version” Job Description attribute.
5.2.7	document-message-supplied (text(MAX)) 
This OPTIONAL Job Description contains either (1) the default message from the user to the operator about the Document(s) or (2) a message from the operator, system administrator, or "intelligent" process to indicate to the end user the reasons for modification or other management action taken on the Document.  The Printer populates this Job Description attribute from the “document-message” (text(MAX) Operation attribute value (see section 3.2.7) supplied by the client in the Job Creation operation.  
In addition, the user and the operator can set the value of this Job Description attribute explicitly using the Set-Job-Attributes operation (see [rfc3380]).
5.2.8	document-name-supplied (name (MAX)) 
This REQUIRED Job Description attribute specifies the default name of the document (see [rfc2911] §3.2.1.1).  The Printer sets this Job Description attribute from the corresponding Operation attribute (see section 3.2.8) supplied by the client in the Job Creation operation.  
5.2.9	document-natural-language-supplied (naturalLanguage)
This OPTIONAL Job Description attribute specifies the default primary natural language of the Document content (see [rfc2911] section 3.2.1.1).  The Printer sets this Job Description attribute from the corresponding Operation attribute (see section 3.2.9) supplied by the client in the Job Creation operation.  
6	New values to existing attributes
This section defines new values for existing attributes.
6.1	New job-state-reasons(1setOf type2 keyword) Values
The REQUIRED “job-state-reasons” Job Description attributes ([rfc2911] section 4.3.8) provide additional information about the job's current state, i.e., information that augments the value of the job's "job-state" attribute.  
These new values MAY be used with any job state for which the reason makes sense.  When implemented, the Printer MUST return these values when the reason applies and MUST NOT return them when the reason no longer applies whether the value of the Job's "job-state" attribute changed or not.  When the Job does not have any reasons for being in its current state, the value of the Job's "job-state-reasons" attribute MUST be 'none'.
Note: While values cannot be added to the “job-state” attributes without impacting deployed clients that take actions upon receiving "job-state" values, it is the intent that additional "job-state-reasons" values can be defined and registered without impacting such deployed clients.  In other words, the "job-state-reasons" attribute are intended to be extensible.
Table 9 lists the new keyword values for the “job-state-reasons” attribute defined in this specification as indicated in the References column.  In Table 9 the keywords are listed in alphabetic order, while in their descriptions following Table 9, they are listed in the most likely order of occurrence to help understanding.
Table 9 - New "job-state-reasons" attribute values
IPP Job Description attribute name	IPP Attribute Syntax
plus
Values	Printer conformance	Reference	
job-state-reasons	1setOf type2 keyword	MUST	[rfc2911] §4.3.8	
	digital-signature-did-not-verify	MAY	[this spec] §6.1	
	digital-signature-type-not-supported	MAY	[this spec] §6.1	
	errors-detected	MAY	[this spec] §6.1	
	job-digital-signature-wait	MAY	[this spec] §6.1	
	warnings-detected	MAY	[this spec] §6.1	

For ease of understanding, the following value descriptions are presented in the order in which the reasons are likely to occur (if implemented):
'digital-signature-type-not-supported’: One or more documents in the Job contain a digital signature type that is not supported.  Implementation or site policy determines the state of the Job once this condition is detected.
'job-digital-signature-wait': The Job is currently being held because the Job was submitted with a “document-digital-signature” attribute value that is not supported.  
'digital-signature-did-not-verify': One or more documents in the Job contains a digital signature type that is supported (see section 3.2.3), but the signature did not verify when the Printer attempted to verify the signature.
'errors-detected' : If the Printer supports this value, the Printer MUST add this value to “job-state-reasons” when the Printer generates the first error message. That is, a single occurrence of this value is present in the “job-state-reasons” Job Description attribute if the Printer has generated one or more errors.  An error indicates loss of information, such as a page not imaged.  See also the ‘warnings-detected’ value. 
'warnings-detected' : If the Printer supports this value, the Printer MUST add this value to “job-state-reasons” when the Printer generates the first warning message. That is, a single occurrence of this value is present in the “job-state-reasons” Job Description attribute if the Printer has generated one or more warnings.  A warning indicates something did not go as expected, but there was no loss of information.  For example, a font substitution.  See also the ‘errors-detected’ value.
6.2	New media (type 3 keyword | name(MAX)) Values
This section specifies one new value for the "media" Job Template attribute:
'choice_iso_a4_210x297mm_na_letter_8.5x11in':  The client has explicitly allowed a choice of media for the Job.  The Printer MUST choose physical media of size na_letter_8.5x11in (215.9 x 279.4 mm) or iso_a4_210x297mm.  The Printer MUST NOT choose physical media of any other size.  The Printer MAY scale the image to fit, but any scaling MUST be isomorphic scaling and without image content loss, or overflow to additional sheets (so-called tiling), or truncate (and MUST notify the sending user and receiving user by implementation means if truncation is performed, since that is loss of information).  
Rationale:  If printing by reference, the size of the document isn’t known by the submitter.
See Annex A (section 18) for additional requirements for a revision of the PWG IEEE/ISTO 5101.1 Candidate Standard [pwg5101.1] to include the new 'choice_iso_a4_210x297mm_na_letter_8.5x11in' and other choice values.
7	New Printer Description attributes
This section lists the new Printer Description attributes defined in this document.  These Printer attributes are “xxx-supported” and “xxx-default” Printer attributes which indicate the default and supported values that the Printer supports..  The Printer MUST support these Printers attributes if the Printer supports the corresponding “xxx” Operation attributes (see section 3) that the client can supply in a Job Creation or Document Creation request.

The column labels are:
Column Heading	
“Attribute Syntax” 	the attribute syntax (see [rfc2911] section 4.1).  Many “xxx-default” and “xxx-supported” attributes have the ‘collection’ syntax which consists of a number of member attributes.  These member attributes are not listed in this table when they are the same as the corresponding “xxx” attribute in Table 7.  Only those few Printer attribute collection attributes that do not have a corresponding Job Template attributes show the member attributes in this table.  	
		
“Reference” 	the section which defines the semantics of the attribute.	

Table 10 - New Printer Description attributes
Printer Description attribute name	Attribute Syntax	Reference	
document-charset-default	charset	[this-spec] §7.1	
document-charset-supported	1setOf charset	[this-spec] §7.2	
document-digital-signature-default	type2 keyword	[this-spec] §7.3	
document-digital-signature-supported	1setOf type2 keyword	[this-spec] §7.4	
document-format-details-default	collection	[this-spec] §7.5	
document-format-details-supported	1setOf type2 keyword	[this-spec] §7.6	
document-format-version-default	text(127)	[this-spec] §7.7	
document-format-version-supported	1setOf text(127)	[this-spec] §7.8	
document-natural-language-default	naturalLanguage	[this-spec] §7.9	
document-natural-language-supported	1setOf naturalLanguage	[this-spec] §7.10	

7.1	document-charset-default (charset)
This OPTIONAL Printer Description attribute indicates the default charset that the Printer will assume for charset-ambiguous document formats when the client omits the “document-charset” Operation attribute (section 3.2.2).  The Printer MUST support this attribute if it supports the corresponding “document-charset” Operation attribute (see section 3.2.2)
7.2	document-charset-supported (1setOf charset)
This OPTIONAL Printer Description attribute indicates the charsets that the Printer supports in Document Content, that is, supports as values of the “document-charset” Operation attribute (section 3.2.2).  The Printer MUST support this attribute if it supports the corresponding “document-charset” Operation attribute (see section 3.2.2).
7.3	document-digital-signature-default (type2 keyword)
This OPTIONAL Printer Description attribute indicates the default digital signature, if any, that the Printer will assume when the client omits the “document-digital-signature” Operation attribute (section 3.2.3).  The Printer MUST support this attribute if it supports the “document-digital-signature” Operation attribute.
7.4	document-digital-signature-supported (1setOf type2 keyword)
This OPTIONAL Printer Description attribute indicates the digital signature technologies that the Printer supports in Document Contents, that is, supports as values of the “document-digital-signature” Operation attribute (section 3.2.3).  The Printer MUST support this attribute if it supports the “document-digital-signature” Operation attribute.
7.5	document-format-details-default (collection)
This OPTIONAL Printer Description attribute indicates the default document format details that the Printer will assume when the client omits the “document-format-details” Operation attribute (section §3.2.5).  The member attributes are the same as “document-format-details” (see section 3.2.5). The Printer MUST support this attribute, if it supports the “document-format-details” Operation attribute (see section 3.2.5).
7.6	document-format-details-supported (1setOf type2 keyword)
This OPTIONAL Printer Description attribute lists the type2 keyword names of the member attributes of “document-format-details” that the Printer supports.  The Printer MUST support this “document-format-details” (1setOf type2 keyword) Printer Description attribute, if the Printer supports the “document-format-details” (1setOf collection) Operation attribute (see section 3.2.5).  Table 11 lists the type2 keywords defined for use in the “document-format-details-supported” Printer attribute.
Table 11 - Keyword values of "document-format-details-supported Printer attribute
Type2 keyword values	Printer conformance	
document-source-application-name	MAY	
document-source-application-version	MAY	
document-source-os-name	MAY	
document-source-os-version	MAY	
document-format	MUST	
document-format-device-id	MAY	
document-format-version	MUST	
document-natural-language	MAY	

7.7	document-format-version-default (text(127))
This OPTIONAL Printer Description attribute indicates the default document format version that the Printer will assume when the client omits the “document-format-version” Operation attribute (section 3.2.6).  The Printer MUST support this attribute if it supports the “document-format-version” Operation attribute.
7.8	document-format-version-supported (1setOf text(127))
This OPTIONAL Printer Description attribute indicates the document format versions that the Printer supports for Document Contents, that is, supports as values of the “document-format-version” Operation attribute (section 3.2.6).  The Printer MUST support this attribute if it supports the “document-format-version” Operation attribute.
7.9	document-natural-language-default (naturalLanguage)
This OPTIONAL Printer Description attribute indicates the default document natural language that the Printer will assume for Document Content when the client omits the “document-natural-language” Operation attribute ([rfc2911] section 3.2.1.1).  The Printer MUST support this attribute if it supports the “document-natural-language” Operation attribute.
7.10	document-natural-language-supported (1setOf naturalLanguage)
This OPTIONAL Printer Description attribute lists the natural languages supported in any of the supported document formats, that is, it is the union of the natural languages.  The Printer MUST support this attribute if it supports the “document-natural-language” Operation attribute ([rfc2911] section 3.2.1.1). 
8	Status codes
This section defines additional values for the IPP/1/1 operational attribute “status-code”..  The “status-code” attribute provides information on the processing of an operation.  (See [rfc2911] sections 3.1.6.1 and 13)

8.1	server-error-too-many-jobs (0x050B)
The client has attempted to create a Job using any of the Job Creation operations which would exceed the capacity of the Printer.  The client MAY try the unmodified request again at some later point in time with an expectation that the capacity condition may have changed.
8.2	server-error-too-many-documents (0x050C)
The client has attempted to create a Document using any of the Document Creation operations which would exceed the capacity of the Printer for this Job.  The client MAY try the unmodified request again at some later point in time with an expectation that the capacity condition may have changed.
9	Override Scope of Attributes
This section defines the Override Scope of the Job Template attributes.  An Override Scope is only applicable when the Job Template attribute is applied as part of an Override [pwg5100.6].  An Override allows specifying Job Template attributes that apply to a portion of a Job.  The portion of the Job that an Override can apply is referred to as its Scope.  A Scope is the smallest entity to which a Job Template attribute applies.  The order of Scopes is: a Job contains one or more Documents that are printed on one or more Sheets that have up to two Impressions containing one or more Pages.  For a Printer to support a Job Template attribute in an Override, it MUST support the Job Template at the specified Scope.  Furthermore the scope of the attribute MUST be ‘Sheet’, Impression’ or ‘Page’.  Although operation attributes can not be used in an Override, their scope is of interest to determine their applicability in “Send-Document” and “Send-Uri”.  The various possible scopes of Operation and Job Template attributes are:
Job	Job Template Attributes that operate on whole Jobs are not applicable as page overrides.
Document	Job Template Attributes that operate on whole Documents are not applicable as page overrides. (The Document operations “Send-Document” and Send-Iri” as well as the Document Object [pwg5100.5] are used to apply overrides at this level.)
Sheet	Job Template Attributes that operate on whole Sheets, such as “media” and “finishings”.  Attributes with this scope MAY be included in “overrides”. 
Impression	Job Template Attributes that operate on whole Impressions, such as “number-up” or “x-side1-image-shift”. Attributes with this scope MAY be included in “overrides”.
Page	Job Template Attributes that operate on whole Pages, such as “orientation-requested” or “print-quality”.  Attributes with this scope MAY be included in “overrides”.

9.1	Override Scope of Job Template attributes
By definition only the “output-device” and “print-content-optimize” attributes from this specification can be used in an Override.
Table 12  Override Scope for Job Template Attributes
Attribute Name	Override Scope	
job-cover-back 	Job	
job-cover-front 	Job	
job-finishings 	Job	
job-finishings-col 	Job	
job-mandatory-attributes	Job	
output-device 	Sheet	
print-content-optimize	Page	

9.2	Scope for Operation attributes
Although, by definition, Operation attributes do not have an Override Scope,  their Scope is applicable since the attribute may be supplied as an Operation attribute in the Send-Document or Send-URI operations.  In these cases, the Operation attribute overrides the corresponding value supplied at the Job Level in the Create-Job operation.  Table 13 shows the pseudo “Override Scope” of the Operation attributes referenced in this specification.  Note that although these attributes may be used with a Document they can not be used as Overrides.
Table 13  Scope for Operation Attributes
Attribute Name	Scope	
compression-supplied	Document	
document-charset 	Document	
document-digital-signature 	Document	
document-format-details 	Document	
document-format-version 	Document	
document-format-natural-language 	Document	
document-message	Document	
document-name	Document	
document-natural-language	Document	

10	Conformance Requirements
This specification contains a number of independent OPTIONAL attributes.  This section summarizes the conformance requirements for Printers and clients.
10.1	Printer conformance requirements
In order to claim conformance to this specification, 
1.	A Vendor MUST explicitly identify the attributes and values supported by the Printer implementation in any such claim of conformance.  In addition, the Vendor's Printer implementation:
2.	MUST meet the conformance requirements for Printers specified in [rfc2911].
3.	MUST support one or more OPTIONAL Operation attribute according to section 3 and the corresponding Job Description attributes in section 4.1.5.4 and corresponding Printer attributes in section 7. & and combine with #3 
4.	MAY support any Job Template attribute according to section 4.
5.	MAY support any of the "job-state-reasons" values according to section 6.
10.2	Client conformance requirements
In order to claim conformance to this specification, 
1.	A Vendor MUST explicitly identify the attributes and values supported by the client implementation in any such claim of conformance.  In addition, the Vendor's client:
2.	MUST meet the conformance requirements for clients specified in [rfc2911]
3.	MUST support at least one Operation attribute according to section 3 and the corresponding Job Description attributes in section 4.1.5.4 and corresponding Printer attributes in section 7. & combine with #3
4.	MAY support any Job Template attribute according to section 4.
11	Normative References
[dcs2.0]
	Document Color Separation (DCS), version 2.0.  Available at:  http://www.npes.org/standards/Tools/DCS20Spec.pdf 
[dss]
	U.S. Department of Commerce, "Digital Signature Standard (DDS)", Federal Information Processing Standards Publication 186-1 (FIPS PUB 186-1), December 15, 1998.
[iso12639]
	ISO 12639:1998 Graphic technology -- Prepress digital data exchange -- Tag image file format for image technology (TIFF/IT), 1998.
[iso15930]
	ISO 15930-1:2001 Graphic technology -- Prepress digital data exchange -- Use of PDF -- Part 1: Complete exchange using CMYK data (PDF/X-1 and PDF/X-1a), 2001.
[pdf]
	“Adobe Portable Document Format”,  Version 1.4, PDF Reference, Third Edition, Adobe Systems Incorporated, http://www.adobe.com, December 2001.
 [pwg5100.3]
	Ocke, K., Hastings, T., "Internet Printing Protocol (IPP): Production Printing Attributes - Set1", IEEE-ISTO 5100.3-2001, February 12, 2001, ftp://ftp.pwg.org/pub/pwg/standards/pwg5100.3.pdf 
[pwg5100.6]
	Zehler, P., Herriot, R., and K. Ocke,  "Internet Printing Protocol (IPP): Page Overrides ", IEEE-ISTO 5100.6-2003, October 31, 2003, ftp://ftp.pwg.org/pub/pwg/standards/pwg5100.6.pdf  
 [rfc1991]
	D. Atkins, W. Stallings, P. Zimmermann, "PGP Message Exchange Formats", RFC 1991, August, 1996. 
[rfc2046]
	Freed, N., and N. Borenstein, “Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types”, RFC 2046, November 1996.
[rfc2634]
	P. Hoffman, "Enhanced Security Services for S/MIME", RFC 2634, June 1999.
[rfc2854]
	Connolly, D., and L. Masinter, “The 'text/html' Media Type”, RFC 2854, June 2000.
[rfc2911]
	R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, "Internet Printing Protocol/1.1: Model and Semantics", RFC 2911,  September 2000.
[rfc3380]
	Hastings, T., Herriot, R., Kugler, C., and H. Lewis, "Internet Printing Protocol (IPP): Job and Printer Set Operations", RFC 3380, September 2002.
 [upnp]
	Microsoft, “Basic PrintBasic:1.0 Service Template Version 1.01 For Universal Plug and Play Version 1.0”
[xmldsig]
D. Eastlake, J. Reagle, D. Solo "XML-Signature Syntax and Processing", <draft-ietf-xmldsig-core-11.txt>, October 31, 2000.
12	Informative References
[fsg-jt] 
	Free Software Group, Open Printing Job Ticket API, Visit: http://www.freestandards.org/openprinting/
[ippact]
	Carney, D., and H. Lewis, “Internet Printing Protocol (IPP), “-actual” attributes extension”, work in progress, January 31, 2003, ftp://ftp.pwg.org/pub/pwg/ipp/new_ACT/pwg-ipp-actual-attrs-v04-030131.pdf 
[ippfax]
	Moore, P., Songer, G., Hastings, T., McDonald, I., Pulera, J., Carney, D., and Seeler, R., “IPP FAX Protocol”, October 14, 2003, ftp://ftp.pwg.org/pub/pwg/QUALDOCS/wd-ifx10-20031014.pdf .
 [pwg5100.5]
	Hastings, T., and P. Zehler, "Internet Printing Protocol (IPP): Document Object ", IEEE-ISTO 5100.5-2003, October 31, 2003, ftp://ftp.pwg.org/pub/pwg/standards/pwg5100.5.pdf 
 [pwg-psi]
	“Print Service Interface (PSI)”, work in progress to become a PWG IEEE-ISTO standard.  Visit http://www.pwg.org/.
[pwg-sm]
	Zehler, P., Hastings, T., and S. Albright, “PWG Semantic Model”, work in progress to become a PWG IEEE-ISTO standard, October 24, 2003.  ftp://ftp.pwg.org/pub/pwg/Semantic-Model/PWG-Semantic-Model-Latest.pdf 
13	IANA Considerations
This section contains the registration information for IANA to add to the various IPP Registries according to the procedures defined in RFC 2911 [rfc2911] section 6 to cover the definitions in this document.  The resulting registrations will be published in the http://www.iana.org/assignments/ipp-registrations registry.
13.1	Attribute Registrations
The following table lists all the attributes defined in this specification.  These are to be registered according to the procedures in RFC 2911 [rfc2911] section 6.2.  If the attribute has a separate sub-section definition in this specification, that sub-section is listed as the Reference.  This table contains the reference to another specification that completely defines each attribute.   

Attribute Name (attribute syntax)                Reference    Section
----------------------------------               ----------   --------

Job Description attributes:
compression-supplied (type3 keyword)            [pwg5100.7]  5.2.1
document-charset-supplied (charset)             [pwg5100.7] 5.2.2
document-digital-signature-supplied (type2 keyword)
                                                [pwg5100.7] 5.2.3
document-format-details-supplied (1setOf collection)
                                                [pwg5100.7] 5.2.4
  document-source-application-name (name(MAX))  [pwg5100.7]  5.2.4
  document-source-application-version (text(127))
                                                [pwg5100.7]  5.2.4
  document-source-os-name (name(40))            [pwg5100.7]  5.2.4
  document-source-os-version (text(40))         [pwg5100.7]  5.2.4
  document-format (mimeMediaType)               [pwg5100.7]  5.2.4
  document-format-device-id (text(127))         [pwg5100.7]  5.2.4
  document-format-version (text(127)            [pwg5100.7]  5.2.4
  document-natural-language (1setOf naturalLanguage)
                                                [pwg5100.7]  5.2.4
document-format-supplied (mimeMediaType)        [pwg5100.7] 5.2.5
document-format-version-supplied (text(127))    [pwg5100.7] 5.2.6
document-message-supplied (text(MAX))           [pwg5100.7] 5.2.7
document-name-supplied (name(MAX))              [pwg5100.7] 5.2.8
document-natural-language-supplied (naturalLanguage)
                                                [pwg5100.7] 5.2.9
errors-count (integer(0:MAX))                   [pwg5100.7] 5.1.1
job-attribute-fidelity (boolean)                [pwg5100.7] 5.1.2
job-mandatory-attributes (1setOf type2 keyword) [pwg5100.7] 5.1.3
warnings-count (integer(0:MAX))                 [pwg5100.7] 5.1.4

Job Template attributes:
job-copies (integer(1:MAX))                     [pwg5100.7] 4.1.1
job-copies-default (integer(1:MAX))             [pwg5100.7] 4.1.1.1
job-copies-supported (rangeOfInteger(1:MAX))    [pwg5100.7] 4.1.1.2
job-copies-actual (1setOf Integer(1:MAX))       [pwg5100.7] 4.1.1.3
job-cover-back (collection)                     [pwg5100.7] 4.1.2
  <member attributes are the same as “cover-back”[pwg5100.3]  3.1>
job-cover-back-default (collection)             [pwg5100.7] 4.1.2.1
  <member attributes are the same as “cover-back”[pwg5100.3]  3.1>
job-cover-back-supported (1setOf type2 keyword) [pwg5100.7] 4.1.2.2
job-cover-back-actual (1setOf collection)       [pwg5100.7] 4.1.2.3
  <member attributes are the same as “cover-back”[pwg5100.3]  3.1>
job-cover-front (collection)                    [pwg5100.7] 4.1.34.1.2.3
  <member attributes are the same as “cover-front”[pwg5100.3] 3.1>
job-cover-front-default (collection)            [pwg5100.7] 4.1.3.1
  <member attributes are the same as “cover-front”[pwg5100.3] 3.1>
job-cover-front-supported (1setOf type2 keyword)[pwg5100.7] 4.1.3.2
job-cover-front (1setOf collection)             [pwg5100.7] 4.1.3.3
  <member attributes are the same as “cover-front”[pwg5100.3] 3.1>
job-finishings (1setOf type2 enum)              [pwg5100.7] 4.1.4
job-finishings-default (1setOf type2 enum)      [pwg5100.7] 4.1.4.1
job-finishings-ready (1setOf type2 enum)        [pwg5100.7] 4.1.4.2
job-finishings-supported (1setOf type2 keyword) [pwg5100.7] 4.1.4.3
job-finishings-actual (1setOf type2 enum)       [pwg5100.7] 4.1.4.4
job-finishings-col (1setOf collection)          [pwg5100.7] 4.1.5
  <member attributes are the same as “finishings-col”[pwg5100.3] 3.2>
job-finishings-col-default (1setOf type2 enum)  [pwg5100.7] 4.1.5.1
job-finishings-col-ready (1setOf type2 enum)    [pwg5100.7] 4.1.5.2
job-finishings-col-supported (1setOf type2 keyword)
                                                [pwg5100.7] 4.1.5.3
job-finishings-col-actual (1setOf collection)   [pwg5100.7] 4.1.5.4
  <member attributes are the same as “finishings-col”[pwg5100.3] 3.2>
output-device (name(127))                        [pwg5100.7] 4.2.1
output-device-supported (1setOf name(127))       [pwg5100.7] 4.2.1.2
output-device-actual (1setOf name(127))          [pwg5100.7] 4.2.1.3
print-content-optimize (type2 keyword)           [pwg5100.7] 4.2.2
print-content-optimize-default (type2 keyword)   [pwg5100.7] 4.2.2.1
print-content-optimize-supported (1setOf type2 keyword)
                                                 [pwg5100.7] 4.2.2.2
print-content-optimize-actual (1setOf type2 keyword)
                                                 [pwg5100.7] 4.2.2.3

Printer Description attributes:
document-charset-default (charset)                   [pwg5100.7] 7.1
document-charset-supported (1setOf charset)          [pwg5100.7] 7.2
document-digital-signature-default (type2 keyword)   [pwg5100.7] 7.3
document-digital-signature-supported (1setOf type2 keyword)
                                                     [pwg5100.7] 7.4
document-format-details-default (collection)         [pwg5100.7] 7.5
  <member attributes are the same as “document-format-details”
                                                   [pwg5100.7]3.2.5>
document-format-details-supported (1setOf type2 keyword)
                                                     [pwg5100.7] 7.6
document-format-version-default (text(127))          [pwg5100.7] 7.7
document-format-version-supported (1setOf text(127)) [pwg5100.7] 7.8
document-natural-language-default (naturalLanguage)  [pwg5100.7] 7.9
document-natural-language-supported (1setOf naturalLanguage)
                                                     [pwg5100.7] 7.10

Operation attributes:
document-charset (charset)                      [pwg5100.7]  3.2.2
document-digital-signature (type2 keyword)      [pwg5100.7]  3.2.3
document-format-details (1setOf collection)     [pwg5100.7]  3.2.5
  document-source-application-name (name(MAX))  [pwg5100.7]  3.2.5.1
  document-source-application-version (text(127))
                                                [pwg5100.7]  3.2.5.2
  document-source-os-name (name(40))            [pwg5100.7]  3.2.5.3
  document-source-os-version (text(40))         [pwg5100.7]  3.2.5.4
  document-format (mimeMediaType)               [pwg5100.7]  3.2.5.5
  document-format-device-id (text(127))         [pwg5100.7]  3.2.5.6
  document-format-version (text(127)            [pwg5100.7]  3.2.5.7
  document-natural-language (1setOf naturalLanguage)
                                                [pwg5100.7]  3.2.5.8
document-format-version (text(127))             [pwg5100.7]  3.2.6
document-natural-language (naturalLanguage)     [pwg5100.7]  3.2.9
job-mandatory-attributes (1setOf type2 keyword) [pwg5100.7]  3.1.2
13.2	Keyword attribute values
document-digital-signature (type2 keyword)      [pwg5100.7]  3.2.3
document-digital-signature-default (type2 keyword)
                                                [pwg5100.7]  7.3
document-digital-signature-supported (1setOf type2 keyword)
                                                [pwg5100.7]  7.4
  dss                                           [pwg5100.7]  3.2.3
  none                                          [pwg5100.7]  3.2.3
  pgp                                           [pwg5100.7]  3.2.3
  smime                                         [pwg5100.7]  3.2.3
  xmldsig                                       [pwg5100.7]  3.2.3

document-format-details-supported (1setOf type2 keyword)
                                                [pwg5100.7]  7.6
  document-source-application-name              [pwg5100.7]  7.6
  document-source-application-version           [pwg5100.7]  7.6
  document-source-os-name                       [pwg5100.7]  7.6
  document-source-os-version                    [pwg5100.7]  7.6
  document-format                               [pwg5100.7]  7.6
  document-format-device-id                     [pwg5100.7]  7.6
  document-format-version                       [pwg5100.7]  7.6
  document-natural-language                     [pwg5100.7]  7.6

job-cover-back-supported (1setOf type2 keyword) [pwg5100.7]  4.1.2.2
  <same as “cover-back-supported”                [pwg5100.3]   3.1.4
job-cover-front-supported (1setOf type2 keyword)[pwg5100.7]  4.1.2.2
  <same as “cover-front-supported”               [pwg5100.3]   3.1.4
job-mandatory-attributes (1setOf type2 keyword) [pwg5100.7]  3.1.2
  <any Job Template attribute keyword>

job-state-reasons (1setOf type2 keyword)         [rfc2911]     4.3.8
  digital-signature-did-not-verify              [pwg5100.7]  6.1
  digital-signature-type-not-supported          [pwg5100.7]  6.1
  errors-detected                               [pwg5100.7]  6.1
  job-digital-signature-wait                    [pwg5100.7]  6.1
  warnings-detected                             [pwg5100.7]  6.1

media (type2 keyword | name(MAX))                [rfc2911]     4.2.11
  choice_iso_a4_210x297mm_na_letter_8.5x11in    [pwg5100.7]  6.2
print-content-optimize (type2 keyword)          [pwg5100.7]  4.2.2
  photo                                         [pwg5100.7]  4.2.2
  graphic                                       [pwg5100.7]  4.2.2
  text                                          [pwg5100.7]  4.2.2
  text-and-graphic                              [pwg5100.7]  4.2.2

13.3	Enum Attribute Values
The following table lists all the new enum attribute values defined in this document as additional type2 enum values.  These are to be registered according to the procedures in RFC 2911 [rfc2911] section 6.1.

job-finishings (1setOf type2 enum)              [pwg5100.7]4.1.3.3
job-finishings-default (1setOf type2 enum)      [pwg5100.7]4.1.4.1
job-finishings-ready (1setOf type2 enum)        [pwg5100.7]4.1.4.2
job-finishings-supported (1setOf type2 enum)    [pwg5100.7]4.1.4.3
  <enum values are the same as “finishings”>

job-finishings-col-supported (1setOf type2 keyword)
                                                [pwg5100.7]4.1.5.3
  <same as for “finishing-col-supported”         [pwg5100.3] 3.2.5
14	Internationalization Considerations
The internationalization considerations for the extensions defined in this specification are the same as for handling the Job object in [rfc2911].
15	Security Considerations
This specification adds no more security burden on Printer implementations than does [rfc2911].  
16	Contributors
	Don Fullman, Xerox
	Ira McDonald, High North
	Dennis Carney, IBM
17	Author’s Address
	Tom Hastings
	Xerox Corporation
	737 Hawaii St.
	El Segundo, CA 90245

	Phone: 310 333-6413
	Fax:  310 333-5514
	e-mail: hastings@cp10.es.xerox.com

	Peter Zehler
	Xerox Corporation
	MS: 0128-30E
	800 Phillips Road
	Webster, NY 14580-9701

	Phone: 1+585+2658755
	Fax:  
	e-mail: PZehler@crt.xerox.com

18	Annex A: Additional requirements for a revision of the PWG IEEE/ISTO 5101.1 Candidate Standard [pwg5101.1] to add the new ‘choice_xxx’
This section also generalizes the choice mechanism for inclusion in a revision to the PWG IEEE/ISTO 5101.1 Candidate Standard [pwg5101.1].  This specification gives the outline of the proposed addition to [pwg5101.1] for information only, in order to agree to the one new value defined for use with IPPFAX, namely, ‘choice_iso_a4_210x297mm_na_letter_8.5x11in’.
The proposed extension to [pwg5101.1] will have the following requirements:
1.	The ABNF will be extended to define the ‘choice_’ prefix to introduce a list of choices of self describing names.
2.	Following the ‘choice_’ prefix will be two or more fully self describing names, including all three fields.
3.	The order of the list of fully self describing names MUST be in alphabetic order, so that there is only one canonical order for each list of choices.
4.	Printer MAY support dynamic combinations of supported values or MAY support the entire choice value as a conventional keyword which it simply matches for validation purposes.
5.	Printer MUST map the choice value to a particular supported value when selecting the actual media for marking.
6.	If the Printer supports a ‘choice_xxx’ “media” attribute value and the “media-ready”  Printer attribute, the Printer MUST include the ‘choice_xxx’ value in its “media-ready” Printer attribute as well as the currently loaded value(s) when at least one of the members of a choice value is ready.  For example, if ‘iso_a4_210x297mm’ is loaded, then the “media-ready” Printer attribute MUST include the ‘iso_a4_210x297mm’ and the ‘choice_iso_a4_210x297mm_na_letter_8.5x11in’ values.