<?xml version='1.0' encoding='UTF-8' ?>

<!--Generated by XML Authority-->

<!-- ................................................................. -->
<!-- UPDF.DTD                                                          -->
<!-- 981210 ARITOMI, YEUNG                                             -->
<!-- Canon Inc., Canon Information Systems, Inc                        -->
<!-- Printer Working Group - UPDF                                      -->
<!-- Last modified: 990816 - Sandra Matts                              -->
<!-- Last modified: 001017 - Norbert Schade                            -->
<!-- ................................................................. -->
<!-- ................................................................. -->
<!-- References to external dtd modules                                -->
<!-- ................................................................. -->
<!ENTITY % OptionalDummyElementForExternalEntities SYSTEM "UPDF Entities.dtd">

<!ENTITY % PrintMediaHandling SYSTEM "UPDF PrintMediaHandling.dtd">

<!ENTITY % FontHandling SYSTEM "UPDF FontHandling.dtd">

<!ENTITY % Constraints SYSTEM "UPDF Constraints.dtd">

<!-- ................................................................. -->
<!-- UPDF Version                                                      -->
<!-- DeviceCap.Header                                                  -->
<!-- DeviceCap.Features                                                -->
<!-- ................................................................. -->
<!ELEMENT DeviceCap (OptionalDummyElementForExternalEntities? , UPDFVersion , DeviceCap.Header , DeviceCap.Features)>
<!ATTLIST DeviceCap  FileTypeIdentification CDATA  #FIXED 'Master description of device or optional unit' >
%OptionalDummyElementForExternalEntities;

<!ELEMENT UPDFVersion EMPTY>
<!ATTLIST UPDFVersion  FormatVersion CDATA  #IMPLIED
                       FileVersion   CDATA  #IMPLIED >
<!ELEMENT DeviceCap.Header (FileVersion , Manufacturer , Product , ModelName , NickName , DeviceId , LocaleList , FileName , CustomDeviceCapTags)>

