<!-- ................................................................. -->
<!-- UPDF.DTD                                                          -->
<!-- 981210 ARITOMI, YEUNG                                             -->      
<!-- Canon Inc., Canon Information Systems, Inc                        -->
<!-- Printer Working Group - UPDF                                      -->
<!-- Last modified: 990816 - Sandra Matts                              -->
<!-- Last modified: 001011 - Norbert Schade                            -->
<!-- ................................................................. -->
<!ENTITY % rect_attributes 
    'left NMTOKEN #IMPLIED 
     top NMTOKEN #IMPLIED 
     right NMTOKEN #IMPLIED 
     bottom NMTOKEN #IMPLIED'>
<!ENTITY % point_attributes 
    'x NMTOKEN #IMPLIED 
     y NMTOKEN #IMPLIED'>


<!ENTITY % bool_enum 
    '(FALSE|TRUE)'>
<!ENTITY % bool_attribute_false 
    ' %bool_enum; "FALSE"'>
<!ENTITY % bool_attribute_true 
    ' %bool_enum; "TRUE"'>
<!ENTITY % state3_enum 
    '(DISABLE|OFF|ON)'>
<!ENTITY % state3_attribute_default 
    ' %state3_enum; "DISABLE"'>

<!ENTITY % locale_enum 
    '(ar_AE|
      ar_BH|
      da_DK|
      de_AT|
      en_AU|
      en_CA|
      en_GB|
      en_US|
      es_AR|
      es_ES|
      ja_JP)'>
<!ENTITY % locale_attribute_default 
    ' %locale_enum; "ja_JP"'>

<!ENTITY % dmdefaultsource_enum 
	'( FALSE|
	DMBIN_UPPER|
	DMBIN_ONLYONE|
	DMBIN_LOWER|
	DMBIN_MIDDLE|
	DMBIN_MANUAL|
	DMBIN_ENVELOPE|
	DMBIN_ENVMANUAL|
	DMBIN_AUTO|
	DMBIN_TRACTOR|
	DMBIN_SMALLFMT|
	DMBIN_LARGEFMT|
	DMBIN_LARGECAPACITY|
	DMBIN_CASSETTE|
	DMBIN_FORMSOURCE|
	DMBIN_USER|
	DMBIN_CASSETTE1|
	DMBIN_CASSETTE2|
	DMBIN_CASSETTE3|
	DMBIN_CASSETTE4|
	DMBIN_CASSETTE5|
	DMBIN_CASSETTE6|
	DMBIN_CASSETTE7|
	DMBIN_CASSETTE8|
	DMBIN_CASSETTE9
	)'>
<!ENTITY % dmdefaultsource_attribute_default 
	' %dmdefaultsource_enum; "FALSE"'>

