Hi folks, Thursday (16 March 2000)
Per my action item from yesterday's IPP Telecon, I propose the following
extensible mechanism for IPP clients to 'discover' metadata about the
attributes supported by IPP server implementations.
No new IPP operations are required and the mechanism may be used with
any version of IPP (1.0, 1.1, etc.).
The proposed mechanism is modelled on the use of metadata 'facts' in
<draft-ietf-ftpext-mlst-10.txt>, February 2000, which defines the 'MLST'
(file) and 'MLSD' (directory) machine-readable list command extensions
to FTP.
Define three new Printer object attributes which can be queried with
the existing 'Get-Printer-Attributes' operation.
----------------------------------------------------------------------
* printer-metadata-attributes-supported (1setOf text(MAX))
This OPTIONAL Printer attribute specifies the set of metadata for all
supported attributes for this Printer object.
This attribute is encoded as a set of strings containing keyword/value
metadata 'facts' about supported Printer object attributes.
----------------------------------------------------------------------
job-metadata-attributes-supported (1setOf text(MAX))
This OPTIONAL Printer attribute specifies the set of metadata for all
supported attributes for Job objects which are contained by this Printer
object.
This attribute is encoded as a set of strings containing keyword/value
metadata 'facts' about supported Job object attributes.
----------------------------------------------------------------------
subscription-metadata-attributes-supported (1setOf text(MAX))
job-metadata-attributes-supported (1setOf text(MAX))
This OPTIONAL Printer attribute specifies the set of metadata for all
supported attributes for Subscription objects which are contained by
this Printer object.
This attribute is encoded as a set of strings containing keyword/value
metadata 'facts' about supported Subscription object attributes.
----------------------------------------------------------------------
The metadata 'facts' are encoded according to the following ABNF (hope
I got this right):
metadata-entry = 1*( metadata-fact ";" )
metadata-fact = metadata-factname "=" metadata-value
metadata-factname = "name" / ; attribute name
; name defined in IPP
"syntax" / ; attribute syntax
; syntax defined in IPP
"minlen" / ; attribute minimum length
"maxlen" / ; attribute maximum length
"minint" / ; attribute minimum integer
"maxint" / ; attribute maximum integer
vendor-factname ; vendor unique factname
local-factname ; local unique factname
vendor-factname = <vendor> "." metadata-token
local-factname = "x" "." metadata-token
metadata-token = 1*( token-char )
metadata-value = 1*( token-char )
token-char = ALPHA / DIGIT / "-"
Every 'metadata-entry' string MUST begin with a 'name' fact and MAY
contain zero or more other facts. Each 'syntax' fact MAY be followed by
zero or more constraint facts 'minlen', 'maxlen', 'minint', or 'maxint'
(which further constrain that 'syntax'). Multiple 'syntax' facts may be
present in each 'metadata-entry' string.
Comments?
Cheers,
- Ira McDonald (consulting architect at Sharp Labs America)
High North Inc
This archive was generated by hypermail 2b29 : Thu Mar 16 2000 - 21:13:16 EST