IPP> MOD - Mandatory attributes

IPP> MOD - Mandatory attributes

Scott Isaacson Scott_Isaacson at novell.com
Tue Apr 22 14:29:46 EDT 1997


I tried to take a stab at which attributes are Mandatory and which are
not.  I started this just as the "conformance" discussion started and so
where I have:


	If Request and Printer:				
	If not Request and Printer:			
	If Request and not Printer:			
	If not Request and not Printer:		
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:


lines which are not filled in, I think they can all be subsumed by the
generic statements about what happens as described in the
conformance section.   Maybe, this should just be a discription of what is
Mandatory and what is not.  Just thought I would kick start the
discussion.  Also, the whole notion of defaults are not brought into this.  I
like Bob's proposal to go back to Printer "default" attributes for all of the
Job/Printer Job Template attributes.


The text below I also posted as 


ftp://ftp.pwg.org/pub/pwg/ipp/new_MOD/att-rev-3.txt


Scott


----------------------------------------------------------


Job Template Attributes


Job Naming Attributes (set by client/end user)


-> job-name
	Job Syntax:					name
	Printer Syntax:					?
	Mandatory Job:					No
	Mandatory Printer:				No
	If Request and Printer:				
	If not Request and Printer:			
	If Request and not Printer:			
	If not Request and not Printer:		
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		


Job Sheet Attributes (set by client/end user)


-> job-sheets
	Job Syntax:				type4 keyword
	Printer Syntax:				setOf type4 keyword
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		
	standard values:			none, default-sheet


Job Notification Attributes (set by client/end user)


-> notification-events 
	Job Syntax:				setOf type2 keyword
	Printer Syntax:				setOf type2 keyword
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		
	standard values:			job-completion, job-canceled,
						job-problems,
printer-problems
						none


-> notification-addresses
	Job Syntax:				setOf URL
	Printer Syntax:				setOf URLScheme
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		
	standard values:			none, mailto, http, ftp


Job Scheduling Attributes (set by client/end user)


-> job-priority
	Job Syntax:				integer(1:00)
	Printer Syntax:				range with default
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		




-> job-hold-until
	Job Syntax:				type2 keyword
	Printer Syntax:				setOf type2 keyword
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		
	standard values:			no-hold, evening, night,
						weekend, second-shift,
						third-shift, none


Job Production Attributes (set by client/end user)


-> multiple-documents-are
	Job Syntax:				type1 keyword
	Printer Syntax:				setOf type1 keyword
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		
	standard values:			single-document,
						separate-documents-
						uncollated-copies,
						separate-documents-
						collated-copies


-> copies
	Job Syntax:				integer(1:2**31-1)
	Printer Syntax:				range with default
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		




-> finishing
	Job Syntax:				setOf type2 keyword
	Printer Syntax:				setOf type2 keyword
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		
	standard values:			none, staple, staple-...,
						saddle-stitch, edge-stitch,
						punch, cover, bind


Document Production Attributes (set by client/end user)


-> media
	Job Syntax:				setOf type2 keyword
	Printer Syntax:				setOf type2 keyword
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		
	standard values:			default, iso-a4, na-letter,
						top, ...


-> number-up 
	Job Syntax:				type3 keyword
	Printer Syntax:				setOf type3 keyword
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		
	standard values:			none, 1, 2, 4




sides 
	Job Syntax:				type2 keyword
	Printer Syntax:				setOf type2 keyword
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		
	standard values:			1-sided, 2-sided-long-edge,
						2-sided-short-edge




-> printer-resolution
	Job Syntax:				type2 keyword
	Printer Syntax:				setOf type2 keyword
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		
	standard values:			res-100, res-200, ...


-> print-quality
	Job Syntax:				type2 keyword
	Printer Syntax:				setOf type2 keyword
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		
	standard values:			draft, normal, high, default




Document Format Attributes (set by client/end user)


-> document-format
	Job Syntax:				type2 keyword
	Printer Syntax:				setOf type2 keyword
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		
	standard values:			other, PCL, PS, ...


Job Size Attributes (set by client/end user)


-> job-k-octets
	Job Syntax:				integer(0:2**31 - 1)
	Printer Syntax:				range (no default)
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		




-> job-impressions
	Job Syntax:				integer(0:2**31 - 1)
	Printer Syntax:				range (no default)
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		