<!ENTITY % dmpapersize_enum 
	'( FALSE|
	DMPAPER_LETTER|
	DMPAPER_LETTERSMALL|
	DMPAPER_TABLOID|
	DMPAPER_LEDGER|
	DMPAPER_LEGAL|
	DMPAPER_STATEMENT|
	DMPAPER_EXECUTIVE|
	DMPAPER_A3|
	DMPAPER_A4|
	DMPAPER_A4SMALL|
	DMPAPER_A5|
	DMPAPER_B4|
	DMPAPER_B5|
	DMPAPER_FOLIO|
	DMPAPER_QUARTO|
	DMPAPER_10X14|
	DMPAPER_11X17|
	DMPAPER_NOTE|
	DMPAPER_ENV_9|
	DMPAPER_ENV_10|
	DMPAPER_ENV_11|
	DMPAPER_ENV_12|
	DMPAPER_ENV_14|
	DMPAPER_CSHEET|
	DMPAPER_DSHEET|
	DMPAPER_ESHEET|
	DMPAPER_ENV_DL|
	DMPAPER_ENV_C5|
	DMPAPER_ENV_C3|
	DMPAPER_ENV_C4|
	DMPAPER_ENV_C6|
	DMPAPER_ENV_C65|
	DMPAPER_ENV_B4|
	DMPAPER_ENV_B5|
	DMPAPER_ENV_B6|
	DMPAPER_ENV_ITALY|
	DMPAPER_ENV_MONARCH|
	DMPAPER_ENV_PERSONAL|
	DMPAPER_FANFOLD_US|
	DMPAPER_FANFOLD_STD_GERMAN|
	DMPAPER_FANFOLD_LGL_GERMAN|
	DMPAPER_ISO_B4|
	DMPAPER_JAPANESE_POSTCARD|
	DMPAPER_9X11|
	DMPAPER_10X11|
	DMPAPER_15X11|
	DMPAPER_ENV_INVITE|
	DMPAPER_RESERVED_48|
	DMPAPER_RESERVED_49|
	DMPAPER_LETTER_EXTRA|
	DMPAPER_LEGAL_EXTRA|
	DMPAPER_TABLOID_EXTRA|
	DMPAPER_A4_EXTRA|
	DMPAPER_LETTER_TRANSVERSE|
	DMPAPER_A4_TRANSVERSE|
	DMPAPER_LETTER_EXTRA_TRANSVERSE|
	DMPAPER_A_PLUS|
	DMPAPER_B_PLUS|
	DMPAPER_LETTER_PLUS|
	DMPAPER_A4_PLUS|
	DMPAPER_A5_TRANSVERSE|
	DMPAPER_B5_TRANSVERSE|
	DMPAPER_A3_EXTRA|
	DMPAPER_A5_EXTRA|
	DMPAPER_B5_EXTRA|
	DMPAPER_A2|
	DMPAPER_A3_TRANSVERSE|
	DMPAPER_A3_EXTRA_TRANSVERSE|
	DMPAPER_USER|
	DMPAPER_JAPANESE_ENV_Y4|
	DMPAPER_JAPANESE_ENV_Y2|
	DMPAPER_JAPANESE_ENV_K2)'>
<!ENTITY % dmpapersize_attribute_default 
	' %dmpapersize_enum; "FALSE"'>

<!ENTITY % dmprintquality_enum 
	'( FALSE|
	DMRES_DRAFT|
	DMRES_LOW|
	DMRES_MEDIUM|
	DMRES_HIGH)'>
<!ENTITY % dmprintquality_attribute_default 
	' %dmprintquality_enum; "FALSE"'>

<!ENTITY % colorspace_enum 
	'( NONE|
	RGB|
	Gray|
	CMYK|
	CMY)'>

<!ENTITY % halftone_enum 
	'( PRINTERDEFAULT|
	Resolution|
	Gradation|
	Tone|
	None|
	Solid|
	Pattern1|
	Pattern2)'>

<!ENTITY % paperdestination_enum 
	'( FALSE|
	DEST_UPPER|
	DEST_ONLYONE|
	DEST_LOWER|
	DEST_MIDDLE|
	DEST_MANUAL|
	DEST_AUTO|
	DEST_LARGECAPACITY|
	DEST_CASSETTE|
	DEST_USER|
	DEST_TRAY1|
	DEST_TRAY2|
	DEST_TRAY3|
	DEST_TRAY4|
	DEST_TRAY5|
	DEST_TRAY6|
	DEST_TRAY7|
	DEST_TRAY8|
	DEST_TRAY9|
	DEST_TRAY10|
	DEST_TRAY11|
	DEST_TRAY12
	)'>
<!ENTITY % paperdestination_attribute_default 
	' %paperdestination_enum; "FALSE"'>

<!ENTITY % staplelocation_enum 
	'(NONE|AUTO|1|2|LE|SE|LE2|SE2|TL|TC|TR|ML|MC|MR|BL|BC|BR|TL2|TC2|TR2|ML2|MC2|MR2|BL2|BC2|BR2)'>
<!ENTITY % staplelocation_attribute_default 
	' %staplelocation_enum; "NONE"'>

<!ENTITY % physical_spec 
	'Engine,RAM,ROM,Color,INSERTERS,STORAGES'>

<!ENTITY LT "<">
   

