Hi folks, Sunday (11 April 2004)
[For use by Masanori Itoh (Ricoh) and Dave Hall (HP) in updating WSDL
files for PSI/1.0, as agreed at PWG Process telecon on 1 April 2004]
I have just posted a prototype Events XML Schema v0.10, which validates
without warnings using XML SPY 2004, XRay 2.0, and XSV 2.5 (the free XML
Schema Validator) and is posted at:
ftp://ftp.pwg.org/pub/pwg/wbmm/schemas/events-20040411.xsd
This schema defines 8 event classes:
- VendorEvents - for vendor extensions, including new event classes
- SystemEvents - derived from PrinterEvents below
- ServiceEvents - derived from PrinterEvents below
- DeviceEvents - derived from PrinterEvents below
- PrinterEvents - derived from IPP System Admin, w/ PSI/IPPFAX additions
- JobEvents - derived from IPP System Admin, w/ PSI/IPPFAX additions
- DocumentEvents above - derived from JobEvents above
- ComponentEvents - derived from PrtAlertCodeTC in Printer MIB v2
The included extensions for use by PSI/1.0 are:
- PrinterStateOnlyChanged - ignores state reasons transitions
- JobStateOnlyChanged - ignores state reasons transitions
- DocumentStateOnlyChanged - ignores state reasons transitions
The included extensions for use by IPPFAX/1.0 are:
- JobError - see 'errors-count' in section 5.1.1 [PWG5100.7]
- JobWarning - see 'warnings-count' in section 5.1.4 [PWG5100.7]
Below are some excerpts.
Cheers,
- Ira
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
------------------------------------------------------------------------
[excerpts from Events Schema]
<xsd:element name="NotifyEvents">
<!-- union of event groups -->
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="VendorEvents"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="SystemEvents"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ServiceEvents"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="DeviceEvents"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="PrinterEvents"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="JobEvents"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="DocumentEvents"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ComponentEvents"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="PrinterEvents">
<!-- OPTIONAL - MAY be multi-valued -->
<!-- list of printer events -->
<xsd:complexType>
<xsd:sequence>
<xsd:element name="PrinterEvent" type="PrinterEventType"
minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="VendorEvent" type="VendorEventType"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="PrinterEventType">
<!-- printer event type -->
<!-- see [System|Service|Device]EventType above -->
<!-- see notify-events - section 5.3.2 [IPP-NOT] -->
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="PrinterStateOnlyChanged"/>
<!-- printer state only changed (ignores state reasons) -->
<!-- see printer-state - section 4.4.11 [RFC2911] -->
<xsd:enumeration value="PrinterStateChanged"/>
<!-- printer state (or state reasons) changed -->
<!-- see printer-state - section 4.4.11 [RFC2911] -->
<!-- see printer-state-reasons - section 4.4.12 [RFC2911] -->
<!-- see printer-is-accepting-jobs - section 4.4.23 [RFC2911] -->
...
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="JobEvents">
<!-- OPTIONAL - MAY be multi-valued -->
<!-- list of job events -->
<xsd:complexType>
<xsd:sequence>
<xsd:element name="JobEvent" type="JobEventType"
minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="VendorEvent" type="VendorEventType"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="JobEventType">
<!-- job event type -->
<!-- see notify-events - section 5.3.2 [IPP-NOT] -->
<!-- see DocumentEventType below -->
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="JobStateOnlyChanged"/>
<!-- job state only changed (ignores state reasons) -->
<!-- see job-state - section 4.3.7 [RFC2911] -->
<!-- see jmJobState in [RFC2707] -->
<xsd:enumeration value="JobStateChanged"/>
<!-- job state (or state reasons) changed -->
<!-- see job-state - section 4.3.7 [RFC2911] -->
<!-- see job-state-reasons - section 4.3.8 [RFC2911] -->
<!-- see jmJobState in [RFC2707] -->
<!-- see jmJobStateReasons1 in [RFC2707] -->
<xsd:enumeration value="JobCreated"/>
<!-- job state sub-event - created -->
<!-- see JobStateChanged above -->
<!-- see Print-Job - section 3.2.1 [RFC2911] -->
<!-- see Print-URI - section 3.2.2 [RFC2911] -->
<!-- see Create-Job - section 3.2.4 [RFC2911] -->
...
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ComponentEventType">
<!-- component/subunit event type - Printer Model in [PRTMIBv2] -->
<!-- see prtAlertCode in [RFC1759] and [PRTMIBv2] -->
<!-- see PrtAlertCodeTC in IANA Printer TC MIB [PRTMIBv2] -->
<!-- see Printer Model - section 2 [RFC1759] and [PRTMIBv2] -->
<xsd:restriction base="xsd:NMTOKEN">
<!-- general -->
<xsd:enumeration value="GeneralCoverOpen"/>
<xsd:enumeration value="GeneralCoverClosed"/>
<xsd:enumeration value="GeneralInterlockOpen"/>
<xsd:enumeration value="GeneralInterlockClosed"/>
<xsd:enumeration value="GeneralConfigurationChange"/>
<xsd:enumeration value="GeneralJam"/>
<xsd:enumeration value="GeneralPowerUp"/>
<xsd:enumeration value="GeneralPowerDown"/>
<xsd:enumeration value="GeneralManagementReset"/>
<xsd:enumeration value="GeneralManualReset"/>
<xsd:enumeration value="GeneralReadyToProcess"/>
<!-- subunit -->
<xsd:enumeration value="SubunitMissing"/>
<xsd:enumeration value="SubunitLifeAlmostOver"/>
<xsd:enumeration value="SubunitLifeOver"/>
<xsd:enumeration value="SubunitAlmostEmpty"/>
<xsd:enumeration value="SubunitEmpty"/>
...
</xsd:restriction>
</xsd:simpleType>