-> job-media-sheets
	Job Syntax:				integer(0:2**31 - 1)
	Printer Syntax:				range (no default)
	Mandatory Job:				No
	Mandatory Printer:			No
	If Request and Printer:			
	If not Request and Printer:
	If Request and not Printer:
	If not Request and not Printer:
	best-effort = substitute-as-needed:		
	best-effort = do-not-substitute:		


Job Attributes (set by the Printer)


Job Identification Attributes (set by Printer)


-> job-url
	Job Syntax:				URL
	Mandatory Job:				YES


Job Owner Attributes (set by Printer)


-> job-originating-user
	Job Syntax:				Name
	Mandatory Job:				YES


-> job-originating-host
	Job Syntax:				Name
	Mandatory Job:				No


-> user-locale
	Job Syntax:				setOf type2 keyword
	Mandatory Job:				No
	standard values:			see document locale


Job Status Attributes (set by Printer)


-> job-state (type1Enum)
	Job Syntax:				type1 keyword
	Mandatory Job:				YES
	standard values:			unknown, pending,
processing,
						terminating, retained,
completed


-> job-state-reasons
	Job Syntax:				setOf type2 keyword
	Mandatory Job:				YES
	standard values:			incomplete, ...




-> job-state-as-text
	Job Syntax:				text
	Mandatory Job:				YES




-> output-device-assigned
	Job Syntax:				URL
	Mandatory Job:				No


-> submission-time
	Job Syntax:				dateTime
	Mandatory Job:				YES


-> number-of-intervening-jobs 
	Job Syntax:				integer(0:2**31 - 1)
	Mandatory Job:				YES


-> job-message-from-operator
	Job Syntax:				text
	Mandatory Job:				No


-> completion-time
	Job Syntax:				dateTime
	Mandatory Job:				YES


Document Data Attributes (set by client/end user)


-> document-name
	Document Syntax:			name
	Mandatory Document:			YES


-> document-URL
	Document Syntax:			URL
	Mandatory Document:			Either this or content


-> document-content
	Document Syntax:			octetString
	Mandatory Document:			Either this or URL


Printer Description Attributes


Printer Identification Attributes (set by administrator)


-> printer-name
	Printer Syntax:				name
	Mandatory Printer:			YES


-> printer-URL
	Printer Syntax:				URL
	Mandatory Printer:			YES


Printer Description Attributes (set by administrator)


-> printer-location
	Printer Syntax:				text
	Mandatory Printer:			No


Printer Description Attributes (set by manufacturer)


-> printer-make-and-model
	Printer Syntax:				text
	Mandatory Printer:			No


-> maximum-printer-speed
	Printer Syntax:				integerUnits
	Mandatory Printer:			No
	units:					ppm, ipm, spm, lpm, cps, ...


Printer Status Attributes


Printer StatusAttributes (set by printer)


-> printer-state
	Printer Syntax:				type1 keyword
	Mandatory Printer:			YES
	units:					unknown, idle, processing,
						stopped, ...


-> printer-state-reasons
	Printer Syntax:				setOf type2 keyword
	Mandatory Printer:			YES
	standard values:			partly-stopped, paper-jam,
						paused, ...


-> printer-is-accepting-jobs
	Printer Syntax:				boolean(true, false)
	Mandatory Printer:			YES


-> printer-state-as-text
	Printer Syntax:				text
	Mandatory Printer:			YES


-> queued-job-count
	Printer Syntax:				integer(0:2**31 - 1)
	Mandatory Printer:			YES


Printer StatusAttributes (set by administrator)


-> printer-message-from-operator (text)
	Printer Syntax:				text
	Mandatory Printer:			No


Printer Behavior Attributes


Printer BehaviorAttributes (set by administrator)


-> printer-locale
	Printer Syntax:				setOf type2 keyword
	Mandatory Printer:			Yes


-> font-substitutions 
	Printer Syntax:				setOf setOf font
	Mandatory Printer:			No


-> scheduling-algorithm
	Printer Syntax:				type3 keyword
	Mandatory Printer:			Yes
	standard values: 			none, smallest-job-first,
						time-received


IPP Model Attributes Review v3.0
4/18/97		1



More information about the Ipp mailing list