<!-- ................................................................. -->
<!-- UPDF Version                                                      -->
<!-- DeviceCap.Header                                                  -->
<!-- DeviceCap.Features                                                -->
<!-- ................................................................. -->
<!ELEMENT DeviceCap (UPDFVersion,DeviceCap.Header,DeviceCap.Features)> 
<!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 %bool_attribute_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 %locale_attribute_default;>
    <!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,FONTS,Overlays,Forms,
			 Communication,OEM,Localization,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 %bool_attribute_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 %bool_attribute_false;>
		<!ELEMENT ROM.SlotNum (#PCDATA)>
		<!ELEMENT ROM.FontSlotNum (#PCDATA)>
		<!ELEMENT ROM.FlashSlotNum (#PCDATA)>
	<!ELEMENT Color EMPTY >
	<!ATTLIST Color 
		tColor %state3_attribute_default;>
	
	<!ELEMENT INSERTERS (Inserter*)>
	<!ATTLIST INSERTERS 
		tInserter %state3_attribute_default; 
		NumInserter NMTOKEN "0" >
		<!ELEMENT Inserter (#PCDATA)>
	<!ELEMENT STORAGES (Storage*)>
	<!ATTLIST STORAGES 
		tStorage %state3_attribute_default; 
		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 %bool_attribute_false; >
		<!-- ADD! HOST RENDERING DEFAULT -->
		
		<!ELEMENT ObjectSignature EMPTY>
		<!ATTLIST ObjectSignature
				VectorSignatureWord NMTOKEN "0"
				RasterSignatureWord NMTOKEN "0">
		<!ELEMENT DDBProc EMPTY>
		<!ATTLIST DDBProc 
			fDisableReversingDDB %bool_attribute_false;>
		<!ELEMENT CacheProc EMPTY>
		<!ATTLIST CacheProc 
			fDisableObjectCache %bool_attribute_false;>
		
		<!--ELEMENT FONTSUBS(FontSub*)-->
		<!--ATTLIST FONTSUBS 
			NumFontSub NMTOKEN "0"-->
			<!--ELEMENT FontSub (#PCDATA)-->
	<!-- ..............................................................-->
    <!-- Resource                                                      -->
    <!-- ..............................................................-->
    <!ELEMENT Resource EMPTY >
    <!-- ..............................................................-->
    <!-- Fonts                                                         -->
    <!--     DefaultFont                                               -->
    <!--     InternalFont                                              -->
    <!-- ..............................................................-->
	<!ELEMENT FONTS (DefaultFont?,InternalFont?)>
	<!ATTLIST FONTS 
		fFont %bool_attribute_false;>
		<!ELEMENT DefaultFont (#PCDATA)>
		<!ATTLIST DefaultFont 
			DefaultFontSizePt NMTOKEN "10" 
			DefaultFontDBCS CDATA #IMPLIED>
		<!ELEMENT InternalFont (Font*)>
		<!ATTLIST InternalFont
			NumInternalFont NMTOKEN #IMPLIED>
			<!ELEMENT Font (#PCDATA)>
			<!ATTLIST Font 
				FontEncoding (Standard|Special|ISOLatin1|Export|ExpertSubset|JIS|RKSJ|EUC|ShiftJIS) "Standard" 
				FontVersion CDATA #IMPLIED 
				FontCharset (Standard|OldStandard|Special|ISOLatin1|Export|ExpertSubset|JIS83|JIS78|83_PV|ADD|EXT|NWP|JIS90|JIS97) "Standard" 
				FontStatus (ROM|RAM|HDD) "ROM" 
				FontId NMTOKEN #IMPLIED>
	<!-- ..............................................................-->
	<!-- Overlays                                                      -->
	<!-- ..............................................................-->
	<!ELEMENT Overlays EMPTY >
	<!-- ..............................................................-->
	<!-- Forms                                                         -->
	<!-- ..............................................................-->
	<!ELEMENT Forms EMPTY >
	<!-- ..............................................................-->
	<!-- Communication                                                 -->
	<!-- ..............................................................-->
	<!ELEMENT Communication EMPTY >
	<!-- ..............................................................-->
	<!-- OEM                                                           -->
	<!-- ..............................................................-->
	<!ELEMENT OEM EMPTY >
	<!-- ..............................................................-->
	<!-- Localization                                                  -->
	<!-- ..............................................................-->
	<!ELEMENT Localization EMPTY >
	<!-- ..............................................................-->
	<!-- Global                                                        -->
	<!-- ..............................................................-->
    <!ELEMENT Global (UserInterface,PaperMedia,PaperHandling,FINISHINGS,Colors,
		      EXPUNITS)>
	<!-- ..........................................................-->
	<!-- 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 %bool_attribute_false;>
	<!ELEMENT UIFeatures (UIFeature+)>
	<!ELEMENT UIFeature  (UIAttributes*, UIControl+)>
	<!ELEMENT UIAttributes (#PCDATA)>
	<!ATTLIST UIAttributes 
	    UIDisplayName CDATA #IMPLIED
	    UILocalize %bool_attribute_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)>
	<!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>
	<!ELEMENT List (ItemInList+)>
	<!ATTLIST List
	    Orientation CDATA #IMPLIED
	    ScrollBar %bool_attribute_false;>
	<!ELEMENT ItemInList EMPTY>
	<!ATTLIST ItemInList
	    UILabel CDATA #IMPLIED
	    Src CDATA #IMPLIED
	    Command CDATA #IMPLIED>
	<!ELEMENT Label EMPTY>
	<!ATTLIST Label
	    Text CDATA #IMPLIED
	    UILocalize %bool_attribute_false;>
	<!ELEMENT SrcImage EMPTY>
	<!ELEMENT TreeControl EMPTY>
	<!ELEMENT CustomControl EMPTY>
			    
	<!ELEMENT PrinterMemoryManage (#PCDATA)>
	<!ATTLIST PrinterMemoryManage 
	    PrinterMemoryManageId (NONE|MaxiMem|Met|MemoryBooster) "NONE">
	<!ELEMENT PAGEPROTECTS (PageProtect*)>
	<!ATTLIST PAGEPROTECTS 
	    fPageProtect %bool_attribute_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    %dmprintquality_attribute_default;>
	<!ELEMENT TONERSAVES (TonerSave*)>
	<!ATTLIST TONERSAVES 
	    fTonerSave %bool_attribute_false; 
	    NumTonerSave NMTOKEN "0">
	    <!ELEMENT TonerSave (#PCDATA)>
	    <!ATTLIST TonerSave 
		TonerSaveId (PRINTERDEFAULT|ON|OFF) "PRINTERDEFAULT" >
	<!ELEMENT SMOOTHINGMODES (SmoothingMode*)>
	<!ATTLIST SMOOTHINGMODES 
	    fSmoothingMode %bool_attribute_false; 
	    NumSmoothingMode NMTOKEN "0"> 
	    <!ELEMENT SmoothingMode (#PCDATA)>
	    <!ATTLIST SmoothingMode 
		SmoothingModeId (PRINTERDEFAULT|ON|OFF) "PRINTERDEFAULT" >
	<!ELEMENT DITHERSMOOTHINGS (DitherSmoothing*)>
	<!ATTLIST DITHERSMOOTHINGS 
	    fDitherSmoothing %bool_attribute_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 %bool_attribute_false; 
				NumHalftone NMTOKEN "0"> 
				<!ELEMENT Halftone (#PCDATA)>
				<!ATTLIST Halftone 
					HalftoneId %halftone_enum; "PRINTERDEFAULT" 
					ColorSpaceId %colorspace_enum; "NONE">
			<!ELEMENT GRAYOUTS (Grayout*)>
			<!ATTLIST GRAYOUTS 
				fGrayout %bool_attribute_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,
					 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 %bool_attribute_false; >
			<!ELEMENT FixingMode EMPTY >
			<!ATTLIST FixingMode 
				fFixingMode %bool_attribute_false; >
			<!ELEMENT HiRegistrationMode EMPTY >
			<!ATTLIST HiRegistrationMode 
				fHiRegistrationMode %bool_attribute_false; >
			<!ELEMENT ColorCalibration EMPTY >
			<!ATTLIST ColorCalibration 
				fColorCalibration (FALSE|TRUE|IMG) "FALSE" >
			<!ELEMENT LAYOUTS (Layout*)>
			<!ATTLIST LAYOUTS 
				tLayout %state3_attribute_default; 
				NumLayout NMTOKEN "0">
				<!ELEMENT Layout (#PCDATA)>
				<!ATTLIST Layout 
					LayoutId (NONE|Fit|Stretch|Zoom|2UP|4UP|Twice) "NONE">
	<!-- ..........................................................-->
	<!-- PaperMedia                                                -->
	<!-- ..........................................................-->
	<!ELEMENT PaperMedia (PAPERS,UDPINFOS,MEDIAS) >
	<!ELEMENT PAPERS (DefaultPaper?,Paper+)>
	<!ATTLIST PAPERS 
	    NumPaper NMTOKEN "1">
	    <!-- ..........................................................-->
	    <!-- DefaultPaper                                              -->
	    <!-- ..........................................................-->
	    <!ELEMENT DefaultPaper (DPLocale+,DPCustomLocale*) >
	    <!ELEMENT DPLocale (DPS+)>
	    <!ATTLIST DPLocale 
		LocaleId %locale_attribute_default;>
		<!ELEMENT DPS EMPTY>
		    <!ATTLIST DPS
			DefaultPaperSize %dmpapersize_enum; "DMPAPER_A4" >
	    <!ELEMENT DPCustomLocale (DPS+)>
	    <!ATTLIST DPCustomLocale 
		CustomLocaleId CDATA #IMPLIED>

			<!ELEMENT Paper (PCDATA?,Paper.Area?,Paper.LayoutFlag?,Paper.FinishingFlag?)>
			<!ATTLIST Paper 
				dmpapersize %dmpapersize_attribute_default;>
				<!ELEMENT Paper.Area (  Paper.Area.ptAreaPixel,Paper.Area.rcMarginPixel,
							Paper.Area.ptSizeMm10,Paper.Area.ptSizeInch100,
							Paper.Area.ptAreaMm10,Paper.Area.rcMarginMm10)>
					<!ELEMENT Paper.Area.ptAreaPixel EMPTY >
					<!ATTLIST Paper.Area.ptAreaPixel 
						%point_attributes;>
					<!ELEMENT Paper.Area.rcMarginPixel EMPTY >
					<!ATTLIST Paper.Area.rcMarginPixel 
						%rect_attributes;>
					<!ELEMENT Paper.Area.ptSizeMm10 EMPTY >
					<!ATTLIST Paper.Area.ptSizeMm10 
						%point_attributes;>
					<!ELEMENT Paper.Area.ptSizeInch100 EMPTY >
					<!ATTLIST Paper.Area.ptSizeInch100 
						%point_attributes;>
					<!ELEMENT Paper.Area.ptAreaMm10 EMPTY >
					<!ATTLIST Paper.Area.ptAreaMm10 
						%point_attributes;>
					<!ELEMENT Paper.Area.rcMarginMm10 EMPTY >
					<!ATTLIST Paper.Area.rcMarginMm10 
						%rect_attributes;>
				<!ELEMENT Paper.LayoutFlag EMPTY>
				<!ATTLIST Paper.LayoutFlag 
					fAssumed %bool_attribute_false; 
					fNoPairingOutputPage %bool_attribute_false; 
					fStretch %bool_enum; "TRUE"
					f2UP %bool_enum; "TRUE" 
					f4UP %bool_enum; "TRUE" 
					fTwice  %bool_enum; "TRUE" >
				<!ELEMENT Paper.FinishingFlag (FINISHINGS?)>
				
		<!ELEMENT UDPINFOS (UDPInfo*)>
		<!ATTLIST UDPINFOS 
			fUDPInfo %bool_attribute_false; 
			NumUDPInfo NMTOKEN "0">
			<!ELEMENT UDPInfo (UDPInfo.ptDefSizeMm10,UDPInfo.rcMarginMm10,UDPInfo.ptMinSizeMm10,UDPInfo.ptMaxSizeMm10)>
				<!ELEMENT UDPInfo.ptDefSizeMm10 EMPTY >
				<!ATTLIST UDPInfo.ptDefSizeMm10 
					%point_attributes;>
				<!ELEMENT UDPInfo.rcMarginMm10 EMPTY >
				<!ATTLIST UDPInfo.rcMarginMm10 
					%rect_attributes;>
				<!ELEMENT UDPInfo.ptMinSizeMm10 EMPTY >
				<!ATTLIST UDPInfo.ptMinSizeMm10 
					%point_attributes;>
				<!ELEMENT UDPInfo.ptMaxSizeMm10 EMPTY >
				<!ATTLIST UDPInfo.ptMaxSizeMm10 
					%point_attributes;>
		<!ELEMENT MEDIAS (Media*)>
		<!ATTLIST MEDIAS 
			fMedia %bool_attribute_false; 
			NumMedia NMTOKEN "0"> 
			<!ELEMENT Media (#PCDATA)>
			<!ATTLIST Media 
				MediaId (PRINTERDEFAULT|PrePrinted|Plain|Thickness|Transparency|Coated|Labels) "PRINTERDEFAULT" >
	    <!-- ..........................................................-->
	    <!-- PaperHandling                                             -->
	    <!-- ..........................................................-->
		<!ELEMENT PaperHandling (PAPERSOURCES,PAPERDESTINATIONS)>
		<!-- -->
		<!ELEMENT PAPERSOURCES (DefaultPaperSource?,PaperSource*)>
		<!ATTLIST PAPERSOURCES 
			NumPaperSource NMTOKEN "0">
			<!ELEMENT DefaultPaperSource EMPTY>
			<!ATTLIST DefaultPaperSource 
				PAPERSOURCESDefault %dmdefaultsource_enum; "DMBIN_AUTO" >
			<!ELEMENT PaperSource (PCDATA,PAPERS)>
			<!ATTLIST PaperSource 
				dmdefaultsource %dmdefaultsource_attribute_default; 
				Invocation CDATA #IMPLIED>
		<!ELEMENT PAPERDESTINATIONS (DefaultPaperDestination?,PaperDestination*)>
		<!ATTLIST PAPERDESTINATIONS 
			NumPaperDestination NMTOKEN "0">
			<!ELEMENT DefaultPaperDestination EMPTY>
			<!ATTLIST DefaultPaperDestination 
				PAPERDESTINATIONDefault %paperdestination_enum; "FALSE">
			<!ELEMENT PaperDestination (PCDATA,PAPERS)>
			<!ATTLIST PaperDestination 
				paperdestination %paperdestination_attribute_default; 
				Invocation CDATA #IMPLIED>

	<!-- ..........................................................-->
	<!-- Finishing                                                 -->
	<!-- ..........................................................-->
		<!ELEMENT FINISHINGS (Duplex?,Booklet?,CenterFoldAndStaple?,ReverseOrder?,JobOffset?,Collate,Group?,MailBox?,Staple?,FOLDS?,HolePunch?)>
		<!ATTLIST FINISHINGS 
			tFinishings %state3_attribute_default;>
			<!ELEMENT Duplex EMPTY>
			<!ATTLIST Duplex 
				tDuplex %state3_attribute_default;>
			<!ELEMENT Booklet EMPTY>
			<!ATTLIST Booklet 
				tBooklet %state3_attribute_default;>
				<!--ELEMENT Booklet.MaxNum (#PCDATA)-->
				<!--ELEMENT Booklet.MaxBindMarginMm (#PCDATA)-->
			<!-- ELEMENT CenterFoldAndStaple EMPTY -->
			<!-- ATTLIST CenterFoldAndStaple 
				tCenterFoldAndStaple %state3_attribute_default;-->
			<!ELEMENT ReverseOrder EMPTY >
			<!ATTLIST ReverseOrder 
				tReverseOrder %state3_attribute_default;>
			<!ELEMENT JobOffset EMPTY>
			<!ATTLIST JobOffset 
				tJobOffset %state3_attribute_default;>
			<!ELEMENT JobRotation EMPTY>
			<!ATTLIST JobRotation 
				tJobRotation %state3_attribute_default;>
			<!ELEMENT Collate (CollateType?)>
			<!ATTLIST Collate 
				tCollate %state3_attribute_default;>
				<!ELEMENT CollateType EMPTY>
				<!ATTLIST CollateType 
					CollateTypeId (AUTO|JS|Hardware) "AUTO">
				<!--ELEMENT Collate.MaxNum (#PCDATA)-->
			<!ELEMENT Group EMPTY>
			<!ATTLIST Group 
				tGroup %state3_attribute_default;>
			<!ELEMENT MailBox (MailBox.MaxNum?)>
			<!ATTLIST MailBox 
				tMailBox %state3_attribute_default;>
				<!ELEMENT MainlBox.MaxNum (#PCDATA)>
			<!ELEMENT Staple (Staple.MaxNum?,Staple.LOCATIONS?)>
			<!ATTLIST Staple 
				tStaple %state3_attribute_default;>
				<!ELEMENT Staple.MaxNum (#PCDATA)>
				<!ELEMENT Staple.LOCATIONS (Staple.Location*)>
				<!ATTLIST Staple.LOCATIONS 
					Staple.NumLocation NMTOKEN "0">
					<!ELEMENT Staple.Location (#PCDATA)>
					<!ATTLIST Staple.Location 
						Staple.LocationId %staplelocation_attribute_default;>
			<!ELEMENT FOLDS (Fold*)>
			<!ATTLIST FOLDS 
				tFold %state3_attribute_default; 
				NumFold NMTOKEN "0">
				<!-- ELEMENT Fold.MaxNum (#PCDATA) -->
				<!ELEMENT Fold (Fold.Type)>
					<!ELEMENT Fold.Type EMPTY> 
					<!ATTLIST Fold.Type 
						FoldTypeId (NONE|ZFold|Saddle|DoubleGate|LeftGate|RightGate|LetterFold|XFold) "NONE"
						MaxNum  NMTOKEN #IMPLIED>
			<!ELEMENT HolePunch (HolePunch.MaxNum?)>
			<!ATTLIST HolePunch
				tHolePunch %state3_attribute_default;>
				<!ELEMENT HolePunch.MaxNum (#PCDATA)>

	<!-- ..........................................................-->
	<!-- Colors                                                    -->
	<!-- ..........................................................-->
		<!ELEMENT Colors (ColorProcessing,PIXELDEPTHS) >
		<!ELEMENT ColorProcessing (COLORSPACES,ColorModeSwith?)>
			<!ELEMENT COLORSPACES (ColorSpace*,BaseColorSpace?)>
			<!ATTLIST COLORSPACES 
				fColorSpace %bool_attribute_false; 
				NumColorSpace NMTOKEN "0">
				<!ELEMENT ColorSpace EMPTY >
				<!ATTLIST ColorSpace 
					ColorSpaceId %colorspace_enum; "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 %bool_attribute_false; 
			NumPixelDepth NMTOKEN "0"> 
			<!ELEMENT PixelDepth (#PCDATA)>
			<!ATTLIST PixelDepth 
				PixelDepthId NMTOKEN #IMPLIED 
				ColorSpaceId %colorspace_enum; "NONE">
	    <!-- ..........................................................-->
		<!-- Expansion Units                                           -->
	    <!-- ..........................................................-->
		<!ELEMENT EXPUNITS (EXPRAMS,EXPFONTCARDS,EXPDUPLEXS,EXPPAPERSOURCES,EXPPAPERDESTINATIONS,EXPINSERTERS,EXPSTORAGES)>
			<!ELEMENT EXPRAMS (ExpRAM*)>
			<!ATTLIST EXPRAMS 
				fExpRAM %bool_attribute_false; 
				NumExpRAM NMTOKEN "0"> 
				<!ELEMENT ExpRAM (#PCDATA)>
				<!ATTLIST ExpRAM 
				EntryNumber NMTOKEN "0" 
				ExpRAMSizeMB NMTOKEN #IMPLIED>
			
			<!ELEMENT EXPFONTCARDS (ExpFontCard*)>
			<!ATTLIST EXPFONTCARDS 
				fExpFontCard %bool_attribute_false; 
				NumExpFontCard NMTOKEN "0"> 
				<!ELEMENT ExpFontCard (PCDATA,ExpFontCard.FONTS)>
				<!ATTLIST ExpFontCard 
					ExpFontCardId NMTOKEN #IMPLIED>
					<!ELEMENT ExpFontCard.FONTS (Font*)>
					<!ATTLIST ExpFontCard.FONTS 
						ExpFontNum NMTOKEN #IMPLIED>
						<!-- ELEMENT Font (#PCDATA)-->
			
			<!ELEMENT EXPDUPLEXS (ExpDuplex*)>
			<!ATTLIST EXPDUPLEXS 
				fExpDuplex %bool_attribute_false; 
				NumExpDuplex NMTOKEN "0">
				<!ELEMENT ExpDuplex (PCDATA,PAPERS)>
					<!-- ????? FINISHINGS -->
					<!-- ELEMENT PAPERS (Paper)+-->
			
			<!ELEMENT EXPPAPERSOURCES (ExpPaperSource*)>
			<!ATTLIST EXPPAPERSOURCES 
				fExpPaperSource %bool_attribute_false; 
				NumExpPaperSource NMTOKEN "0">
				<!ELEMENT ExpPaperSource (PCDATA,PAPERSOURCES)>
					<!-- ELEMENT PaperSource -->
			
			<!ELEMENT EXPPAPERDESTINATIONS (ExpPaperDestination*)>
			<!ATTLIST EXPPAPERDESTINATIONS 
				fExpPaperDestination %bool_attribute_false; 
				NumExpPaperDestination NMTOKEN "0">
				<!ELEMENT ExpPaperDestination (PCDATA,FINISHINGS?,PAPERDESTINATIONS)>
					<!-- ELEMENT FINISHINGS -->
					<!-- ELEMENT PaperDestination -->
			
			<!ELEMENT EXPINSERTERS (Inserter*)>
			<!ATTLIST EXPINSERTERS 
				fExpInserter %bool_attribute_false; 
				NumExpInserter NMTOKEN "0">
				<!--ELEMENT Inserter (#PCDATA)-->
			<!ELEMENT EXPSTORAGES (Storage*)>
			<!ATTLIST EXPSTORAGES 
				fExpStorage %bool_attribute_false; 
				NumExpStorage NMTOKEN "0">
				<!--ELEMENT Storage (#PCDATA)-->
<!ENTITY % Constraints SYSTEM "UPDF Constraints.dtd">
%Constraints;

<!-- ................................................................. -->
<!-- FAXCAP is TOTALSPEC STRUCTURE for Fax                             -->
<!-- ................................................................. -->
<!ELEMENT FaxCap (FaxCap.Header,Features)> 
<!ELEMENT FaxCap.Header (Fax,Language,ModuleNames)>
	<!ELEMENT Fax (#PCDATA)>
<!-- ................................................................. -->
<!-- Fax Features                                                      -->
<!-- ................................................................. -->

<!-- ................................................................. -->
<!-- SCANCAP is TOTALSPEC STRUCTURE for Scan                           -->
<!-- ................................................................. -->
<!ELEMENT ScanCap (ScanCap.Header,Features)> 
<!ELEMENT ScanCap.Header (Scan,Language,ModuleNames)>
	<!ELEMENT Scan (#PCDATA)>
<!-- ................................................................. -->
<!-- Scan Features                                                     -->
<!-- ................................................................. -->

