Hi folks, Monday (8 December 2003)
[for review and/or discussion at this week's WBMM telecon]
I have just posted a prototype of a Resource XML Schema:
ftp://ftp.pwg.org/pub/pwg/wbmm/schemas/resource-20031208.xsd
The Resource XML Schema v0.10 validates without warnings using XML SPY
2004, XRay 2.0, and XSV 2.5 (the free XML Schema Validator).
Below are: (a) description; (b) use models; (c) excerpts.
Cheers,
- Ira McDonald
High North Inc
Ira McDonald (Musician / Software Architect)
Blue Roof Music / High North Inc
PO Box 221 Grand Marais, MI 49839
phone: +1-906-494-2434
email: imcdonald at sharplabs.com
------------------------------------------------------------------------
[description of Resource Schema]
The Resource Schema defines a set of common elements applicable to most
or all Resource objects. Presently, the documentation consists of
references to the most recent IPP Resource Object working draft:
ftp://ftp.pwg.org/pub/pwg/ipp/new_RES/draft-ietf-ipp-get-resource-01.txt
As stated in the minutes from last week's WBMM meeting in Provo, a new
section/appendix will be written (as soon as I can) in the WBMM Protocol
Spec for the Resource object.
Unlike the original IPP Resource Object proposal, this Resource XML
Schema _does_ contain a ResourceState element (see excerpt below) with
the states: 'Idle', 'Reserved', 'Processing', and 'Stopped'.
Like the original IPP Resource Object, the actual resource data (if any)
is passed by reference in 'ResourceDataURIs' (list of URI), and the
client (in this case, the WBMM Management Station) can determine if the
resource data has been locally cached by reading the boolean element
'ResourceDataPresent'.
Like WBMM Actions, the Resource object itself is a choice of the various
resource types, which presently include:
'Firmware' - code for a hardware device (for local NVRAM storage)
'Font' - font (more metadata elements need to be defined)
'Form' - form
'Image' - image
'Logo' - logo
'Software' - code for a software service or device (not NVRAM)
------------------------------------------------------------------------
[use models for Resource Schema]
(1) Fleet Management Printer Monitor
- reads list of 'ResourceFirmware' once at startup
- reads 'ResourceState' and 'ResourceDataPresent' periodically
- if 'ResourceState' is 'Stopped'
- human intervention is required
- updates resources, as required by specific alerts
(2) Local Operator Printer Monitor
- reads list of all resource types once at startup
- reads 'ResourceState' and 'ResourceDataPresent' periodically
- if 'ResourceState' is 'Stopped'
- human intervention is required
- updates resources, as required by specific alerts
(3) Accounting Printer Monitor
- TBD (a Resource may be either Printer or Job scope)
------------------------------------------------------------------------
[excerpts from Resource Schema]
<xsd:simpleType name="ResourceStateType">
<!-- state of this resource -->
<!-- see IPP printer-state - section 4.4.11 [RFC2911] -->
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="Idle"/>
<!-- resources is idle (not reserved) -->
<!-- (resource may be modified/deleted by authenticated admin) -->
<!-- see 'idle' - section 4.4.11 [RFC2911] -->
<xsd:enumeration value="Reserved"/>
<!-- resource is currently reserved (for one or more jobs) -->
<!-- resource extension to IPP Printer object state model -->
<xsd:enumeration value="Processing"/>
<!-- resource is currently processing (in one or more jobs) -->
<!-- see 'processing' - section 4.4.11 [RFC2911] -->
<xsd:enumeration value="Stopped"/>
<!-- resource is currently stopped (in one or more jobs) -->
<!-- (human intervention is required to unblock resource) -->
<!-- see 'stopped' - section 4.4.11 [RFC2911] -->
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="ResourceStatus">
<!-- ResourceStatus - group -->
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ResourceState"
minOccurs="1" maxOccurs="1"/>
<xsd:element ref="ResourceCreateDate"
minOccurs="1" maxOccurs="1"/>
<xsd:element ref="ResourceModifyDate"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ResourceDataPresent"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ResourceDescription">
<!-- ResourceDescription - group -->
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ResourceIndex"
minOccurs="1" maxOccurs="1"/>
<xsd:element ref="ResourceInfo"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ResourceName"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ResourceDataURIs"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ResourceDataKOctets"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ResourceDataCompression"
minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>