<!ELEMENT FileVersion (#PCDATA)>

<!ELEMENT Manufacturer (#PCDATA)>

<!ELEMENT Product (#PCDATA)>

<!ELEMENT ModelName (#PCDATA)>

<!ELEMENT NickName (#PCDATA)>

<!ELEMENT DeviceId (DeviceId.Mfc , DeviceId.Mdl , DeviceId.Cmd , DeviceId.Cls , DeviceId.Des , DeviceId.Cid)>
<!ATTLIST DeviceId  fDeviceId  (FALSE | TRUE )  'FALSE' >
<!ELEMENT DeviceId.Mfc (#PCDATA)>

<!ELEMENT DeviceId.Mdl (#PCDATA)>

<!ELEMENT DeviceId.Cmd (#PCDATA)>

<!ELEMENT DeviceId.Cls (#PCDATA)>

<!ELEMENT DeviceId.Des (#PCDATA)>

<!ELEMENT DeviceId.Cid (#PCDATA)>

<!-- ............................................................. -->
<!-- LocaleList                                                    -->
<!-- ............................................................. -->
<!ELEMENT LocaleList (Locale+ , CustomLocale*)>

<!ELEMENT Locale EMPTY>
<!ATTLIST Locale  LocaleId  (ar_AE | 
                             ar_BH | 
                             da_DK | 
                             de_AT | 
                             en_AU | 
                             en_CA | 
                             en_GB | 
                             en_US | 
                             es_AR | 
                             es_ES | 
                             ja_JP )  'ja_JP' >
<!ELEMENT CustomLocale EMPTY>
<!ATTLIST CustomLocale  CustomLocaleId CDATA  #IMPLIED >
<!ELEMENT FileName (#PCDATA)>

<!ELEMENT CustomDeviceCapTags (CustomTag*)>

<!ELEMENT CustomTag EMPTY>
<!ATTLIST CustomTag  TagLabel CDATA  #IMPLIED
                     TagValue CDATA  #IMPLIED >
<!ELEMENT DeviceCap.Features (PrinterCap , FaxCap , ScanCap)>

<!-- ................................................................. -->
<!-- PRINTERCAP is TOTALSPEC STRUCTURE                                 -->
<!-- PrinterCap.Header                                                 -->
<!-- Features                                                          -->
<!-- ................................................................. -->
<!ELEMENT PrinterCap (PrinterCap.Header , Features , Constraints?)>

<!ELEMENT PrinterCap.Header (Printer , Languages , ModuleNames)>

<!ELEMENT Printer (#PCDATA)>

<!ELEMENT Languages (Language+)>

<!ELEMENT Language (Language.PDL , Language.IPL? , Language.JCL)>

<!ELEMENT Language.PDL (#PCDATA)>
<!ATTLIST Language.PDL  PDLMajorLevel  (LIPS4 | 
                                        PCL5e | 
                                        PCL5c | 
                                        PCL6XL | 
                                        PS2 | 
                                        PS3 | 
                                        GDIGM )  'LIPS4'
                        PDLMinorLevel NMTOKEN  '0' >
<!ELEMENT Language.IPL (#PCDATA)>
<!ATTLIST Language.IPL  IPLMajorLevel  (NONE | LIPS4IMG | PCL5eIMG | GDI | GDIIM )  'NONE'
                        IPLMinorLevel NMTOKEN  '0' >
<!ELEMENT Language.JCL (#PCDATA)>
<!ATTLIST Language.JCL  JCLMajorLevel  (NONE | CJL | PJL | JCL | GJL )  'CJL'
                        JCLMinorLevel NMTOKEN  '0' >
<!ELEMENT ModuleNames (XPName? , XPRSName? , XPUIName? , DPName? , UIDPName?)>

<!ELEMENT XPName (#PCDATA)>

<!ELEMENT XPRSName (#PCDATA)>

<!ELEMENT XPUIName (#PCDATA)>

<!ELEMENT DPName (#PCDATA)>

<!ELEMENT UIDPName (#PCDATA)>

<!-- ................................................................. -->
<!-- Printer Features                                                  -->
<!-- ................................................................. -->
<!ELEMENT Features (Physical , Platform , Resource , PrintMediaHandling? , FontHandling? , Overlays , Forms , Communication , Global)>

<!ELEMENT Physical (%physical_spec;)>

<!-- ..............................................................-->
<!-- PHYSICAL PHYSICAL PHYSICAL PHYSICAL PHYSICAL PHYSICAL PHYSICAL-->
<!-- ..............................................................-->
<!ELEMENT Engine EMPTY>
<!ATTLIST Engine  EngineType      (LBP | BJ )  'LBP'
                  EngineSpeedPPM NMTOKEN  #IMPLIED >
<!ELEMENT RAM (RAM.Internal? , RAM.SlotNum?)>
<!ATTLIST RAM  fRAM  (FALSE | TRUE )  'FALSE' >
<!ELEMENT RAM.Internal EMPTY>
<!ATTLIST RAM.Internal  RAMInternalSizeKb     NMTOKEN  '0'
                        RAMInternalWorkSizeKb NMTOKEN  '0' >
<!ELEMENT RAM.SlotNum (#PCDATA)>

<!ELEMENT ROM (ROM.SlotNum? , ROM.FontSlotNum? , ROM.FlashSlotNum?)>
<!ATTLIST ROM  fROM  (FALSE | TRUE )  'FALSE' >
<!ELEMENT ROM.SlotNum (#PCDATA)>

<!ELEMENT ROM.FontSlotNum (#PCDATA)>

<!ELEMENT ROM.FlashSlotNum (#PCDATA)>

<!ELEMENT INSERTERS (Inserter*)>
<!ATTLIST INSERTERS  tInserter    (DISABLE | OFF | ON )  'DISABLE'
                     NumInserter NMTOKEN  '0' >
<!ELEMENT Inserter (#PCDATA)>

<!ELEMENT STORAGES (Storage*)>
<!ATTLIST STORAGES  tStorage    (DISABLE | OFF | ON )  'DISABLE'
                    NumStorage NMTOKEN  '0' >
<!ELEMENT Storage (#PCDATA)>
<!ATTLIST Storage  StorageType  (NONE | Flash | HDD )  'NONE'
                   StorageSize NMTOKEN  '0' >
<!-- ..............................................................-->
<!-- OS/HOST  Color Management/Rendering                           -->
<!-- ..............................................................-->
<!ELEMENT Platform (ModuleNames , HostRendering , ObjectSignature , DDBProc , CacheProc)>

<!ELEMENT HostRendering EMPTY>
<!ATTLIST HostRendering  fHostRendering  (FALSE | TRUE )  'FALSE' >
<!-- ADD! HOST RENDERING DEFAULT -->
<!ELEMENT ObjectSignature EMPTY>
<!ATTLIST ObjectSignature  VectorSignatureWord NMTOKEN  '0'
                           RasterSignatureWord NMTOKEN  '0' >
<!ELEMENT DDBProc EMPTY>
<!ATTLIST DDBProc  fDisableReversingDDB  (FALSE | TRUE )  'FALSE' >
<!ELEMENT CacheProc EMPTY>
<!ATTLIST CacheProc  fDisableObjectCache  (FALSE | TRUE )  'FALSE' >
<!--ELEMENT FONTSUBS(FontSub*)-->
<!--ATTLIST FONTSUBS 
			NumFontSub NMTOKEN "0"-->
<!--ELEMENT FontSub (#PCDATA)-->
<!-- ..............................................................-->
<!-- Resource                                                      -->
<!-- ..............................................................-->
<!ELEMENT Resource EMPTY>

<!-- ..............................................................-->
<!-- Print Media Handling                                          -->
<!-- ..............................................................-->
%PrintMediaHandling;

<!-- ..............................................................-->
<!-- Font Handling                                                 -->
<!-- ..............................................................-->
%FontHandling;

<!-- ..............................................................-->
<!-- Overlays                                                      -->
<!-- ..............................................................-->
<!ELEMENT Overlays EMPTY>

<!-- ..............................................................-->
<!-- Forms                                                         -->
<!-- ..............................................................-->
<!ELEMENT Forms EMPTY>

<!-- ..............................................................-->
<!-- Communication                                                 -->
<!-- ..............................................................-->
<!ELEMENT Communication EMPTY>

<!-- ..............................................................-->
<!-- Global                                                        -->
<!-- ..............................................................-->
<!ELEMENT Global (UserInterface , Colors)>

<!-- ..........................................................-->
<!-- UserInterface                                             -->
<!-- ..........................................................-->
<!ELEMENT UserInterface (Dialog* , PrinterMemoryManage , PAGEPROTECTS , RESOLUTIONS , TONERSAVES , SMOOTHINGMODES , DITHERSMOOTHINGS , DITHERS , UIConstraints)>

<!-- ..........................................................-->
<!-- Dialog                                                    -->
<!--                                                           -->
<!-- ..........................................................-->
<!ELEMENT Dialog (Tab+)>

<!ELEMENT Tab (UIFeatures*)>
<!ATTLIST Tab  Text       CDATA  #IMPLIED
               UILocalize  (FALSE | TRUE )  'FALSE' >
<!ELEMENT UIFeatures (UIFeature+)>

<!ELEMENT UIFeature (UIAttributes* , UIControl+)>

<!ELEMENT UIAttributes (#PCDATA)>
<!ATTLIST UIAttributes  UIDisplayName CDATA  #IMPLIED
                        UILocalize     (FALSE | TRUE )  'FALSE'
                        HelpText      CDATA  #IMPLIED
                        ShortcutKey   CDATA  #IMPLIED >
<!ELEMENT UIControl (Button | RadioButtonGroup | CheckBox | List | Label | SrcImage | TreeControl | CustomControl)>

<!-- ..........................................................-->
<!-- Additional Controls or Widgets include: GroupBox,         -->
<!-- ScrollBar, SpinControl, ProgressMeter, SliderBar.         -->
<!-- ..........................................................-->
<!ELEMENT Button (Label , Image)>

<!-- next line just hacked in to avoid errors -->
<!ELEMENT Image %PCD;>

<!ELEMENT RadioButtonGroup (RadioButton+)>
<!ATTLIST RadioButtonGroup  NumButtons    NMTOKEN  '1'
                            DefaultButton CDATA    #IMPLIED >
<!ELEMENT RadioButton EMPTY>
<!ATTLIST RadioButton  UILabel     CDATA  #IMPLIED
                       ShortcutKey CDATA  #IMPLIED
                       Command     CDATA  #IMPLIED >
<!ELEMENT CheckBox EMPTY>
<!ATTLIST CheckBox  CheckBoxSetting  (FALSE | TRUE )  'FALSE' >
<!ELEMENT List (ItemInList+)>
<!ATTLIST List  Orientation CDATA  #IMPLIED
                ScrollBar    (FALSE | TRUE )  'FALSE' >
<!ELEMENT ItemInList EMPTY>
<!ATTLIST ItemInList  UILabel CDATA  #IMPLIED
                      Src     CDATA  #IMPLIED
                      Command CDATA  #IMPLIED >
<!ELEMENT Label EMPTY>
<!ATTLIST Label  Text       CDATA  #IMPLIED
                 UILocalize  (FALSE | TRUE )  'FALSE' >
<!ELEMENT SrcImage EMPTY>
<!ATTLIST SrcImage  SoucreImage  (FALSE | TRUE )  'FALSE' >
<!ELEMENT TreeControl EMPTY>

<!ELEMENT CustomControl EMPTY>

<!ELEMENT PrinterMemoryManage (#PCDATA)>
<!ATTLIST PrinterMemoryManage  PrinterMemoryManageId  (NONE | MaxiMem | Met | MemoryBooster )  'NONE' >
<!ELEMENT PAGEPROTECTS (PageProtect*)>
<!ATTLIST PAGEPROTECTS  fPageProtect    (FALSE | TRUE )  'FALSE'
                        NumPageProtect NMTOKEN  '0' >
<!ELEMENT PageProtect (#PCDATA)>
<!ATTLIST PageProtect  PageProtectId  (PRINTERDEFAULT | AUTO | OFF | ON | Special )  'PRINTERDEFAULT' >
<!ELEMENT RESOLUTIONS (DefaultResolution , Resolution+)>
<!ATTLIST RESOLUTIONS  NumResolution NMTOKEN  '1' >
<!ELEMENT DefaultResolution EMPTY>
<!ATTLIST DefaultResolution  DefaultResolutionDPI   NMTOKEN  #IMPLIED
                             DefaultResolutionShift NMTOKEN  #IMPLIED
                             DefaultResolutionUnit   (dpi | inch | mm )  'dpi' >
<!ELEMENT Resolution (#PCDATA)>
<!ATTLIST Resolution  ResoltuionDPI NMTOKEN  #IMPLIED
                      ResolutionDM   (FALSE | 
                                      DMRES_DRAFT | 
                                      DMRES_LOW | 
                                      DMRES_MEDIUM | 
                                      DMRES_HIGH )  'FALSE' >
<!ELEMENT TONERSAVES (TonerSave*)>
<!ATTLIST TONERSAVES  fTonerSave    (FALSE | TRUE )  'FALSE'
                      NumTonerSave NMTOKEN  '0' >
<!ELEMENT TonerSave (#PCDATA)>
<!ATTLIST TonerSave  TonerSaveId  (PRINTERDEFAULT | ON | OFF )  'PRINTERDEFAULT' >
<!ELEMENT SMOOTHINGMODES (SmoothingMode*)>
<!ATTLIST SMOOTHINGMODES  fSmoothingMode    (FALSE | TRUE )  'FALSE'
                          NumSmoothingMode NMTOKEN  '0' >
<!ELEMENT SmoothingMode (#PCDATA)>
<!ATTLIST SmoothingMode  SmoothingModeId  (PRINTERDEFAULT | ON | OFF )  'PRINTERDEFAULT' >
<!ELEMENT DITHERSMOOTHINGS (DitherSmoothing*)>
<!ATTLIST DITHERSMOOTHINGS  fDitherSmoothing    (FALSE | TRUE )  'FALSE'
                            NumDitherSmoothing NMTOKEN  '0' >
<!ELEMENT DitherSmoothing (#PCDATA)>
<!ATTLIST DitherSmoothing  DidtherSmoothingId  (PRINTERDEFAULT | ON | OFF )  'PRINTERDEFAULT' >
<!ELEMENT DITHERS (HALFTONES? , GRAYOUTS?)>

<!-- Dithers start -->
<!ELEMENT HALFTONES (Halftone*)>
<!ATTLIST HALFTONES  fHafltone    (FALSE | TRUE )  'FALSE'
                     NumHalftone NMTOKEN  '0' >
<!ELEMENT Halftone (#PCDATA)>
<!ATTLIST Halftone  HalftoneId    (PRINTERDEFAULT | 
                                   Resolution | 
                                   Gradation | 
                                   Tone | 
                                   None | 
                                   Solid | 
                                   Pattern1 | 
                                   Pattern2 )  'PRINTERDEFAULT'
                    ColorSpaceId  (NONE | RGB | Gray | CMYK | CMY )  'NONE' >
<!ELEMENT GRAYOUTS (Grayout*)>
<!ATTLIST GRAYOUTS  fGrayout    (FALSE | TRUE )  'FALSE'
                    NumGrayout NMTOKEN  '0' >
<!ELEMENT Grayout (#PCDATA)>
<!ATTLIST Grayout  GrayoutId  (PRINTERDEFAULT | 
                               TextGraphic | 
                               Text | 
                               Off | 
                               Default | 
                               Graphic | 
                               Image | 
                               TextImage | 
                               GraphicImage | 
                               All )  'PRINTERDEFAULT' >
<!-- Dithers end -->
<!-- <!ELEMENT UIConstraints (MaxCopies, MaxBindMarginMm, Face, PaintMode, PrinterPaperName, -->
<!-- remove PaintMode from next line to avoid errors -->
<!ELEMENT UIConstraints (MaxCopies? , MaxBindMarginMm? , Face? , PrinterPaperName? , FixingMode? , HiRegistrationMode? , ColorCalibration? , LAYOUTS?)>

<!-- VariousFuncFlag -->
<!ELEMENT MaxCopies (#PCDATA)>

<!ELEMENT MaxBindMarginMm (#PCDATA)>

<!ELEMENT Face EMPTY>
<!ATTLIST Face  DefaultFace  (PRINTERDEFAULT | FaceDown | FaceUp )  'PRINTERDEFAULT' >
<!--ELEMENT PaintMode EMPTY-->
<!--ATTLIST PaintMode 
				fPaintMode %bool_attribute_false;-->
<!ELEMENT PrinterPaperName EMPTY>
<!ATTLIST PrinterPaperName  fPrinterPaperName  (FALSE | TRUE )  'FALSE' >
<!ELEMENT FixingMode EMPTY>
<!ATTLIST FixingMode  fFixingMode  (FALSE | TRUE )  'FALSE' >
<!ELEMENT HiRegistrationMode EMPTY>
<!ATTLIST HiRegistrationMode  fHiRegistrationMode  (FALSE | TRUE )  'FALSE' >
<!ELEMENT ColorCalibration EMPTY>
<!ATTLIST ColorCalibration  fColorCalibration  (FALSE | TRUE | IMG )  'FALSE' >
<!ELEMENT LAYOUTS (Layout*)>
<!ATTLIST LAYOUTS  tLayout    (DISABLE | OFF | ON )  'DISABLE'
                   NumLayout NMTOKEN  '0' >
<!ELEMENT Layout (#PCDATA)>
<!ATTLIST Layout  LayoutId  (NONE | Fit | Stretch | Zoom | 2UP | 4UP | Twice )  'NONE' >
<!-- ..........................................................-->
<!-- Colors                                                    -->
<!-- ..........................................................-->
<!ELEMENT Colors (ColorProcessing , PIXELDEPTHS)>

<!ELEMENT ColorProcessing (COLORSPACES , ColorModeSwith?)>

<!ELEMENT COLORSPACES (ColorSpace* , BaseColorSpace?)>
<!ATTLIST COLORSPACES  fColorSpace    (FALSE | TRUE )  'FALSE'
                       NumColorSpace NMTOKEN  '0' >
<!ELEMENT ColorSpace EMPTY>
<!ATTLIST ColorSpace  ColorSpaceId  (NONE | RGB | Gray | CMYK | CMY )  'Gray' >
<!ELEMENT BaseColorSpace EMPTY>
<!ATTLIST BaseColorSpace  BaseColorSpaceId  (NONE | NTSC | sRGB )  'NTSC' >
<!ELEMENT ColorModeSwith EMPTY>
<!ATTLIST ColorModeSwith  ColorModeSwitchId  (NONE | AUTO | Job | Page )  'NONE' >
<!ELEMENT PIXELDEPTHS (PixelDepth*)>
<!ATTLIST PIXELDEPTHS  fPixelDepth    (FALSE | TRUE )  'FALSE'
                       NumPixelDepth NMTOKEN  '0' >
<!ELEMENT PixelDepth (#PCDATA)>
<!ATTLIST PixelDepth  PixelDepthId NMTOKEN  #IMPLIED
                      ColorSpaceId  (NONE | RGB | Gray | CMYK | CMY )  'NONE' >
%Constraints;

<!-- ................................................................. -->
<!-- FAXCAP is TOTALSPEC STRUCTURE for Fax                             -->
<!-- ................................................................. -->
<!-- <!ELEMENT FaxCap (FaxCap.Header,Features)> -->
<!-- leave Features out for now -->
<!ELEMENT FaxCap (FaxCap.Header)>

<!-- <!ELEMENT FaxCap.Header (Fax,Language,ModuleNames)> -->
<!-- leave Language,ModuleNames out for now -->
<!ELEMENT FaxCap.Header (Fax)>

<!ELEMENT Fax (#PCDATA)>

<!-- ................................................................. -->
<!-- Fax Features                                                      -->
<!-- ................................................................. -->
<!-- ................................................................. -->
<!-- SCANCAP is TOTALSPEC STRUCTURE for Scan                           -->
<!-- ................................................................. -->
<!-- <!ELEMENT ScanCap (ScanCap.Header,Features)> -->
<!-- leave Features out for now -->
<!ELEMENT ScanCap (ScanCap.Header)>

<!-- <!ELEMENT ScanCap.Header (Scan,Language,ModuleNames)> -->
<!-- leave Language,ModuleNames out for now -->
<!ELEMENT ScanCap.Header (Scan)>

<!ELEMENT Scan (#PCDATA)>


