国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      多級(jí)設(shè)備性能分層結(jié)構(gòu)的制作方法

      文檔序號(hào):6650887閱讀:569來(lái)源:國(guó)知局
      專利名稱:多級(jí)設(shè)備性能分層結(jié)構(gòu)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及用于發(fā)現(xiàn)設(shè)備性能的方法和系統(tǒng)。
      背景技術(shù)
      發(fā)現(xiàn)諸如用戶可配置性能等設(shè)備性能可便利于設(shè)備的使用。例如,如果應(yīng)用程序能夠確定特定硬件或固件設(shè)備的性能,那么應(yīng)用程序和用戶應(yīng)該能夠充分利用設(shè)備的性能。例如,在打印空間中,如果應(yīng)用程序能夠確定驅(qū)動(dòng)程序和諸如打印機(jī)處理器等驅(qū)動(dòng)程序相關(guān)組件的性能,應(yīng)用程序就可以充分利用相關(guān)聯(lián)的打印機(jī)。然而,不存在描述設(shè)備性能的一致的、開放的和可擴(kuò)展的方式。而是趨于使用平面的、固定的列表來(lái)描述設(shè)備性能。描述性能的這種方式具有有限的效用,并且不允許對(duì)性能的仔細(xì)研究。
      相應(yīng)地,本發(fā)明源于關(guān)于提供描述諸如設(shè)別的設(shè)置等設(shè)備性能的改進(jìn)的方法和系統(tǒng)的考慮,并使用對(duì)那些性能的描述來(lái)更有效地使用設(shè)備。

      發(fā)明內(nèi)容
      描述了描述設(shè)備性能的方法和系統(tǒng)。提出了示例性模式,由所述示例性模式組成了應(yīng)用程序和設(shè)備之間的通信語(yǔ)言。模式是基于使用模式關(guān)鍵字來(lái)為特定設(shè)備表述全套的用戶可配置性能的框架構(gòu)造的。在所示和所描述的實(shí)施例中,模式使用分級(jí)結(jié)構(gòu),它在表示諸如設(shè)備可用設(shè)置等設(shè)備性能時(shí)允許不同級(jí)別的粒度。當(dāng)接收到設(shè)備可用設(shè)置的表示后,客戶機(jī)現(xiàn)在能夠選擇和使用特定的設(shè)備配置。


      圖1是用于實(shí)現(xiàn)所述實(shí)施例的示例性計(jì)算設(shè)備。
      詳細(xì)描述概述在以下的討論中,描述了用于描述設(shè)備性能的方法和系統(tǒng)。示出了一個(gè)示例性模式,該示例性模式組成了應(yīng)用程序和設(shè)備之間的通信語(yǔ)言。該模式是在使用模式關(guān)鍵字表示特定設(shè)備的全套用戶可配置性能的框架上構(gòu)造的。在所示和所述的實(shí)施例中,模式利用分層結(jié)構(gòu),它允許此不同等級(jí)的粒度表示設(shè)備性能。
      在隨后的討論中,會(huì)在打印系統(tǒng)的環(huán)境中描述模式及其使用,所述打印系統(tǒng)包括使用打印模式來(lái)向應(yīng)用程序描述其性能的打印設(shè)備。在這些實(shí)施例中,模式構(gòu)成了應(yīng)用程序、打印子系統(tǒng)組件和設(shè)備之間的通信語(yǔ)言。打印系統(tǒng)組件包括(通過(guò)示例而非限制)打印機(jī)驅(qū)動(dòng)程序以及以及未來(lái)的過(guò)濾器管道過(guò)濾器等。然而,應(yīng)該理解,該模式及其使用并不只限于打印環(huán)境。相應(yīng)地,模式的原理及其使用可以應(yīng)用到除打印環(huán)境外其他的環(huán)境中,而不背離所作權(quán)力要求的主題的精神和范圍。
      在以下的討論中,在純文本分層結(jié)構(gòu)的文檔中發(fā)布或描述設(shè)備性能,所述文檔被稱為“PrintCapabilities”文檔。在一個(gè)實(shí)施例中,分層結(jié)構(gòu)文檔包括一XML文檔。PrintCapabilities文檔包括以打印模式關(guān)鍵字定義的術(shù)語(yǔ)和私有擴(kuò)展。當(dāng)受到客戶機(jī)查詢時(shí),設(shè)備或設(shè)備驅(qū)動(dòng)程序生成關(guān)于它們當(dāng)前的可配置選項(xiàng)組的PrintCapabilities文檔,所述客戶機(jī)可以是應(yīng)用程序或打印子系統(tǒng)。在所述實(shí)施例中,PrintCapabilities文檔明確地描述設(shè)備的所有屬性以及每個(gè)屬性可允許的設(shè)置。通過(guò)使用打印模式框架,可以精確地描述和有效地比較設(shè)備屬性。通過(guò)使用包含在打印模式關(guān)鍵字文檔中的關(guān)鍵字和在打印模式框架中定義的結(jié)構(gòu),設(shè)備可以使得客戶機(jī)更有效地使用設(shè)備性能。
      在所示和所述的實(shí)施例中,PrintCapabilities文檔表示了多層性能的分層結(jié)構(gòu)。在以下所述的特定例子中,描述了三層性能-作業(yè)、文檔和頁(yè)面-由XML文檔表示。每個(gè)層次表示某個(gè)打印作業(yè)組件并指定如何在PrintTicket中定義設(shè)置和在PrintTicket處理中應(yīng)用設(shè)置,以下會(huì)對(duì)此作出更詳細(xì)的描述。
      首先,在描述PrintCapabilities文檔及其使用之前,且為了提供對(duì)該討論的一些背景,在主標(biāo)題“打印模式”之下描述了PrintCapabilities文檔構(gòu)建于其上的示例性打印模式。該討論之后,出現(xiàn)在主標(biāo)題“PrintCapabilities模式和文檔構(gòu)建”之下的是對(duì)PrintCapabilities模式和文檔的討論。最后,為了提供如何使用PrintCapabilities文檔的例子,在主標(biāo)題“PrintTicket模式和文檔構(gòu)建”下提供了對(duì)使用包含在PrintCapabilities文檔中的信息的PrintTicket的討論。
      打印模式打印模式提供了基于可擴(kuò)展標(biāo)記語(yǔ)言(XML)的格式,用于用分層結(jié)構(gòu)方式表示和組織描述作業(yè)格式或PrintCapabilities的較大屬性組。在所示和所述的實(shí)施例中,打印模式是一涵蓋性術(shù)語(yǔ),包括兩個(gè)組件,即打印模式關(guān)鍵字和打印模式框架。打印模式關(guān)鍵字文檔是定義一組元素實(shí)例的公共模式,所述元素實(shí)例用于描述設(shè)備屬性和打印作業(yè)格式。打印模式框架是定義XML元素類型的分層結(jié)構(gòu)集合的公共模式,并指定如何一起使用這些元素類型。
      打印模式關(guān)鍵字和打印模式框架形成了兩種打印模式相關(guān)技術(shù)的基礎(chǔ),所述兩種打印模式即PrintCapabilities模式和PrintTicket模式。
      打印模式的目標(biāo)之一是供應(yīng)商能支持模式擴(kuò)展。即不限制供應(yīng)商僅使用這些構(gòu)建于打印模式框架之上的技術(shù)中打印模式關(guān)鍵字中定義的特性、特征、選項(xiàng)或ParameterInit實(shí)例。而是,可以將供應(yīng)商專用元素自由地散布在打印模式關(guān)鍵字中定義的元素實(shí)例中。唯一的要求是供應(yīng)商一專用(即私有)特性實(shí)例必須屬于明確地與供應(yīng)商相關(guān)聯(lián)的名稱空間。
      打印模式背景打印模式旨在解決與打印子系統(tǒng)的組件之間的內(nèi)部通信和與打印子系統(tǒng)和應(yīng)用程序之間的外部通信相關(guān)聯(lián)的不透明和不明確的問(wèn)題。打印模式及其相關(guān)技術(shù)提供了以統(tǒng)一且合理的方式傳遞設(shè)置和性能的一致的、明確的和可擴(kuò)展的方法。
      打印模式關(guān)鍵字和打印模式框架的概念上的基礎(chǔ)是一致的、不模糊的和可擴(kuò)展的。一致性是通過(guò)使用打印模式關(guān)鍵字和打印模式框架作為打印組件之間的通信構(gòu)建塊來(lái)達(dá)到的。應(yīng)用程序、Microsoft_Windows_打印子系統(tǒng)和IHV插件程序及驅(qū)動(dòng)程序使用這種通用機(jī)制來(lái)交互。這些關(guān)鍵字、它們的結(jié)構(gòu)和它們的含義會(huì)由公共模式明確定義。這防止了特定關(guān)鍵字含義的模糊性,并防止了冗余或重復(fù)的關(guān)鍵字。所有組件可以依賴于使用特定關(guān)鍵字來(lái)傳送某個(gè)意圖并且使得接收者能夠很好地理解該意圖??蓴U(kuò)展性增進(jìn)了打印模式關(guān)鍵字的長(zhǎng)壽命,確保公共模式是動(dòng)態(tài)實(shí)體。由于期望將來(lái)把私有關(guān)鍵字包含到公共模式中以保持一致性并防止模糊,該結(jié)構(gòu)也允許私有擴(kuò)展,這給予獨(dú)立硬件開發(fā)商(IHV)自由地進(jìn)行革新的靈活性。
      打印模式相關(guān)技術(shù)如上所述,兩種基于打印模式構(gòu)造的相關(guān)技術(shù)是PrintCapabilities和PrintTicket技術(shù)。
      PrintCapabilities技術(shù)是發(fā)布可配置PrintCapabilities的方法。PrintCapabilities在被稱為PrintCapabilities文檔的純文本可擴(kuò)展標(biāo)記語(yǔ)言(XML)文檔中發(fā)布,該文檔由在打印模式關(guān)鍵字和私有擴(kuò)展中定義的術(shù)語(yǔ)組成。該文檔描述了當(dāng)前設(shè)備上可用的所有可配置PrintCapabilities,諸如結(jié)束選項(xiàng)和頁(yè)面布局選項(xiàng)。PrintCapabilities文檔明確地描述了設(shè)備的所有屬性和每個(gè)屬性所允許的設(shè)置。通過(guò)使用打印模式框架,可以精確地描述和有效地比較設(shè)備屬性。通過(guò)使用包含在打印模式關(guān)鍵字文檔中的關(guān)鍵字以及在打印模式框架中定義的結(jié)構(gòu),設(shè)備可以使得客戶機(jī)能夠更有效地使用PrintCapabilities。
      相對(duì)于Microsoft_Windows_Server 2003和更早版本中的打印子系統(tǒng),PrintCapabilities技術(shù)允許專戶和打印子系統(tǒng)組件透明地查看包含在當(dāng)前Microsoft Win32_系統(tǒng)二進(jìn)制PrintCapabilities中的信息。這使得用戶能夠查詢PrintCapabilities、接收一致的和很好理解的XML快照,并使用它來(lái)為設(shè)備構(gòu)建PrintTickets而無(wú)需調(diào)用驅(qū)動(dòng)程序用戶界面(UI)。
      旨在替代當(dāng)前DEVMODE結(jié)構(gòu)的使用的PrintTicket技術(shù)是指定和堅(jiān)持作業(yè)格式以及設(shè)備配置信息的XML方法。一PrintTicket實(shí)例是為設(shè)備屬性分配特定設(shè)置和傳遞用戶意向的純文本XML文檔。有兩類PrintTickets一般PrintTickets,對(duì)特定設(shè)備不會(huì)生成一般PrintTickets;以及設(shè)備特定PrintTickets,對(duì)特定設(shè)備構(gòu)建設(shè)備特定PrintTickets。旨在可以在各設(shè)備之間移植的一般PrintTickets通過(guò)為在打印模式關(guān)鍵字中專門描述的每個(gè)設(shè)備屬性選擇設(shè)置來(lái)獲取它們的內(nèi)容。設(shè)備特定PrintTickets從PrintCapabilities文檔獲取它們的內(nèi)容,這是通過(guò)為由該文檔提及的每個(gè)設(shè)備屬性選擇設(shè)置。PrintTickets也包括特定于一個(gè)設(shè)備模型或設(shè)備模型族的私有擴(kuò)展。
      相對(duì)于當(dāng)前打印子系統(tǒng),PrintTicket技術(shù)使打印子系統(tǒng)的所有組件和客戶機(jī)能夠透明地訪問(wèn)當(dāng)前存儲(chǔ)在DEVMODE結(jié)構(gòu)的公用和私用部分中的使用明確定義的XML格式的信息。這種設(shè)計(jì)解決了當(dāng)前在為PrintTicket技術(shù)設(shè)計(jì)的驅(qū)動(dòng)程序中在驅(qū)動(dòng)程序升級(jí)或降級(jí)和驅(qū)動(dòng)程序不匹配情況下遇到的問(wèn)題。當(dāng)前這些情況可以導(dǎo)致丟失設(shè)置并因此導(dǎo)致負(fù)面的用戶經(jīng)歷。PrintTicket也允許了新的情況,諸如允許打印機(jī)驅(qū)動(dòng)程序以一致和明確的方式將其私有DEVMODE設(shè)置提供給應(yīng)用程序和定制插件程序。這使得打印組件能夠更為透明且能夠更清楚地處理設(shè)置移植。PrintTicket界面將通過(guò)受管理編碼對(duì)象上的方法提供給應(yīng)用程序,所述受管理編碼對(duì)象也會(huì)對(duì)腳本可用。在基于Microsoft的“Longhorn”中受管理編碼對(duì)象構(gòu)建的新的應(yīng)用程序框架中,PrintTicket是描述文檔設(shè)置的標(biāo)準(zhǔn)方法。
      打印模式中使用的術(shù)語(yǔ)依照一個(gè)實(shí)施例,以下部分包含特定于打印模式和相關(guān)技術(shù)的術(shù)語(yǔ)。
      屬性名稱是標(biāo)準(zhǔn)可擴(kuò)展標(biāo)記語(yǔ)言(XML)屬性等號(hào)左邊的記號(hào)。標(biāo)準(zhǔn)的XML屬性的表示是&lt;attribute name&gt;=″&lt;attribute value&gt;″。雖然類似,但是術(shù)語(yǔ)“attributevalue”不能與打印模式框架中定義的名稱屬性相混淆。在打印模式框架中定義的名稱屬性是屬性名稱的特定實(shí)例。
      候選者選項(xiàng)是屬于在評(píng)價(jià)過(guò)程中評(píng)估的列表的任意選項(xiàng)。下面看術(shù)語(yǔ)評(píng)價(jià)或映射選項(xiàng)和參考選項(xiàng)。
      術(shù)語(yǔ)配置描述了設(shè)備可以采取或被置于的狀態(tài)之一。設(shè)備在每個(gè)狀態(tài)中不同地執(zhí)行其任務(wù)。在這些狀態(tài)的每一個(gè)中的設(shè)備的表現(xiàn)之間有著明顯的和可以辨認(rèn)的差別。例如,在一個(gè)狀態(tài)中,從一個(gè)盤中取出介質(zhì)并在另一個(gè)盤中結(jié)束。這些盤中任意一個(gè)或兩者中的變化確定了不同的狀態(tài)。
      約束是指確定配置的有效性所需的信息。約束通常是以下形式設(shè)置成Optionl的FeatureA與設(shè)置成Option2的FeatureB不兼容。
      對(duì)應(yīng)元素是指相對(duì)于指定的原始元素對(duì)具有相同的位置。原始元素通常是進(jìn)行比較的兩個(gè)選項(xiàng)元素。
      默認(rèn)選項(xiàng)是指由打印模式或PrintCapabilities供應(yīng)商指定的選項(xiàng),當(dāng)PrintTicket不包含用于一特征的明確設(shè)置時(shí)該選項(xiàng)被分配給該特征。每個(gè)特征具有指定的默認(rèn)選項(xiàng)。
      默認(rèn)配置屬性是指對(duì)設(shè)備配置的定義有用的設(shè)備屬性。設(shè)備配置屬性在打印模式框架中用特征/選項(xiàng)或參數(shù)構(gòu)造來(lái)表示。注意這種情況下所使用的屬性與XML屬性或打印模式框架定義的屬性元素?zé)o關(guān)。
      元素類型是指在打印模式框架中定義的每個(gè)XML元素的類型并且由其XML元素標(biāo)記來(lái)標(biāo)識(shí)。
      共有元素與上述的對(duì)應(yīng)元素意思相同。
      特征是指打印模式框架定義的構(gòu)造,用于表示特定設(shè)備配置屬性。每個(gè)特征實(shí)例表示一個(gè)設(shè)備屬性。特征實(shí)例是通過(guò)明確地定義它的每個(gè)狀態(tài)來(lái)定義的。
      身份選項(xiàng)是指當(dāng)選擇時(shí)沒有看得見的效果的選項(xiàng);實(shí)際上是″no-op″(無(wú)選項(xiàng))。不管這個(gè)選項(xiàng)被選擇幾次結(jié)果總是相同的。
      實(shí)例名稱是指標(biāo)識(shí)元素類型的特定實(shí)例的XML屬性。參見以下的名稱屬性。
      界面客戶機(jī)只是消費(fèi)PrintCapabilities的文檔和構(gòu)建和消費(fèi)PrintTickets的實(shí)體。界面客戶機(jī)的通用例子包括用戶界面(UI)模塊和渲染模塊。
      界面供應(yīng)商是指通過(guò)界面實(shí)現(xiàn)和提供功能的實(shí)體。在打印模式中,這等同于創(chuàng)建PrintCapabilities文檔和確認(rèn)PrintTickets。
      元素位置是指元素層次中一元素的特定實(shí)例的位置。該位置是由特定元素和該元素的所有祖先定義的。換而言之,位置等同于文件系統(tǒng)中的完全限定路徑。
      名稱屬性是指給予具有“name”的屬性名稱的XML屬性的名稱。該屬性出現(xiàn)在打印模式框架中定義的大多數(shù)元素類型中。它標(biāo)識(shí)和定義了每種元素類型的實(shí)例。以下兩個(gè)術(shù)語(yǔ)是指名稱屬性兄弟唯一性規(guī)則和命名空間約定。
      命名空間約定規(guī)定了模式定義的名稱屬性以及任一模式定義的對(duì)象存在于一專用命名空間、公用命名空間中,以及私有定義的名稱屬性必須存在于不同的名稱空間中,所述不同的名稱空間可以被標(biāo)識(shí)為屬于定義方。
      選項(xiàng)是用于表示每種特征可以采取或置于的狀態(tài)的打印模式框架構(gòu)造。例如,如果特征表示介質(zhì)大小,典型的選項(xiàng)值可以是信件、法定、A4等。
      參數(shù)是由打印模式支持的且描述了用于用戶輸入的參數(shù)化的數(shù)據(jù)。在參數(shù)輸入中有三種起作用的打印模式框架元素類型ParameterDef、ParameterInit和ParameterRef。ParameterDef元素表示參數(shù)的特征(其值的范圍、其數(shù)據(jù)的類型以及其他特征)。ParameterInit元素用于初始化參數(shù)。ParameterRef元素用于參考ParameterInit元素的一特定實(shí)例。
      參數(shù)化選項(xiàng)是包含至少一個(gè)ScoredProperty元素的選項(xiàng)實(shí)例,所述ScoredProperty元素包含一ParameterDef元素而非值元素。
      完全匹配選項(xiàng)是指如果對(duì)于一個(gè)選項(xiàng)實(shí)例中每個(gè)ScoredProperty元素,在其他的選項(xiàng)實(shí)例中有對(duì)應(yīng)的ScoredProperty實(shí)例,且對(duì)應(yīng)ScoredProperty實(shí)例的兩個(gè)值元素是等價(jià)的,那么這兩個(gè)選項(xiàng)實(shí)例被認(rèn)為是完全匹配的。
      PrintCapabilities模式是指定義PrintCapabilities文檔所使用的語(yǔ)法和語(yǔ)義的模式。PrintCapabilities模式和PrintTicket模式是打印模式的子集。參見以下打印模式框架。
      PrintTicket模式是指定義PrintTicket所使用的語(yǔ)法和語(yǔ)義的模式。PrintTicket模式和PrintCapabilities模式是打印模式的子集。也參見以下打印模式框架。
      打印模式框架是指定義打印模式技術(shù)所使用的語(yǔ)法和語(yǔ)義的模式。例如,打印模式框架定義的元素類型的集合以及它們的使用,但是沒有枚舉所有的元素實(shí)例。
      打印模式關(guān)鍵字是指定義通常用于描述設(shè)備和作業(yè)格式的特性、特征和選項(xiàng)元素的個(gè)體實(shí)例。該模式定義了使得PrintCapabilities文檔和PrintTickets可移植的通用語(yǔ)言。也被稱為公用模式。
      私有定義是指出現(xiàn)在PrintCapabilities文檔或PrintTickets中沒有在打印模式關(guān)鍵字中明確定義的元素的任何實(shí)例。這些元素實(shí)例必須明確地符合每個(gè)供應(yīng)商的私有名稱空間。
      參考選項(xiàng)是指將每個(gè)候選選項(xiàng)與之作比較的選項(xiàng)。參考選項(xiàng)一般來(lái)自PrintTicket。參見術(shù)語(yǔ)評(píng)價(jià)或映射選項(xiàng)以及候選選項(xiàng)。
      根層次是打印模式框架的層次結(jié)構(gòu)的基礎(chǔ)。根層次元素被定義為PrintCapabilities元素和PrintTicket元素的子元素。
      ScoredProperty是用于表示將一個(gè)選項(xiàng)實(shí)例與另一個(gè)相區(qū)別的性質(zhì)的打印模式框架結(jié)構(gòu)。一個(gè)例子是信件和法定尺寸紙張的不同。
      評(píng)價(jià)或映射選項(xiàng)是指從列表中選出最好地匹配給定(參考)選項(xiàng)實(shí)例的(候選)選項(xiàng)實(shí)例的過(guò)程。緊密相關(guān)的術(shù)語(yǔ)是候選選項(xiàng)和參考選項(xiàng)。
      兄弟唯一性原則規(guī)定了相同元素類型的所有兄弟必須具有唯一的名稱屬性。一些元素類型可以豁免該規(guī)則。這些例外在打印模式框架中定義。
      單值相對(duì)多值特性是一特性,其值是恒定的(不取決于配置),被認(rèn)為是單值。這樣的特性在任何可能的配置下只有單一的值。取決于配置的特性被認(rèn)為是多值。
      確認(rèn)指驗(yàn)證PrintTicket符合模式并表示可以由特定設(shè)備執(zhí)行的配置的過(guò)程。
      打印模式的語(yǔ)法打印模式使用可擴(kuò)展標(biāo)記語(yǔ)言(XML)語(yǔ)法表示。因此,期望讀者熟悉XML語(yǔ)法和術(shù)語(yǔ),諸如元素、元素標(biāo)記、元素內(nèi)容、屬性和名稱空間。打印模式框架是由少量元素類型構(gòu)成的;每種元素類型在構(gòu)建于打印模式上的技術(shù)中為特定目的服務(wù)。
      元素類型通過(guò)它們的XML元素標(biāo)記來(lái)區(qū)分。打印模式框架通過(guò)為每種元素類型表示哪些元素類型被允許作為子元素而定義了相關(guān)技術(shù)的全部結(jié)構(gòu)和組織。
      許多元素類型是通過(guò)名稱屬性與相同類型的其他元素區(qū)分,這在模式中起到重要的作用。名稱屬性用作標(biāo)識(shí)每個(gè)元素類型的實(shí)例。打印模式關(guān)鍵字為許多元素類型的名稱屬性定義了一組值。在多數(shù)情況下,供應(yīng)商可以將它們自己的值分配給名稱屬性。它們只需要保證這些值是對(duì)用供應(yīng)商唯一的名稱空間限定的XML QNames。
      元素類型總結(jié)這個(gè)部分列出了在打印模式框架中定義的元素類型,用于表示打印模式相關(guān)技術(shù)。每種元素類型在后續(xù)部分中詳細(xì)描述。這些描述也指定了元素類型可以出現(xiàn)的環(huán)境(可以成為給定元素的父元素的元素)以及所允許的元素內(nèi)容。
      屬性屬性元素用于以明確定義的方式指定打印模式框架元素的含義。系統(tǒng)使用屬性元素來(lái)定制它對(duì)特性和ScoredProperty元素的處理。屬性元素應(yīng)該僅在打印模式所指示的地方出現(xiàn),用于完成打印模式指定的目的。
      元素標(biāo)記是“&lt;Attribute&gt;”,其XML屬性如下名稱保存屬性的名稱。打印模式關(guān)鍵字文檔定義了每個(gè)標(biāo)準(zhǔn)屬性的目的以及它可以出現(xiàn)的特定環(huán)境。只允許在打印模式關(guān)鍵字中定義的屬性名稱。注意打印模式關(guān)鍵字文檔的當(dāng)前版本不定義任何屬性名稱;傳播確定屬性元素可以在其中出現(xiàn)的導(dǎo)出文檔。當(dāng)前沒有為該可擴(kuò)展標(biāo)記語(yǔ)言(XML)屬性定義的值。
      以下表格列出了可以成為該元素的父元素的元素、可以成為該元素的子元素的元素以及對(duì)元素自身的任何限制。

      屬性元素可以不具有任何配置相關(guān)性。以下例子示出一屬性元素。&lt;Attribute name=″myAttr″&gt;
      &lt;Value xsi:type=″string″&gt;Sample&lt;/Value&gt;&lt;/Attribute&gt;
      AttributeSet(屬性集)AttributeSet元素允許一個(gè)或多個(gè)屬性元素參考相同的屬性元素集,由此避免對(duì)屬性元素不必要的重復(fù)。單個(gè)特性元素可以參考單個(gè)屬性元素以及多個(gè)AttributeSet元素。如果屬性的定義允許它被覆蓋且屬性被多重定義,那么優(yōu)先的是單個(gè)屬性元素覆蓋AttributeSet元素,且在每種類型中(類型單個(gè)屬性或AttributeSet元素),首先出現(xiàn)的屬性元素具有較高的優(yōu)先權(quán)。
      元素標(biāo)記是“&lt;AttributeSet&gt;”且其XML屬性如下名稱定義了當(dāng)前文檔的環(huán)境內(nèi)唯一的名稱。AttributeSetRef元素用于參考特定的AttributeSet元素。重復(fù)的AttributeSet名稱使得PrintC apabilities文檔或PrintTicket無(wú)效。
      以下表格列出可以成為該元素的父元素的元素、可以成為該元素的子元素的元素以及對(duì)元素自身的任何限制。


      AttributeSet元素可以不具有任何配置相關(guān)性。以下例子示出了包含兩個(gè)屬性元素myAttr1和myAttr2的AttriSuteSet元素。&lt;AttributeSet name=″myAttrSet″&gt;
      &lt;Attribute name=″myAttr1″&gt;
      &lt;Value xsi:type=″string″&gt;Samplel&lt;/Value&gt;
      &lt;/Attribute&gt;
      &lt;Attribute name=″myAttr2″&gt;
      &lt;Value xsi:type=″float″&gt;123.4&lt;/Value&gt;
      &lt;/Attribute&gt;&lt;/AttributeSet&gt;
      AttributeSetRefAttributeSetRef元素允許屬性元素參考包含在AttributeSet中的一組屬性元素,消除了對(duì)屬性元素作為子元素直接駐留在特性中的要求。這允許由多個(gè)屬性元素共享一組屬性元素。
      元素標(biāo)記是“&lt;AttributeSetRef&gt;”,其XML屬性如下名稱指定了在當(dāng)前文檔的環(huán)境內(nèi)要參考的AttributeSet元素的名稱屬性。
      以下表格列出可以成為該元素的父元素的元素、可以成為該元素的子元素的元素以及對(duì)元素自身的任何限制。

      AttributeSet元素可以不具有任何配置相關(guān)性。以下例子示出了包含AttributeSetRef元素的特性元素。&lt;Property name=″myProperty″&gt;
      &lt;AttributeSetRef name=″myAttrSet″/&gt;&lt;/Property&gt;
      特征特征元素包含選項(xiàng)和特性元素的完整列表,完整地描述了設(shè)備屬性、作業(yè)格式、設(shè)置或其他相關(guān)特征。其元素標(biāo)記是“&lt;Feature&gt;”,其XML屬性如下名稱持有特征的名稱,標(biāo)準(zhǔn)特征或私有定義特征。
      以下表格列出可以成為該元素的父元素的元素、可以成為該元素的子元素的元素以及對(duì)元素自身的任何限制。

      特征元素可以不具有任何配置相關(guān)性。其使用的一個(gè)例子如下&lt;Feature name=″Collate″&gt;
      &lt;Property name=″SelectionType″&gt;
      &lt;Value xsi:type=″string″&gt;PickOne&lt;/Value&gt;
      &lt;/Property&gt;
      &lt;!--指定自動(dòng)分頁(yè).--&gt;
      &lt;Option name=″Collate″/&gt;
      &lt;!--指定不自動(dòng)分頁(yè).--&gt;
      &lt;Option name=″Uncollated″&gt;
      &lt;Property name=″IdentityOption″&gt;
      &lt;Value xsi:type=″string″&gt;True&lt;/Value&gt;
      &lt;/Property&gt;
      &lt;/Option&gt;&lt;/Feature&gt;
      選項(xiàng)選項(xiàng)元素包含所有與該選項(xiàng)相關(guān)聯(lián)的特性和ScoredProperty元素。其元素標(biāo)記是“&lt;Option&gt;”,其XML屬性如下約束表示選項(xiàng)對(duì)選擇或使用是否可用。該可擴(kuò)展標(biāo)記語(yǔ)言(XML)屬性可以被設(shè)置成以下值之一無(wú)(none)表示選項(xiàng)不受約束;PrintTicketSettings表示選項(xiàng)受到PrintTicket設(shè)置的約束;AdminSettings表示選項(xiàng)受到管理員的設(shè)置的約束——它不能由用戶啟用;DeviceSettings表示選項(xiàng)受到設(shè)備設(shè)置或物理安裝的設(shè)備選項(xiàng)約束。該屬性對(duì)于PrititCapabilities文檔是可選的。名稱屬性包含選項(xiàng)的名稱。注意這是名稱為OptionName的ScoredProperty的快捷方式。
      以下表格列出可以成為該元素的父元素的元素、可以成為該元素的子元素的元素以及對(duì)元素自身的任何限制。


      選項(xiàng)定義元素可以不具有任何配置相關(guān)性。以下例子定義了包含名稱為OptionName的ScoredProperty元素的選項(xiàng)元素。ScoredProperty元素的值是“Letterl信件’”。&lt;Option&gt;
      &lt;ScoredProperty name=″OptionName″&gt;
      &lt;Value xsi:type=″string″&gt;Letter&lt;/Value&gt;
      &lt;/ScoredProperty&gt;&lt;/Option&gt;
      以下定義使用了為選項(xiàng)定義名稱的快捷方式,但是在功能上等同于先前的例子。&lt;Option name=”Letter″/&gt;
      ParameterDefParameterDef定義參數(shù)化輸入的有效特征。該值是通過(guò)ParameterInit元素輸入的。元素標(biāo)記是“&lt;ParameterDef&gt;”,其XML屬性如下名稱定義了當(dāng)前文檔的環(huán)境內(nèi)唯一的名稱。重復(fù)的ParameterDef名稱屬性使得PrintCapabilities無(wú)效。
      以下表格列出可以成為該元素的父元素的元素、可以成為該元素的子元素的元素以及對(duì)元素自身的任何限制。


      為在“Longhorn”中不支持。在“Longhorn”之后的操作系統(tǒng)版本中,PrintCapabilities和PrintTicket供應(yīng)商必須能夠處理這個(gè)特性。
      ParameterDef及其到任何嵌套層的內(nèi)容可以不具有任何配置相關(guān)性。
      以下例子為這個(gè)參數(shù)設(shè)置了所有需要的屬性元素。ParameterInit中的例子示出了如何初始化這個(gè)參數(shù)。&lt;ParameterDef name=″CopyCount″&gt;
      &lt;Property name=″DataType″&gt;
      &lt;Value xsi:type=″string″&gt;integer&lt;/Value&gt;&lt;/Property&gt;
      &lt;Property name=″DefaultValue″&gt;
      &lt;Value xsi:type=″integer″&gt;1&lt;/Value&gt;&lt;/Property&gt;
      &lt;Property name=″Mandatory″&gt;
      &lt;Value xsi:type=″string″&gt;Unconditional&lt;/Value&gt;&lt;/Property&gt;
      &lt;Property name=″MaxValue″&gt;&lt;!--device dependent--&gt;
      &lt;Value xsi:type=″integer″&gt;999&lt;/Value&gt;&lt;/Property&gt;
      &lt;Property name=″MinValue″&gt;
      &lt;Value xsi:type=″integer″&gt;1&lt;/Value&gt;&lt;/Property&gt;
      &lt;Property name=″Multiple″&gt;
      &lt;Value xsi:type=″integer″&gt;1&lt;/Value&gt;&lt;/Property&gt;
      &lt;Property name=″UnitType″&gt;
      &lt;Value xsi:type=″string″&gt;Copies&lt;/Value&gt;&lt;/Property&gt;&lt;/ParameterDef&gt;
      ParameterInit
      為ParameterDef元素的實(shí)例定義了值。ParameterInit元素是ParameterDef元素作出的參考的目標(biāo)。其元素標(biāo)記是“&lt;ParameterInit&gt;”,其XML屬性如下名稱持有要在當(dāng)前文檔的環(huán)境下初始化的ParameterDef元素的名稱屬性。
      以下表格列出可以成為該元素的父元素的元素、可以成為該元素的子元素的元素以及對(duì)元素自身的任何限制。

      這里沒有配置相關(guān)性。以下例子將參數(shù)初始化為3。ParameterDef中的例子示出了如何為該參數(shù)設(shè)置所有所需的屬性元素。&lt;ParameterInit name=″CopyCount″&gt;3&lt;/ParameterInit&gt;
      ParameterRefParameterRef元素定義對(duì)ParameterInit元素的參考。包含ParameterRef的ScoredProperty元素不具有明確設(shè)置的值元素。而是,ScoredProperty元素從ParameterRef元素參考的ParameterInit元素接收其值。它的元素標(biāo)記是“&lt;ParameterRef&gt;”,其XML屬性如下名稱持有在當(dāng)前文檔的環(huán)境中參考的ParameterDef元素的名稱屬性。
      以下表格列出可以成為該元素的父元素的元素、可以成為該元素的子元素的元素以及對(duì)元素自身的任何限制。

      ParameterRef元素可以不具有任何配置相關(guān)性。以下例子示出了如何使用ParameterRef元素使得用戶能夠輸入定制介質(zhì)大小參數(shù)。&lt;Option name=″CustomMediaSize″&gt;
      &lt;ScoredProperty name=″psk:MediaSizeX″&gt;
      &lt;ParameterRef name=″PageMediaSizeMediaSizeX″/&gt;
      &lt;/ScoredProperty&gt;
      &lt;ScoredProperty name=″psk:MediaSizeY″&gt;
      &lt;ParameterRef name=″PageMediaSizeMediaSizeY″/&gt;
      &lt;/ScoredProperty&gt;
      &lt;Property name=″psk:FeedOrientation″&gt;
      &lt;Value xsi:type=″xs:string″&gt;ShortEdgeFirst&lt;/Value&gt;
      &lt;/Property&gt;&lt;/Option&gt;
      PrintCapabilitiesPrintCapabilities元素表示PrintCapabilities文檔的根部。給定特定的設(shè)備配置,PrintCapabilities文檔包含描述所支持的設(shè)備屬性所需的所有信息。它的元素標(biāo)記是“&lt;PrintCapabilities&gt;”,其XML屬性如下版本指定了定義元素類型和它們的結(jié)構(gòu)的模式的版本。版本屬性的類型是整數(shù)。當(dāng)前模式版本被指定為“1”。這個(gè)屬性是所需的。
      以下表格列出可以成為該元素的父元素的元素、可以成為該元素的子元素的元素以及對(duì)元素自身的任何限制。


      根元素可以不具有任何配置相關(guān)性。使用例子,參見以下PrintCapabilities文檔示例。
      PrintTicketPrintTicket元素是PrintTicket文檔的根元素。PrintTicket元素包含輸出作業(yè)所需的所有作業(yè)格式信息。它的元素標(biāo)記是“&lt;PrintTicket&gt;”,其XML屬性如下版本指定了定義元素類型和它們的結(jié)構(gòu)的模式的版本,文字類型是整數(shù)。當(dāng)前模式版本為“1”。這個(gè)屬性是所需的。
      以下表格列出可以成為該元素的父元素的元素、可以成為該元素的子元素的元素以及對(duì)元素自身的任何限制。

      配置相關(guān)性只可應(yīng)用到PrintCapabilities文檔中的元素。舉例參見以下PrintTicket示例。
      特性屬性元素聲明了由其名稱屬性給定名稱的設(shè)備、作業(yè)格式以及其他相關(guān)特性。值元素用于將值分配給特性。
      特性可以是復(fù)合的,可能包含多個(gè)子特性。子特性也可以由屬性元素表示。它的元素標(biāo)記是“&lt;Property&gt;”,其XML屬性如下名稱持有特性的名稱屬性,可以是標(biāo)準(zhǔn)特性或私有定義的特性。
      以下表格列出可以成為該元素的父元素的元素、可以成為該元素的子元素的元素以及對(duì)元素自身的任何限制。

      特性可以具有配置相關(guān)性,除了它在ParameterDef元素中出現(xiàn)的時(shí)候。其使用的例子如下Declare a Property named ModelName with a Value of″HP 1200C″.(使用值″HP 1200C″來(lái)聲明名稱為ModelName的特性。&lt;Property name=″ModelName″&gt;
      &lt;Value xsi:type=″string″&gt;HP 1200C&lt;/Value&gt;
      &lt;/Property&gt;
      ScoredPropertyScoredProperty元素聲明選項(xiàng)定義本質(zhì)的特性。當(dāng)評(píng)價(jià)所請(qǐng)求的選項(xiàng)如何緊密地匹配設(shè)備支持選項(xiàng)時(shí),應(yīng)該比較這樣的特性。它的元素標(biāo)記是“&lt;ScoredProperty&gt;”,其XML屬性如下名稱持有ScoredProperty的名稱屬性,可以是標(biāo)準(zhǔn)特性或私有定義的特性。
      以下表格列出可以成為該元素的父元素的元素、可以成為該元素的子元素的元素以及對(duì)元素自身的任何限制。

      ScoredProperty元素可以不具有任何配置相關(guān)性。其使用的例子如下Declare a ScoredProperty element named MediaSizeX with a Value of 11.(使用值11來(lái)聲明名稱為MediaSizeX的ScoredProperty元素。)&lt;ScoredProperty name=″MediaSize″&gt;
      &lt;Value xsi:type=″integer″&gt;11&lt;/Value&gt;&lt;/ScoredProperty&gt;
      值值元素將文字與類型相關(guān)聯(lián)。它的元素標(biāo)記是“&lt;Value&gt;”,其XML屬性如下xsi類型(xsi:type)指定了值的數(shù)據(jù)類型,它必須是以下XSD定義的類型之一字符串、整數(shù)、十進(jìn)制、QName。如果沒有,那默認(rèn)數(shù)據(jù)類型是字符串。
      以下表格列出可以成為該元素的父元素的元素、可以成為該元素的子元素的元素以及對(duì)元素自身的任何限制。

      出現(xiàn)在ScoredPropert和屬性元素中的值元素可以不具有任何配置相關(guān)性。出現(xiàn)在屬性元素中的值元素對(duì)于配置可以具有任意的相關(guān)性。其使用的例子如下Define a Value of type decimal and initialize it to″128.5″.(將值的類型定義為十進(jìn)制,并將其初始化為″128.5″。)&lt;Value xsi:type=″decimal″&gt;128.5&lt;/Value&gt;
      打印模式框架這個(gè)部分提供了打印模式元素類型的含義和使用更為詳細(xì)的信息。打印模式框架最初版本的主要是為了表示設(shè)備屬性的配置和性能。在高層,這個(gè)框架提供了兩種描述設(shè)備屬性的不同風(fēng)格特征/選項(xiàng)結(jié)構(gòu)或參數(shù)結(jié)構(gòu)。如果設(shè)備屬性具有較小數(shù)量的可用值或狀態(tài),那么應(yīng)該將屬性描述為具有所允許的稱為選項(xiàng)元素的值或狀態(tài)的特征。相反,如果設(shè)備屬性具有較大數(shù)量的可用值或狀態(tài),且可以簡(jiǎn)單定義所用有能值的集合而無(wú)需采用明確的枚舉,那么應(yīng)該將設(shè)備屬性描述為參數(shù)。(使用ParameterDef元素定義參數(shù),并使用ParameterInit元素初始化參數(shù)實(shí)例。)在特征/選項(xiàng)和參數(shù)結(jié)構(gòu)中使用特性和屬性元素以便提供較好的差異水平。
      特征/選項(xiàng)結(jié)構(gòu)在特征/選項(xiàng)表示中,設(shè)備屬性由特征元素來(lái)表示。設(shè)備屬性由設(shè)備屬性的特征元素中的名稱屬性來(lái)唯一地標(biāo)識(shí),如下例。在這個(gè)例子中,設(shè)備屬性是分辨率(Resolution)。
      &lt;Feature name=″Resolution″&gt;&lt;/Feature&gt;
      打印模式為某些特征實(shí)例定義一組名稱屬性。這些名稱屬性用于標(biāo)識(shí)一組與特定可配置設(shè)備屬性相關(guān)聯(lián)的、預(yù)定義的特征實(shí)例。只要可應(yīng)用,就應(yīng)該使用這些特征實(shí)例名稱,因?yàn)樗鼈冊(cè)黾恿藦乃鼈儷@取的PrintCapabilities文檔和PrintTickets的可移植性。如果某些設(shè)備屬性不對(duì)應(yīng)于任意模式定義的特征實(shí)例,就可以引入私有定義的特征實(shí)例。對(duì)于關(guān)于名稱屬性的語(yǔ)法和應(yīng)用到模式定義和私有定義名稱的約定的信息,參見以下XML屬性。
      由選項(xiàng)元素表示每個(gè)可能的狀態(tài)。每個(gè)選項(xiàng)定義包含一個(gè)或多個(gè)ScoredProperty元素,它們共同地用來(lái)唯一地描述或刻畫所表示的狀態(tài)。用于創(chuàng)建選項(xiàng)定義的技術(shù)在選項(xiàng)元素中描述。與特定特征元素相關(guān)聯(lián)的所有選項(xiàng)元素作為特征元素的子元素。
      對(duì)于子特征,考慮以下描述。打印模式框架也允許以層次結(jié)構(gòu)將特征元素聚集到一起。即,特征元素自身可以包含一個(gè)或多個(gè)子特征元素(子特征)。這對(duì)于組織相關(guān)特征元素或?qū)τ诳刂圃O(shè)備特征的各方面的特征元素而言是有用的。一個(gè)例子是支持裝訂的設(shè)備。這樣的設(shè)備可以向用戶提供選擇在哪里定位裝訂,諸如在左上角或者在右上角,或者沿著上邊或沿著左邊。這個(gè)設(shè)備的用戶界面(UI)應(yīng)該首先能夠向用戶呈現(xiàn)最高層的選擇,在這里的情況下為是否使用裝訂。只有當(dāng)用戶決定使用裝訂后,才向他或她呈現(xiàn)第二層的選擇,裝訂位置。特征層次增加了其他的結(jié)構(gòu),使得可能實(shí)現(xiàn)這樣的用戶界面。打印模式框架允許子特征擁有它們自己的子孫子特征,由此允許不限制層的嵌套。
      打印模式框架也允許選項(xiàng)元素出現(xiàn)在子特征的相同層次上;即,作為具有相同父特征元素的兄弟。這允許用戶在作出子特征選擇之前作出高層決策(是否使用裝訂)。對(duì)于這個(gè)例子的根特征元素“裝訂”可能包含兩個(gè)選項(xiàng)元素“On”和“Off”以及名稱為“StapleLocation”的子特征。
      選項(xiàng)元素選擇元素的目的是刻畫由特征元素表示的設(shè)備配置屬性可以采取的狀態(tài)之一。每個(gè)選項(xiàng)元素定義包含一個(gè)或多個(gè)描述該選項(xiàng)的本質(zhì)或基本特征的ScoredProperty元素。為了便于移植和保存意向,打印模式定義了許多通用的特征元素和每個(gè)特征的多種選項(xiàng)元素。因此,如果可以的話,在創(chuàng)建自己的選項(xiàng)定義之前使用打印模式定義的選項(xiàng)元素是重要的。理解定義選項(xiàng)元素的過(guò)程提供了對(duì)于在“Longhorn”打印框架中使用PrintCapabilities文檔和PrintTickets的方式的有用的洞察。
      打印模式定義了在許多特征元素的選項(xiàng)定義中廣泛使用的特殊ScoredProperty元素。這個(gè)ScoredProperty元素的名稱屬性是OptionName。在其最簡(jiǎn)單的形式中,該ScoredProperty僅持有單值元素,其xsi類型屬性被模式定義為QName。不存在其他的子元素。因?yàn)檫x項(xiàng)名稱特性的這個(gè)簡(jiǎn)單形式是如此廣泛的被使用,打印模式框架提供了特殊的快捷符號(hào)。選項(xiàng)名稱可以被指定為選項(xiàng)元素中的名稱屬性。如果選項(xiàng)定義僅包含單個(gè)ScoredProperty,這個(gè)快捷方式可以大大地減少選項(xiàng)定義的冗長(zhǎng)。舉例而言,選項(xiàng)定義可以用常規(guī)語(yǔ)法如下表示&lt;Option&gt;
      &lt;ScoredProperty name=″OptionName″&gt;
      &lt;Value xsi:type=″QName″&gt;LetterExtra&lt;/Value&gt;
      &lt;/ScoredProperty&gt;&lt;/Option&gt;
      先前的選項(xiàng)定義也可以用以下簡(jiǎn)寫符號(hào)表示。&lt;Option name=″LetterExtra″/&gt;
      這個(gè)簡(jiǎn)寫符號(hào)具有以下限制●該簡(jiǎn)寫符號(hào)只能用于其名稱屬性為″OptionName″的ScoredProperty元素。
      ●ScoredProperty元素必須作為選項(xiàng)元素的子元素(而非其他后代)存在。
      ●ScoredProperty元素不能包含除了單個(gè)值元素之外的任何子元素。
      ●在值元素中指定的xsi類型必須是QName。
      簡(jiǎn)寫符號(hào)可以用于OptionName特性,即使選項(xiàng)定義包含其他ScoredProperty元素。
      參數(shù)結(jié)構(gòu)參數(shù)通過(guò)簡(jiǎn)明地描述值的可接收范圍而非值的離散列舉來(lái)補(bǔ)足特征/選項(xiàng)構(gòu)造。打印模式框架定義了特定于參數(shù)的三個(gè)元素ParameterDef元素描述參數(shù)及其特征,ParameterInit元素為參數(shù)定義特定實(shí)例或值,以及ParameterRef元素是指在其他地方定義的特定ParameterInit元素。
      ParameterDef元素與ParameterInit元素的不同在于前者描述了ParameterInit可以包含的值,而ParameterInit元素將值分配給參數(shù)。ParameterDef元素由屬性元素的特定組和其他信息組成,所述屬性元素的特定組是ParameterDef元素的子元素,指定了數(shù)據(jù)的數(shù)據(jù)類型、最大值、最小值以及默認(rèn)值。這些屬性元素將在下文中討論。
      ParameterDef元素可以僅出現(xiàn)在它們?cè)试S的情況下。對(duì)于打印模式的初始版本,它們可以位于PrintCapabilities文檔的根層次處。ParameterDef元素的名稱屬性定義了參數(shù)名稱。PrintCapabilities文檔中的每個(gè)ParameterDef元素必須被分配唯一的名稱屬性。
      參數(shù)名稱的含義是通用的;即如果一個(gè)PrintCapabilities文檔中的ParameterDef元素與另一個(gè)PrintCapabilities文檔中的ParameterDef元素具有相同的名稱屬性(從名稱空間和ParameterDef元素的描述性名稱形成的字符串),就設(shè)想這些元素度表示相同的概念并且應(yīng)該以相同的方式翻譯。因此,在PrintTicket中為一個(gè)PrintCapabilities文檔定義的ParameterDef元素可以用于初始化在不同的PrintCapabilities文檔中定義的相同名稱的ParameterInit元素。
      因?yàn)樗械拿Q屬性都是真的,參數(shù)名稱是可擴(kuò)展標(biāo)記語(yǔ)言(XML)QName的形式。模式定義的參數(shù)結(jié)構(gòu)具有用公用名稱空間限定的名稱,形成了名稱屬性,而私有定義的參數(shù)結(jié)構(gòu)的名稱屬性用創(chuàng)建者而言唯一的私有名稱空間限定。
      在打印模式關(guān)鍵字中定義的ParameterDef元素必須在PrintCapabilities文檔中完整定義。打印模式關(guān)鍵字文檔為ParameterDef元素的一些屬性元素提供了公稱的值(諸如DefaultValue及其它),但是PrintCapabilities文檔的創(chuàng)建者負(fù)責(zé)定義剩余的屬性元素。在任一情況下,必須在ParameterDef元素中明確地定義所有的屬性元素,包括那些在打印模式關(guān)鍵字中定義的。
      出現(xiàn)在打印模式關(guān)鍵字中的每個(gè)ParameterDef元素的某些屬性元素被指定為恒定的。這意味著打印模式關(guān)鍵字定義的ParameterDef元素的所有PrintCapabilities文檔定義必須保存這些屬性元素而無(wú)修改。這些恒定的屬性元素允許參數(shù)結(jié)構(gòu)可以跨所有PrintCapabilities文檔移植并且是明確的。一主要的例子是在ParameterDef元素中使用的單位。這些單位應(yīng)該是恒定的,以便促使對(duì)它們的含義的一致的理解。被指定為非恒定的ParameterDef的屬性元素會(huì)在PrintCapabilities文檔中重新定義。
      ParameterDef元素是由以下屬性元素組成的。除非另外指出,所有的都必須出現(xiàn)。



      對(duì)于具有整數(shù)或十進(jìn)制值的ParameterInit元素,ParameterInit的值應(yīng)該是這個(gè)數(shù)的倍數(shù)。例如,十進(jìn)制值的ParameterInit元素可以通過(guò)將這個(gè)特性設(shè)置為0.1來(lái)將其限制為十分之一。當(dāng)UI元素構(gòu)建對(duì)話或UI控制時(shí)使用這個(gè)特性。此外,PrintTicket確認(rèn)碼可以使用這個(gè)特性來(lái)將ParameterInit的值四舍五入到由倍數(shù)表示的最近值。注意設(shè)備驅(qū)動(dòng)程序和PrintCapabilities供應(yīng)商不應(yīng)該設(shè)想ParameterInit值是這個(gè)特性值的倍數(shù)。每個(gè)供應(yīng)商必須能夠?qū)⑷我庵邓纳嵛迦氲阶罱目捎弥?,這是由于不同的供應(yīng)商會(huì)為該特性指定不同的或沖突的值的可能性。
      ParameterRef元素明確地應(yīng)用到選項(xiàng)元素,允許該選項(xiàng)元素參考特定的ParameterDef元素的能力。對(duì)于這些選項(xiàng)元素,描述選項(xiàng)性質(zhì)的ScoredProperty元素不是在PrintCapabilities文檔中硬編碼的值,而是變量。為了允許這個(gè)可變性,這些ScoredProperty元素包含一ParameterRef元素。ScoredProperty元素可能不包含值元素和ParameterRef元素。包含一個(gè)或多個(gè)ParameterRef元素的選項(xiàng)元素被稱為參數(shù)化的選項(xiàng)元素。
      打印模式框架允許選項(xiàng)元素包含任意數(shù)量的參考參數(shù)元素的ScoredProperty元素以及任意數(shù)量的包含值元素的ScoredProperty元素。該框架也允許任意數(shù)量的屬性元素包含參數(shù)化的選項(xiàng)元素,并且對(duì)于每個(gè)特征元素允許任意數(shù)量的參數(shù)化的選項(xiàng)元素。同樣地,可以由幾個(gè)不同的選項(xiàng)元素參考相同的參數(shù)結(jié)構(gòu),這些選項(xiàng)元素可以屬于相同或不同的特征元素。
      屬性元素除了出現(xiàn)在特征和選項(xiàng)元素之內(nèi)以外,屬性元素可以出現(xiàn)在各自基礎(chǔ)技術(shù)的根層次處。打印模式以可移植方式定義可用于描述設(shè)備的一組屬性元素。然而,如果這些特性對(duì)于作為PrintCapabilities供應(yīng)商的需要不夠(一般是因?yàn)樗С值脑O(shè)備具有打印模式未預(yù)期的新穎方面),可以引入自己的私有屬性元素??梢酝ㄟ^(guò)增加一個(gè)或多個(gè)私有子特性作為公用特性的元素內(nèi)容來(lái)增加和加工由公用特性提供的信息。
      使用可擴(kuò)展標(biāo)記語(yǔ)言(XML)元素標(biāo)記&lt;Property&gt;來(lái)定義屬性元素。每個(gè)特性通過(guò)其名稱屬性被分配一名稱。該名稱必須是XML QName且必須符合名稱空間規(guī)則。詳情參見XML屬性。特性名稱屬性以及它在父屬性元素的層次中的位置(如果它是子特性)唯一地標(biāo)識(shí)PrintCapabilities文檔或PrintTicket內(nèi)的特性。
      特性可以包含一個(gè)或多個(gè)值元素、或一個(gè)或多個(gè)子屬性元素(稱為子特性)或兩者的組合。當(dāng)特性自身是由多個(gè)組件組成時(shí),子特性是有用的。例如″ConsumableColor″特性可能具有″C″、″M″和″Y″組件。
      屬性元素也可以包含屬性元素,這引導(dǎo)系統(tǒng)處理特性數(shù)據(jù)。沒有為打印模式框架的初始版本定義的屬性元素。
      屬性、AttributeSet(屬性集)和AttributeSetRef元素本標(biāo)題討論屬性元素和兩種相關(guān)元素類型AttributeSet(屬性組)和AttributeSetRef元素。
      不允許PrintCapabilities或PrintTicket文檔的供應(yīng)商定義屬性實(shí)例;只允許打印模式可以這么做。因?yàn)榇蛴∧J降漠?dāng)前版本(主要版本“1”)不定義任何屬性實(shí)例,所以在任何版本“1”的PrintCapabilities或PrintTicket文檔中也不應(yīng)該出現(xiàn)。打印模式關(guān)鍵字將來(lái)的版本可能會(huì)定義屬性實(shí)例。提及這個(gè)使得現(xiàn)在寫的PrintCapabilities和PrintTicket確認(rèn)例程處理將來(lái)可能包含屬性元素的PrintCapabilities文檔或PrintTicket時(shí),它們將正確地工作。元素類型的總結(jié)描述屬性元素的語(yǔ)法和用法。注意屬性元素是可擴(kuò)展標(biāo)記語(yǔ)言(XML)元素,不應(yīng)將它們與XML屬性相混淆,這在XML屬性中討論。
      AttributeSet元素是在各自基礎(chǔ)技術(shù)(PrintCapabilities文檔或PrintTicket)的根層次處定義的一個(gè)或多個(gè)屬性元素的集合。打印模式關(guān)鍵字或私有方可以定義這個(gè)元素類型的實(shí)例。從可以是屬性元素的父元素的任何元素中能參考AttributeSet。
      AttributeSetRef元素用作對(duì)AttributeSet實(shí)例的參考。這是通過(guò)對(duì)AttributeSetRef使用與相應(yīng)的AttributeSet元素相同的名稱屬性來(lái)完成的。打印模式框架將對(duì)AttributeSet元素的參考定義為等價(jià)于出現(xiàn)在AttributeSetRef元素自身位置中的AttributeSet的內(nèi)容。如果PrintCapabilities文檔的消費(fèi)者支持或訪問(wèn)屬性元素,他們必須能夠支持這個(gè)“macro expansion(宏擴(kuò)展)”。
      AttributeSet元素必須出現(xiàn)在根層次處。必須通過(guò)AttributeSet的名稱屬性給出AttributeSet一名稱。Namespace約定應(yīng)用到名稱屬性,如同兄弟唯一性規(guī)則(在打印模式中使用的術(shù)語(yǔ)中定義)。組成AttributeSet的屬性實(shí)例作為AttributeSet實(shí)例的內(nèi)容出現(xiàn)。
      值元素值元素會(huì)出現(xiàn)在特性、ScroedProperty或?qū)傩栽刂?。值元素的目的是表示出一?biāo)準(zhǔn)可擴(kuò)展標(biāo)記語(yǔ)言(XML)數(shù)據(jù)類型的值。該數(shù)據(jù)類型被指定為值元素的XML屬性,xsi類型。注意不是所有的XSD定義的或XML-定義的類型都是支持的。關(guān)于所支持類型的列表,參見元素類型的總結(jié)。值元素可以只含有字符內(nèi)容。沒有其他東西可以作為內(nèi)容出現(xiàn)在值元素中。
      一些打印模式定義的特性、ScoredProperty和屬性元素不含有值元素,因?yàn)樗鼈兊哪康闹皇浅蔀樽犹匦缘母柑匦?。因?yàn)檫@些特性不含有值元素,不應(yīng)該對(duì)這樣的特性加上值元素。
      為了符合打印模式框架,它要求在支持值的元素中出現(xiàn)值元素或子元素,應(yīng)該通過(guò)將值元素示為空元素來(lái)表示空或未定義的值;即,&lt;Value&gt;&lt;/Value&gt;。
      打印模式關(guān)鍵字中定義的對(duì)象和名稱打印模式框架定義包括在打印模式關(guān)鍵字中定義的元素和可擴(kuò)展標(biāo)記語(yǔ)言(XML)屬性的名稱空間。這包括諸如特征、選項(xiàng)和ScoredProperty等元素;諸如名稱和傳播等屬性名稱;以及諸如約束等XML屬性的值。換而言之,在打印模式關(guān)鍵字中定義的名稱的每種使用應(yīng)該明確地符合這個(gè)名稱空間,或通過(guò)應(yīng)該使用默認(rèn)的xmlns屬性隱含地與這個(gè)名稱空間相關(guān)聯(lián)。打印模式關(guān)鍵字文檔定義可能出現(xiàn)在任何給定情況或位置的公共元素實(shí)例。元素實(shí)例必須僅出現(xiàn)在打印模式框架中指定的情況或位置中。例如在打印模式關(guān)鍵字中定義的&lt;Option name=″Letter″&gt;實(shí)例必須出現(xiàn)在&lt;Feature name=″MediaSize″&gt;實(shí)例(也在打印模式關(guān)鍵字中定義)中。沒有將給定的選項(xiàng)實(shí)例在其指定情況外使用的自由。
      對(duì)于私有定義的元素實(shí)例,只要元素類型出現(xiàn)在打印模式框架允許的情況中,它們可以出現(xiàn)在任何地方。
      XML屬性在打印模式框架中定義的幾個(gè)元素類型中出現(xiàn)多個(gè)可擴(kuò)展標(biāo)記語(yǔ)言(XML)屬性。具有相同名稱的XML屬性通常具有相同的含義并遵守相同的規(guī)則,不管它們駐留在哪個(gè)元素類型中。因此,這里按名稱而非它們的宿主元素類型列出XML屬性。不允許私有定義的XML屬性。只有在這里定義的XML屬性才能用在PrintCapabilities文檔或PrintTicket中,并且只能用在定義的情況下。
      雖然不允許私有方將新的定義引入到另一方的名稱空間,但是允許他們利用來(lái)自另一私有名稱空間的現(xiàn)有名稱,只要其使用符合另一方建立的用法。因此選項(xiàng)會(huì)包含由幾個(gè)不同方定義的ScoredProperty元素,每個(gè)駐留在不同的名稱空間中。



      以下要點(diǎn)關(guān)于名稱屬性。
      名稱屬性必須是有效的XML定義的QName的形式。即,它必須由有效的XML名稱空間來(lái)限定。作為名稱屬性的值出現(xiàn)的QName必須明確地用名稱空間限定即使定義了默認(rèn)的名稱空間。
      字符內(nèi)容必須是有效的XML定義的QName。
      私有定義的名稱必須用唯一地與引入名稱屬性方相關(guān)聯(lián)的名稱空間來(lái)限定。
      兄弟唯一性要求沒有屬于相同元素類型的兩個(gè)兄弟元素具有相同的名稱屬性。唯一的例外是選項(xiàng)元素,其中名稱屬性實(shí)際上是以O(shè)ptionName為名稱的ScoredProperty的語(yǔ)法上的簡(jiǎn)寫。這個(gè)多兄弟選項(xiàng)元素可以具有相同的名稱屬性。
      以下元素類型可以含有名稱屬性屬性、AttributeSet、特性、ScroedProperty、ParameterDef、選項(xiàng)和特征。
      要求名稱屬性出現(xiàn)在包含它們的每個(gè)元素類型中,除了選項(xiàng)元素,其中它們是可選的。
      PrintCapabilities和PrintTicket供應(yīng)商和客戶機(jī)可能希望在執(zhí)行進(jìn)一步的處理之前,將選項(xiàng)元素中的名稱屬性快捷方式擴(kuò)展到完全表示。這簡(jiǎn)化了實(shí)現(xiàn)。
      約束屬性所允許的值具有以下含義。注意這些值是順序排列的,從最少的限制(無(wú))到最多限制(DeviceSettings(設(shè)備設(shè)置))無(wú)(None)意為選項(xiàng)不受約束;PrintTicketSettings意為選項(xiàng)受到PrintTicket設(shè)置的約束。這意味著改變配置可以刪除約束;AdminSettings意為選項(xiàng)受到管理員設(shè)置的約束;該選項(xiàng)不能由用戶啟動(dòng);DeviceSettings意為選項(xiàng)受到設(shè)備設(shè)置或物理安裝的設(shè)備選項(xiàng)的限制;該選項(xiàng)不能由用戶或管理員啟動(dòng)。
      當(dāng)PrintCapabilities供應(yīng)商報(bào)告約束屬性的值時(shí),應(yīng)該報(bào)告所找到的最多限制性的約束。例如,如果選項(xiàng)同時(shí)受到管理員設(shè)置和設(shè)備設(shè)置的限制,那么PrintCapabilities供應(yīng)商應(yīng)該報(bào)告DeviceSettings。
      打印模式關(guān)鍵字以下部分描述打印模式關(guān)鍵字,它被分為以下幾個(gè)部分PrintCapabilities和PrintTicket。PrintCapabilities部分包含以下子部分用戶可配置元素、管理員可配置元素、設(shè)備信息和參數(shù)定義。
      PrintCapabilities以下描述了旨在使得最終用戶可以通過(guò)客戶機(jī)用戶界面(UI)配置的PrintCapabilities元素。應(yīng)該理解以下例子只是組成例子,可以使用與以下討論的那些元素不同或附加的其他元素,而不背離本發(fā)明的精神和范圍。
      DeviceInputBins描述了設(shè)備中安裝的輸入箱以及設(shè)備所支持的輸入箱的完整列表。
      DeviceOutputBins描述了設(shè)備中安裝的輸出箱以及設(shè)備所支持的輸出箱的完整列表。
      DevicePageProtection描述設(shè)備是否會(huì)作出保護(hù)以防止頁(yè)面太大不適合存儲(chǔ)器。
      DocumentBannerSheet描述標(biāo)題頁(yè)。每個(gè)文檔會(huì)有獨(dú)立的一頁(yè)。
      DocumentBinding描述裝訂的方式。每個(gè)文檔是獨(dú)立裝訂的。
      DocumentCollate描述輸出的分頁(yè)特征。每個(gè)文檔都會(huì)獨(dú)立分頁(yè)。
      DocumentCoverBack
      描述后面的(結(jié)束)封面頁(yè)。每個(gè)文檔有獨(dú)立的一頁(yè)。
      DocumentCoverFront描述前面的(開始)封面頁(yè)。每個(gè)文檔有獨(dú)立的一頁(yè)。
      DocumentDuplex描述輸出的雙面特征。每個(gè)文檔是獨(dú)立分成雙面。
      DocumentHolePunch描述輸出的打洞特征。每個(gè)文檔是獨(dú)立打洞的。
      DocumentNUp描述將多個(gè)邏輯頁(yè)輸出到單個(gè)的物理頁(yè)。每個(gè)文檔獨(dú)立地編輯。
      DocumentPageRanges用頁(yè)描述文檔的輸出范圍。
      DocumentRollCut描述卷紙的切割方法。每個(gè)文檔是獨(dú)立處理的。
      DocumentSeparatorSheet描述文檔的分隔頁(yè)。
      DocumentStaple描述輸出的裝訂特征。每個(gè)文檔是獨(dú)立裝訂的。
      JobAccountingSheet描述核算頁(yè)。整個(gè)文檔有一頁(yè)。
      JobBannerSheet描述標(biāo)題頁(yè)。整個(gè)作業(yè)有一頁(yè)。
      JobBinding描述裝訂方法。所有文檔一起裝訂。
      JobCollate描述輸出的分頁(yè)特征。整個(gè)作業(yè)會(huì)被分頁(yè)為一單元。
      JobCoverBack描述后面的(結(jié)束)封面頁(yè)。整個(gè)作業(yè)有一頁(yè)。
      JobCoverFront描述前面的(開始)封面頁(yè)。整個(gè)作業(yè)有一頁(yè)。
      JobDatatype指定用于發(fā)送作業(yè)到打印子系統(tǒng)的數(shù)據(jù)格式。
      JobDeviceLanguage描述所支持的設(shè)備語(yǔ)言。
      JobDuplex描述輸出的雙面特征。所有文檔是一起分成雙面的。
      JobErrorSheet描述錯(cuò)誤頁(yè)輸出。整個(gè)作業(yè)會(huì)有一錯(cuò)誤頁(yè)。
      JobHolePunch描述輸出的打洞特征。所有文檔一起打洞。
      JobInputBins描述了設(shè)備中安裝的輸入箱以及設(shè)備所支持的輸入箱的完整列表。
      JobNUp描述將多個(gè)邏輯頁(yè)輸出到單個(gè)的物理頁(yè)。所有文檔一起編輯。
      JobOutputBins描述了設(shè)備中安裝的輸出箱以及設(shè)備所支持的輸出箱的完整列表。
      JobOutputOptimization描述旨在為特定使用情況優(yōu)化輸出的作業(yè)處理。
      JobPageOrder為作業(yè)定義頁(yè)面的順序。
      JobPageStreaming描述作業(yè)的流化特征。為整個(gè)作業(yè)使用單個(gè)頁(yè)面流。
      JobRollCut描述卷紙的切割方法。作業(yè)中的所有文檔是同樣處理的。
      JobStaple描述輸出的裝訂特征。所有文檔是一起裝訂的。
      PageBorderless描述頁(yè)面的無(wú)邊界特征。
      PageCanvasSize描述排版和渲染的圖形畫布。這會(huì)基于PageMediaSize和PageOrientation來(lái)報(bào)告。
      PageCompression描述用于壓縮輸出的壓縮算法。
      PageDeviceFontSubstitution描述設(shè)備字體替代的允許/不允許狀態(tài)。
      PageForceFrontSide強(qiáng)制輸出出現(xiàn)在介質(zhì)頁(yè)的前面。關(guān)于介質(zhì)紙?jiān)诿恳幻嫔暇哂胁煌谋砻妗?br> PageMediaColor描述MediaColor選項(xiàng)和每個(gè)選項(xiàng)的特征。
      PageMediaSize描述用于輸出的MediaSize。
      PageMediaType描述MediaType選項(xiàng)和每個(gè)選項(xiàng)的特征。
      PageMirrorImage描述輸出的鏡像設(shè)置。
      PageNegativeImage描述輸出的畫片設(shè)置。
      PageOrientation描述介質(zhì)頁(yè)的方向。
      PageOutputColor描述輸出的顏色設(shè)置。
      PageOutputQuality描述輸出的質(zhì)量。
      PagePhotoPrintingIntent向驅(qū)動(dòng)程序指示高層意向以填充照片打印設(shè)置。
      PagePoster描述將單頁(yè)輸出到多個(gè)物理介質(zhì)頁(yè)。
      PageResolution描述輸出分辨率。
      PageScaling描述輸出的縮放特征。
      PageTrueTypeFontMode描述要使用的TrueType字體處理的方法。
      PageWatermark
      描述輸出的水印設(shè)置和水印特征。
      以下描述了旨在由打印隊(duì)列的管理員可配置的PrintCapabilities元素。
      DeviceComment指定對(duì)設(shè)備顯示的注釋(例如″Device down until 1:00P.M.formaintenance″(設(shè)備到下午1:00關(guān)閉用于維護(hù)))DeviceDescription特定設(shè)備的描述。
      DeviceHostName指定設(shè)備的主機(jī)名稱(如果可應(yīng)用)。
      DeviceLocation指定設(shè)備的描述位置。
      DeviceName指定設(shè)備的描述名稱。
      以下描述了將有關(guān)設(shè)備的信息報(bào)告給客戶機(jī)的PrintCapabilities元素,但是是只讀的。
      DeviceBiDi描述設(shè)備的BiDi性能。
      DeviceCompatibleIDs指定與設(shè)備兼容的ID列表。
      DeviceFallbackURI如果指定的設(shè)備不可用,指定默認(rèn)設(shè)備后退。
      DeviceFirmwareVersion指定設(shè)備的固件版本。
      DeviceID指定設(shè)備的唯一的ID。
      DeviceIP指定設(shè)備的IP地址(如果可應(yīng)用)。
      DeviceManufacturer指定設(shè)備的制造商。
      DeviceMaxJobSizeAllowed指定可以發(fā)送給設(shè)備的最大作業(yè)大小。
      DeviceMediaSize描述設(shè)備的介質(zhì)大小性能。
      DeviceMemory指定設(shè)備存儲(chǔ)器的詳情。
      DeviceModelName指定設(shè)備的制造商的模型名稱。
      DeviceMonitorEnvironment指定監(jiān)視器被設(shè)計(jì)用作的操作系統(tǒng)環(huán)境。
      DeviceMonitorID指定監(jiān)視器的唯一的ID。
      DeviceMonitorName指定設(shè)備的監(jiān)視器名稱。
      DevicePnPID指定設(shè)備的即插即用ID。
      DevicePortID指定端口的唯一的ID。
      DevicePortType描述設(shè)備端口類型。
      DevicePrintRate指定當(dāng)前打印速度性能。
      DevicePrintSchemaVersion指定設(shè)備所支持的最高打印模式版本。
      DevicePSMemory指定PostSeript使用的設(shè)備存儲(chǔ)器的詳情。
      DeviceSerialNumber指定設(shè)備的制造商的序列號(hào)。
      DeviceTechnology指定設(shè)備支持的輸出技術(shù)的列表。
      DeviceType指定設(shè)備的通用類型。
      DeviceTypeFunction
      指定設(shè)備的通用類型。
      DeviceURI指定設(shè)備的URI,如果可應(yīng)用。
      以下是PrintCpabilities所參考的參數(shù)列表。
      DocumentBannerSheetSource指定定制標(biāo)題頁(yè)的來(lái)源。
      DocumentCopyCount指定文檔拷貝的數(shù)目。
      DocumentCoverBackSource指定定制反面封面頁(yè)的來(lái)源。
      DocumentCoverFrontSource指定定制正面封面頁(yè)的來(lái)源。
      JobAccountUsername指定作業(yè)應(yīng)該屬于的帳戶信息的用戶名稱。例如,這可以是某個(gè)組的所有成員使用的通用帳戶,即市場(chǎng)人員都使用相同帳戶。
      JobBannerSheetSource指定定制標(biāo)題頁(yè)的來(lái)源。
      JobComment指定與作業(yè)相關(guān)的注釋。例如″Please deliver to room 1234 whencompleted″.(諸完成后送到1234房間。)JobCopyCount指定作業(yè)拷貝的數(shù)目。
      JobCoverBackSource指定定制反面封面頁(yè)的來(lái)源。
      JobCoverFrontSource指定定制正面封面頁(yè)的來(lái)源。
      JobErrorSheetSource指定定制錯(cuò)誤頁(yè)的來(lái)源。
      JobOwnerUsername指定與打印作業(yè)相關(guān)聯(lián)的用戶名稱。這通常是發(fā)起作業(yè)的用戶,且可能或可能不對(duì)應(yīng)于JobAccountUsername。
      JobPageStreamingPagesPerSubset為頁(yè)面流化指定每個(gè)子集的頁(yè)。
      JobPriority為作業(yè)指定用數(shù)字表示的優(yōu)先級(jí)。1是最高優(yōu)先級(jí),而255是最低優(yōu)先級(jí)。
      PageCopyCount指定作業(yè)拷貝的數(shù)目。
      PageMediaColorCIELabA指定定制MediaColor選項(xiàng)的CIELab紅-綠值。
      PageMediaColorCIELabB指定定制MediaColor選項(xiàng)的CIELab黃一籃值。
      PageMediaColorCIELabL指定定制MediaColor選項(xiàng)的CIELab亮度值。
      PageMediaSizeMediaSizeX指定定制MeidaSize選項(xiàng)的維MediaSizeX方向。
      PageMediaSizeMediaSizeY指定定制MeidaSize選項(xiàng)的維MediaSizeY方向。
      PageMediaSizePSHeight指定頁(yè)面的高度,平行于進(jìn)紙方向。
      PageMediaSizePSHeightOffset指定偏移量,平行于進(jìn)紙方向。
      PageMediaSizePSOrientation指定與進(jìn)紙方向相關(guān)的方向。
      PageMediaSizePSWidth指定垂直于進(jìn)紙方向的頁(yè)面寬度。
      PageMediaSizePSWidthOffset指定垂直于進(jìn)紙方向的偏移量。
      PageScalingScaleX指定用于定制縮放的CanvasSizeX方向上的縮放偏移量。
      PageScalingScaleY指定用于定制縮放的CanvasSizeY方向上的縮放偏移量.
      PageScalingScale
      指定用于定制方形縮放的縮放因子。
      PageScalingScaleX指定用于定制縮放的CanvasSizeX方向上的縮放因子。
      PageScalingScaleY指定用于定制縮放的CanvasSizeY方向上的縮放因子。
      PageWatermarkOriginX指定與PageCanvasSize的原點(diǎn)相關(guān)的水印的原點(diǎn)。
      PageWatermarkOriginY指定與PageCanvasSize的原點(diǎn)相關(guān)的水印的原點(diǎn)。
      PageWatermarkSizeX指定與PageCanvasSize X方向相關(guān)的水印的尺寸。
      PageWatermarkSizeY指定與PageCanvasSize Y方向相關(guān)的水印的尺寸。
      PageWatermarkTextAngle指定與PageCanvasSize X方向相關(guān)的水印文本的角度。
      PageWatermarkTextText指定水印的文本。
      PrintTicket以下示出了旨在使得最終用戶能夠通過(guò)客戶機(jī)UI配置的PrintTicket元素。PrintTicket元素也包括上述的所有PrintCapabilities元素。簡(jiǎn)潔起見,這里不再描述那些元素。
      DocumentID指定文檔的唯一的ID。
      DocumentName指定文檔的描述名稱。
      DocumentURI指定文檔的URI。
      JobID指定作業(yè)的唯一的ID。
      JobName
      指定作業(yè)的描述名稱。
      JobURI指定文檔的URI。
      PrintCapabilities模式和文檔結(jié)構(gòu)一些系統(tǒng)能夠嚴(yán)格地限制非驅(qū)動(dòng)程序組件可以獲取關(guān)于打印設(shè)備性能和特性的信息的類型。此外,許多系統(tǒng)不支持發(fā)布打印處理器的性能,也沒有方法可以枚舉非標(biāo)準(zhǔn)特征。因此,除了驅(qū)動(dòng)程序外組件不能構(gòu)造完整的用戶界面。此外,客戶機(jī)或應(yīng)用程序不能完整地確定設(shè)備或打印隊(duì)列的性能。
      PrintCapabilities模式旨在通過(guò)提供這些功能提供的功能超集來(lái)消除許多這樣的限制。如果需要更多的功能,PrintCapabilities文檔的供應(yīng)商可以通過(guò)在打印模式框架限制內(nèi)增加私有定義的元素實(shí)例來(lái)擴(kuò)展打印模式關(guān)鍵字。因?yàn)樗蕾囉诳蓴U(kuò)展標(biāo)記語(yǔ)言(XML)作為交換的中介,PrintCapabilities文檔的任何消費(fèi)者能夠無(wú)限制地訪問(wèn)文檔中的所有數(shù)據(jù),而無(wú)需考慮于不同操作系統(tǒng)版本的兼容性。這個(gè)部分描述了PrintCapabilities模式并詳述了其使用。
      這個(gè)部分中描述的信息可以被以下各方利用PrintTicket/PrintCapabilities供應(yīng)商界面的實(shí)施者、PrintCapabilities 的消費(fèi)者以及PrintTicket/PrintCapabilities供應(yīng)商界面的客戶機(jī)。
      在先前段落中的第一類被稱為這個(gè)部分的其余部分中的PrintCapabilities供應(yīng)商。第二和第三類被稱為PrintCapabilities消費(fèi)者。
      PrintCapabilities和PrintTicket模式都是打印模式的專門部分。打印模式的這些子集之間的主要結(jié)構(gòu)差異是PrintCapabilities模式包括不包含在PrintTicket模式中的特性和ParameterDef實(shí)例,而PrintTicket模式包含不包含在PrintCapabilities模式中特性和ParameterInit實(shí)例。除了這些差異,PrintCapabilities和PrintTicket模式通常在內(nèi)容上互相鏡像,共享特征、選項(xiàng)、ScoredProperty和值實(shí)例。任何這樣的共享內(nèi)容必須保持最新。例如,如果在PrintCapabilities模式中的MediaSize特征中作出改變,那么必須在PrintTicket模式中作出相同的改變。
      PrintCapabilities概述PrintCapabilities描述了設(shè)備上可用的可配置設(shè)備屬性。由PrintCapabilities描述的設(shè)備通??梢灾糜诙喾N不同的配置中。在打印設(shè)備的情況下,典型的打印屬性包括雙面打印、分辨率和介質(zhì)尺寸。如果設(shè)備支持這些屬性,它們是該設(shè)備的配置的一部分。用戶通過(guò)將特定的值分配給每個(gè)可用屬性來(lái)選擇特定的配置;例如,雙面單面,分辨率600dpi且MediaSize法定。
      PrintCapabilities構(gòu)建在打印模式框架之上,所述打印模式框架定義了可以在PrintCapabilities中使用的元素。打印模式關(guān)鍵字定義了通常使用的元素層次或關(guān)鍵字,以便提高個(gè)體客戶機(jī)之間信息和意向的可移植性。然而,打印模式關(guān)鍵字也允許私有擴(kuò)展,這樣使得PrintCapabilities能夠被修改成符合特定的要求。
      設(shè)備的配置空間是可以被分配給所有設(shè)備屬性的所有可能值的集合。在PrintCapabilities中描述設(shè)備的配置空間的兩個(gè)最重要的原因如下。
      信息對(duì)增進(jìn)對(duì)設(shè)備性能的理解起到了重要的作用。這個(gè)信息使得PrintCapabilities的客戶機(jī)生成用戶界面(UI)元素變得簡(jiǎn)單,這使得最終用戶選擇特定的配置來(lái)處理作業(yè)變得簡(jiǎn)單。通過(guò)向應(yīng)用程序并最終向最終用戶提供設(shè)備性能的更多詳情,用戶的打印意向可以得到更為有效的實(shí)現(xiàn)。
      PrintCapabilities出現(xiàn)的某些設(shè)備特性會(huì)取決于客戶機(jī)所選的特定配置。
      有些信息不應(yīng)該包含到PrintCapabilities中。這包括不影響作業(yè)創(chuàng)建方式、不對(duì)作業(yè)創(chuàng)建方式強(qiáng)加約束、另外也不會(huì)影響設(shè)備特性的信息。舉例而言,設(shè)備會(huì)能夠報(bào)告狀態(tài)信息,諸如等待處理的作業(yè)組。這個(gè)信息對(duì)格式化作業(yè)所需的信息沒有影響,它也不會(huì)對(duì)設(shè)備中的可用性能提供任何指示。因此,這類信息無(wú)需出現(xiàn)在PrintCapabilities中。
      由于對(duì)設(shè)備的約束,許多設(shè)備不支持配置空間中的所有可能的配置。例如,可以約束設(shè)備不能在透明介質(zhì)進(jìn)行雙面打印。約束可以表示物理限制一些介質(zhì)類型因?yàn)檫^(guò)硬而不能通過(guò)設(shè)備中某些紙張路徑,因此不能將它們置于某些輸入槽或者不能將它們發(fā)送到一些輸出箱。當(dāng)前,確認(rèn)輸入PrintTicket表示的配置是PrintCapabilities或PrintTicket供應(yīng)商的責(zé)任,檢驗(yàn)它不表示無(wú)效的配置。如果配置無(wú)效,那么PrintCapabilities或PrintTicket供應(yīng)商應(yīng)該修改該配置使得它有效。
      PrintCapabilities描述的設(shè)備可能具有取決于設(shè)備的狀態(tài)或配置的特性。例如,如果設(shè)備是打印機(jī),那么SamplePrintRate特性可能具有取決于選擇彩色還是單色或是否選擇雙面的值。雖然PrintCapabilities表示了設(shè)備的完整的配置空間,PrintCapabilities供應(yīng)商生成PrintCapabilities的配置相關(guān)實(shí)例,稱為PrintCapabilities文檔。這個(gè)配置相關(guān)PrintCapabilities文檔避免使得PrintCapabilities模式負(fù)擔(dān)表示多值數(shù)據(jù)的復(fù)雜性。更重要的是,為了減輕PrintCapabilities文檔的消費(fèi)者從多值數(shù)據(jù)表示中提取適當(dāng)?shù)闹档呢?fù)擔(dān),要求PrintCapabilities文檔中所有的特性和ScoredProperty實(shí)例都是單值的。換而言之,相對(duì)于輸入配置,PrintCapabilities文檔中的每個(gè)特性和ScoredProperty實(shí)例都必須具有一固定值。每個(gè)PrintCapabilities文檔可以被想象成當(dāng)設(shè)備處于特定狀態(tài)中設(shè)備特性的快照。因此,在構(gòu)建PrintCapabilities文檔之前,必須提供所使用的配置。
      PrintCapabilities文檔的創(chuàng)建者定義組成配置的設(shè)備屬性。在PrintCapabilities文檔中,創(chuàng)建者可以選擇將設(shè)備屬性表示為特征/選項(xiàng)結(jié)構(gòu)或參數(shù)結(jié)構(gòu)。
      如果設(shè)備屬性具有不落入任何種類的明顯模式的相對(duì)少量的可能狀態(tài),特征/選項(xiàng)結(jié)構(gòu)通常是較好的選擇。例如,如果MediaSize設(shè)備屬性所允許的值是值信件、法定、A4ISO、文摘和信封10,特征/選項(xiàng)結(jié)構(gòu)將會(huì)是用于表示的較好選擇。參數(shù)結(jié)構(gòu)不適用于MediaSize屬性,因?yàn)榕c在沒有明確的枚舉的情況下表示所允許的值相關(guān)聯(lián)的困難與不明確性。
      如果設(shè)備屬性可以由整數(shù)范圍表示,那么參數(shù)表示通常是更好的選擇,尤其對(duì)于包含許多值的范圍。例如,如果打印機(jī)的特定模型的CopyCount設(shè)備屬性的范圍是l到99999,那么應(yīng)該通過(guò)定義ParameterDef實(shí)例將這個(gè)屬性歸類為參數(shù)。將值分配給ParameterDef元素的MinValue和MaxValue標(biāo)準(zhǔn)特性實(shí)例來(lái)定義CopyCount屬性的值的范圍。特征/選項(xiàng)表示不適用于CopyCount設(shè)備屬性,因?yàn)楸仨殞⒋罅康闹得鞔_地列為選項(xiàng)元素。
      PrintCapabilities旨在將可配置設(shè)備屬性表示為特征/選項(xiàng)結(jié)構(gòu)或參數(shù)結(jié)構(gòu)。這個(gè)信息定義了設(shè)備的配置空間,并且可以被用戶界面(UI)客戶機(jī)用于構(gòu)建UI。打印模式關(guān)鍵字定義了一組標(biāo)準(zhǔn)特征實(shí)例、用于標(biāo)準(zhǔn)特征實(shí)例的選項(xiàng)實(shí)例和ParameterDef實(shí)例。
      PrintCapabilities中的特征/選項(xiàng)或參數(shù)結(jié)構(gòu)旨在持有描述設(shè)備并受到假脫機(jī)子系統(tǒng)支持的特性或ScoredProperty實(shí)例。這些特性和ScoredProperty實(shí)例通常是設(shè)備的客戶機(jī)感興趣的,并包含由Microsoft_Win32_DevCaps功能提供的信息。打印模式關(guān)鍵字定義了一組標(biāo)準(zhǔn)特性和ScoredProperty實(shí)例。
      應(yīng)該強(qiáng)調(diào)PrintCapabilities文檔旨在表示單值數(shù)據(jù)不取決于設(shè)備的特定配置的數(shù)據(jù)。PrintCapabilities文檔僅提供配置相關(guān)數(shù)據(jù)的快照。
      PrintCapabilities模式中的配置相關(guān)性就所使用的元素和由父和子元素表示的通用結(jié)構(gòu)而言,PrintCapabilities模式基本類似于打印模式。特定地關(guān)于PrintCapabilities的配置相關(guān)性在這里列為通用框架的擴(kuò)展。配置相關(guān)性涉及以下事實(shí)作為配置相關(guān)性的結(jié)果,一些元素包括它們的內(nèi)容可以被改變,甚至可以從一個(gè)PrintCapabilities文檔中刪除至下一個(gè)。即使要求父元素獨(dú)立于配置,其子元素可能具有相關(guān)性。這種相關(guān)性使用在GPD文件的*Switch/*Case結(jié)構(gòu)表示。
      作為配置相關(guān)性的例子,考慮與PrintCapabilities文檔中每個(gè)特性相關(guān)的值。每個(gè)PrintCapabilities文檔可以在所定義的特性實(shí)例和分配給那些特性實(shí)例的值實(shí)例上不同。


      PrintCapabilities文檔構(gòu)建清單元素類型總結(jié)討論了組成PrintCapabilities文檔的各個(gè)元素。這個(gè)部分提供了PrintCapabilities文檔的創(chuàng)建者可以用來(lái)創(chuàng)建描述設(shè)備的PrintCapabilities文檔的清單。
      標(biāo)識(shí)出所有對(duì)設(shè)備配置起作用的設(shè)備屬性。對(duì)于每個(gè)這樣的設(shè)備屬性,確定它是否應(yīng)該表示成特征/選項(xiàng)結(jié)構(gòu)或參數(shù)結(jié)構(gòu)。
      對(duì)于每個(gè)設(shè)備特性,確定它是否可以用打印模式關(guān)鍵字中定義的特征來(lái)表示。如果不能,需要引入新的私有定義的特征(和相應(yīng)的名稱屬性)。
      對(duì)于打印模式關(guān)鍵字定義的特征實(shí)例,標(biāo)識(shí)出這個(gè)特征可以設(shè)置成的每個(gè)可用狀態(tài)。確定這些狀態(tài)中的哪些對(duì)應(yīng)于與這個(gè)特征相關(guān)聯(lián)的打印模式定義的選項(xiàng)實(shí)例,以及哪些狀態(tài)需要定制的選項(xiàng)實(shí)例。選項(xiàng)定義主題提出了如何構(gòu)建新的選項(xiàng)實(shí)例和如何從現(xiàn)有選項(xiàng)實(shí)例獲取新的選項(xiàng)實(shí)例的信息。
      對(duì)于非標(biāo)準(zhǔn)特征實(shí)例,標(biāo)識(shí)出可以用于將一個(gè)選項(xiàng)與另一個(gè)相區(qū)分的特征。用ScoredProperty元素表示這些特征并在每個(gè)選項(xiàng)實(shí)例中分配給每個(gè)ScoredProperty一特定于該選項(xiàng)的值。確保有足夠的ScoredProperty元素,使得給定特征的每一個(gè)選項(xiàng)都是唯一的。非標(biāo)準(zhǔn)特征和選項(xiàng)實(shí)例由它們的性質(zhì)決定是不可移植的。即,另一個(gè)驅(qū)動(dòng)程序?qū)⒉荒苷业饺魏蔚葍r(jià)的特征或選項(xiàng),來(lái)匹配一個(gè)驅(qū)動(dòng)程序創(chuàng)建的PrintTicket中指定的非標(biāo)準(zhǔn)特性或選項(xiàng)。
      確定是否任一選項(xiàng)必須包含ParameterRef元素。更多信息,參見參數(shù)結(jié)構(gòu)和參數(shù)參考元素。
      方便起見,可以使用OptionName ScoredProperty的簡(jiǎn)寫符號(hào)。注意,該簡(jiǎn)寫表示不受到兄弟唯一性規(guī)則的支配,所述兄弟唯一性規(guī)則應(yīng)用于其他名稱屬性。
      對(duì)于參數(shù),確定打印模式關(guān)鍵字中定義的ParameterDef實(shí)例之一是否充分匹配。如果是,從打印模式關(guān)鍵字中拷貝ParameterDef實(shí)例并將每個(gè)可變特性實(shí)例的值調(diào)整到最佳匹配。如果在打印模式關(guān)鍵字中沒有一個(gè)ParameterDef實(shí)例是充分匹配的,就創(chuàng)建自己的ParameterDef實(shí)例。更多信息,參見PrintCapabilities文檔中的參數(shù)。
      確保打印模式關(guān)鍵字文檔所需的所有特性和ScoredProperty實(shí)例都出現(xiàn)在PrintCapabilities文檔中,且它們被適當(dāng)?shù)爻跏蓟?br> 在需要時(shí)增加其他特性和子特性實(shí)例。如果打印模式關(guān)鍵字中定義的特性實(shí)例沒有包含需要表述的設(shè)備某些方面的特征,那么可以引入私有定義的特性實(shí)例。
      遵守名稱屬性的名稱空間約定。這應(yīng)用于私有定義的名稱屬性以及那些在打印模式關(guān)鍵字中定義的屬性。
      注意無(wú)論是否是快照,所報(bào)告的特性、選項(xiàng)和ParameterDef實(shí)例組不能改變。組成每個(gè)選項(xiàng)實(shí)例的ScoredProperty實(shí)例和分配給每個(gè)ScoredProperty元素的值也不能改變。這對(duì)于組成每個(gè)ParameterDef實(shí)例的特性實(shí)例也一樣。
      必須提供以便完整地定義特征/選項(xiàng)結(jié)構(gòu)和參數(shù)的其他特性實(shí)例的列表,見ParameterDef和ParameterInit。舉例而言,每個(gè)特征必須指定其使用界面(UI)動(dòng)作,特別是一次可以準(zhǔn)確地為每個(gè)特征選擇一個(gè)或多個(gè)選項(xiàng)實(shí)例。打印模式關(guān)鍵字文檔定義這些特性實(shí)例,它們必須出現(xiàn)在PrintCapabilities文檔的哪個(gè)位置以及在打印模式關(guān)鍵字中定義的哪個(gè)值實(shí)例是可用的。
      PrintCapabilities供應(yīng)商負(fù)責(zé)為所有配置相關(guān)特性實(shí)例發(fā)放適當(dāng)?shù)闹?。例如,如果打印速度取決于所使用的色彩模式和分辨率,那么PrintCapabilities供應(yīng)商必須注意在客戶機(jī)提供的PrintTicket中指定的色彩模式和分辨率,并且必須報(bào)告打印速度的適當(dāng)值。注意每個(gè)ScoredProperty實(shí)例必須是單值的-當(dāng)設(shè)備配置改變時(shí),其值實(shí)例不能改變。
      也要注意在打印模式關(guān)鍵字中定義的特性實(shí)例必須出現(xiàn)在那里指定的位置。它們不能出現(xiàn)在PrintCapabilities文檔中的任意位置。私有定義的特性實(shí)例可以出現(xiàn)在任何位置,甚至作為模式定義的特性實(shí)例中的子特性。
      PrintCapabilities模式的詳述該部分描述包含在應(yīng)用到PrintCapabilities模式中的打印模式框架中元素類型的語(yǔ)義和用法。
      特征/選項(xiàng)和參數(shù)結(jié)構(gòu)用在PrintCapabilities文檔中以便表示對(duì)設(shè)備配置的定義起作用的設(shè)備屬性。對(duì)于特征/選項(xiàng)結(jié)構(gòu)的例子,考慮能夠在幾種分辨率下打印的打印設(shè)備。定義分辨率的設(shè)備屬性可以表示為特征實(shí)例,每個(gè)可能的輸出分辨率值表示為單個(gè)選項(xiàng)實(shí)例。一個(gè)選項(xiàng)實(shí)例可以表示300dpi的分辨率,另一個(gè)可以表示600dpi的分辨率等等。
      應(yīng)該注意打印模式要求在每個(gè)PrintCapabilities文檔中報(bào)告的特征、選項(xiàng)和ParameterDef實(shí)例的列表必須保持不變,與配置無(wú)關(guān)。這樣可以明確地表示配置以及配置的相關(guān)性。這個(gè)要求的含義是每個(gè)特征和子特征必須具有明確定義的設(shè)置,不管任何其他的特征和子特征的設(shè)置。因此,每個(gè)子特征必須具有等價(jià)于no-op(關(guān)閉、禁用或無(wú)設(shè)置)的選項(xiàng),當(dāng)用戶選擇父特征中的no-op選項(xiàng)時(shí)會(huì)自動(dòng)地選擇所有子特征。因此,當(dāng)子特征之一被設(shè)置成啟用選項(xiàng)時(shí),也啟用了父特征和其他相關(guān)子特征。同時(shí),PrintTicket供應(yīng)商必須確保(在PrintTicket確認(rèn)期間)不管設(shè)備配置如何為所有特征和子特征實(shí)例定義了設(shè)置,且該子特征設(shè)置與父特征設(shè)置一致。這確保不會(huì)給設(shè)備不一致的PrintTicket,例如其中一些子特征指示啟用裝訂,而其他子特征指示禁用裝訂。
      注意不要求PrintCapabilities創(chuàng)建者利用特征元素的嵌套性能。如果期望,它們可以在平坦結(jié)構(gòu)中表示所有的特征實(shí)例,彼此之間如同兄弟。也要注意特征實(shí)例的嵌套集合可以通過(guò)將所有的子特征移到根層次來(lái)簡(jiǎn)單地使其變得扁平。唯一要注意的必須采用這個(gè)來(lái)確保這些特征實(shí)例的名稱屬性是唯一的。
      定義選項(xiàng)時(shí)主要考慮的是要采用這樣的方式,使得它可以有目的地與包含在相同特征中其他選項(xiàng)實(shí)例作比較。比較必須是有目的的,因?yàn)檫x項(xiàng)實(shí)例用于定義配置-不僅是設(shè)備的配置,也是作業(yè)的配置-而無(wú)關(guān)用于創(chuàng)建配置的設(shè)備或PrintCapabilities。特征中其他選項(xiàng)實(shí)例可以出現(xiàn)在相同的PrintCapabilities文檔中或表示不同設(shè)備的另一個(gè)PrintCapabilities文檔中,由獨(dú)立工作的另一方定義的PrintCapabilities文檔。在客戶機(jī)選擇用于渲染作業(yè)或文檔的設(shè)備配置后,一般將該配置與作業(yè)或文檔以PrintTicket的形式保存下來(lái)。PrintTicket包含一組選項(xiàng)實(shí)例,一般對(duì)于每個(gè)在PrintCapabilities文檔中定義的特征為一個(gè)實(shí)例。選項(xiàng)實(shí)例必須是可移植的且必須保留打印意圖,這樣使得當(dāng)將這個(gè)PrintTicket給到另一個(gè)設(shè)備時(shí)可以傳遞該意圖,所述不同的設(shè)備甚至可以具有由不同創(chuàng)建者所寫的不同的PrintCapabilities文檔。這個(gè)可移植性的主要好處在于如果不同的設(shè)備不是特定地支持包含在PrintTicket中的選項(xiàng),那么設(shè)備驅(qū)動(dòng)程序或子系統(tǒng)能夠標(biāo)識(shí)和選擇在功能上最接近的選項(xiàng)。
      驅(qū)動(dòng)程序的主要PrintTicket的功能之一是標(biāo)識(shí)PrintCapabilities文檔中的最接近地匹配PrintTicket中所列的特定選項(xiàng)的設(shè)備選項(xiàng)。在這個(gè)匹配或評(píng)價(jià)過(guò)程中,PrintTicket中的選項(xiàng)被稱為參考選項(xiàng),而PrintCapabilities文檔中的選項(xiàng)被稱為候選選項(xiàng)。通用匹配度量是候選和參考選項(xiàng)實(shí)例中匹配ScoredProperty實(shí)例的數(shù)目;較大數(shù)目的匹配通常表示對(duì)打印意圖較好的保存。在評(píng)價(jià)算法時(shí),會(huì)選擇給一些ScoredProperty元素比別的元素更高的權(quán)數(shù)。
      可以通過(guò)確保屬于相同特征的所有選項(xiàng)實(shí)例具有一個(gè)或多個(gè)共同的ScoredProperty元素以使得選項(xiàng)實(shí)例可移植。這意味著在每個(gè)選項(xiàng)實(shí)例(屬于相同的特征)中有一組ScoredProperty元素。例如,如果每個(gè)選項(xiàng)實(shí)例包含定義了本質(zhì)MediaSize特性(MediaSizeX、MediaSizeY和FeedOrientation)的ScoredProperty元素,MediaSize特征的選項(xiàng)實(shí)例可以是可移植的。設(shè)備驅(qū)動(dòng)程序和子系統(tǒng)編碼于是可以通過(guò)比較ScoredProperty值之間的差異來(lái)確定兩個(gè)選項(xiàng)實(shí)例有多么接近。如果在PrintCapabilities文檔中沒有選項(xiàng)完全匹配PrintTicket中的一個(gè)選項(xiàng),那么設(shè)備驅(qū)動(dòng)程序可以簡(jiǎn)單地確定和選擇最接近地匹配介質(zhì)尺寸的選項(xiàng)。
      如果滿足以下三個(gè)條件,就說(shuō)兩個(gè)對(duì)象(在這種情況下為選項(xiàng)實(shí)例)具有共同的元素或等價(jià)地具有相應(yīng)的元素。
      1.兩個(gè)元素具有相同的元素類型。
      2.兩個(gè)元素的名稱屬性是相同的(或兩個(gè)元素都沒有名稱屬性)。
      3.向上經(jīng)過(guò)考慮中的兩個(gè)對(duì)象的作比較的元素的父元素的鏈必須滿足條件1和2。
      例如,考慮以下情況有兩個(gè)選項(xiàng)實(shí)例,每個(gè)包含-ScoredProperty實(shí)例,這些ScoredProperty實(shí)例的每一個(gè)包含一特性實(shí)例。明顯地,滿足了第一個(gè)條件(兩個(gè)特性實(shí)例是相同的類型),部分滿足了第三個(gè)條件(特性實(shí)例的父元素具有相同的類型、ScoredProperty,且那些元素的父元素也是相同類型的選項(xiàng)實(shí)例。)如果特性實(shí)例各自的名稱屬性、ScoredProperty實(shí)例以及選項(xiàng)實(shí)例是相同的或沒有提供,那么這兩個(gè)選項(xiàng)實(shí)例具有相同的元素。
      如上所述,創(chuàng)建選項(xiàng)實(shí)例的第一步是定義一組出現(xiàn)在多數(shù)或全部選項(xiàng)實(shí)例中的ScoredProperty元素。如果可以用標(biāo)準(zhǔn)特征(打印模式關(guān)鍵字中列出的)表示設(shè)備配置屬性,將共同的ScoredProperty元素記錄在標(biāo)準(zhǔn)選項(xiàng)實(shí)例中。應(yīng)該確保引入的任一新選項(xiàng)實(shí)例也包含這些ScoredProperty元素??偸强梢栽谛枰獣r(shí)自由地增加其他ScoredProperty元素,用于將選項(xiàng)實(shí)例與標(biāo)準(zhǔn)選項(xiàng)實(shí)例相區(qū)分。如果有好的理由,甚至可以刪除一個(gè)或多個(gè)共同的ScoredProperty元素,雖然這會(huì)降低這樣的選項(xiàng)的可移植性。當(dāng)然,移植性考慮建議使用未經(jīng)修改的標(biāo)準(zhǔn)選項(xiàng)實(shí)例,除非在你的選項(xiàng)和標(biāo)準(zhǔn)選項(xiàng)實(shí)例之間存在某些本質(zhì)的差別,必須反映在新的選項(xiàng)實(shí)例中。
      以下例子示出了可能希望向選項(xiàng)實(shí)例增加ScoredProperty元素的情況。MediaSize特征的所有標(biāo)準(zhǔn)選項(xiàng)實(shí)例具有共同的MediaSizeX和MediaSizeYScoredProperty元素。假設(shè)通過(guò)通過(guò)橫向(LongEdgeFirst)或縱向(ShortEdgeFirst)進(jìn)紙,設(shè)備可以支持一種標(biāo)準(zhǔn)信紙介質(zhì)尺寸。假設(shè)不希望引入新的進(jìn)紙方向特征以開放這種程度的自由,可以替代地修改信件的兩個(gè)MediaSize選項(xiàng)實(shí)例來(lái)包含進(jìn)紙方向。對(duì)于這兩個(gè)信件選項(xiàng)實(shí)例,以標(biāo)準(zhǔn)MediaSize選項(xiàng)實(shí)例開始,并增加新的ScoredProperty元素以表示FeedOrientation。在一個(gè)選項(xiàng)實(shí)例中,將FeedOrientation ScoredProperty設(shè)置成LongEdgeFirst;在另一個(gè)選項(xiàng)實(shí)例中,將FeedOrientation設(shè)置成ShortEdgeFirst。注意這些新的選項(xiàng)實(shí)例維持了它們的可移植性。如果選項(xiàng)表示信紙,ShortEdgeFirst被保存到PrintTicket,只支持信紙標(biāo)準(zhǔn)選項(xiàng)的不同設(shè)備被選擇以渲染作業(yè),選項(xiàng)匹配編碼可以快速地確定該標(biāo)準(zhǔn)選項(xiàng)信件最佳地匹配選項(xiàng)信件ShortEdgeFirst。這是最佳匹配的原因在于所有的ScoredProperty實(shí)例一致,例外是不存在于信件標(biāo)準(zhǔn)選項(xiàng)中的FeedOrientationScoredProperty。
      也可能碰到這樣的情況對(duì)選項(xiàng)的修改實(shí)際上很大程度上改變了其意義,使得經(jīng)修改的選項(xiàng)不再能被視為原選項(xiàng)的特定情況。在這種情況下,應(yīng)該改變選項(xiàng)的OptionName ScoredProperty以便反映出經(jīng)修改和未經(jīng)修改的選項(xiàng)實(shí)例之間的區(qū)別。只有特定設(shè)備的PrintCapabilities文檔的創(chuàng)建者可以確定設(shè)備提供的選項(xiàng)是否與標(biāo)準(zhǔn)選項(xiàng)實(shí)例充分地不同以至于批準(zhǔn)不兼容的定義。
      現(xiàn)在考慮設(shè)備具有不對(duì)應(yīng)于任一標(biāo)準(zhǔn)特征實(shí)例的設(shè)備配置屬性的情況。在這種情況下,不能依賴于標(biāo)準(zhǔn)選項(xiàng)實(shí)例來(lái)提供共同ScoredProperty元素列表。當(dāng)創(chuàng)建ScoredProperty實(shí)例時(shí),主要目的是區(qū)分特征中的每個(gè)選項(xiàng)與其他選項(xiàng),并描述用戶為何要選擇一個(gè)選項(xiàng)而非另一個(gè)。基線是使用唯一的名稱屬性來(lái)表述每個(gè)選項(xiàng)的特征,持有該名稱屬性的ScoredProperty用于確定公共元素。
      在建立了一組公共元素之后,將適當(dāng)?shù)闹捣峙浣o每個(gè)ScoredProperty以便創(chuàng)建每個(gè)選項(xiàng)是簡(jiǎn)單的。如先前的例子,對(duì)于某些選項(xiàng)實(shí)例,可能需要增加另外的ScoredProperty實(shí)例或刪除一些公共的元素來(lái)創(chuàng)建合適的選頂實(shí)例。
      應(yīng)該注意打印模式要求ScoredProperty實(shí)例組、它們的位置和分配給選項(xiàng)中每個(gè)ScoredProperty的值必須保持不變,而與配置無(wú)關(guān)。打印模式的整個(gè)概念依賴于選項(xiàng)實(shí)例具有固定的、可以確認(rèn)的特性和在許多設(shè)備之間共享的ScoredProperty實(shí)例。
      注意并不限制增加ScoredProperty實(shí)例作為選項(xiàng)實(shí)例的子元素。ScoredProperty實(shí)例也可以在其他ScoredProperty實(shí)例中嵌套。當(dāng)設(shè)備特性是復(fù)合的且最好是有多個(gè)子特性表示時(shí),這是有用的。向現(xiàn)有(或公共)特性或ScoredProperty增加子特性在保持現(xiàn)有選項(xiàng)實(shí)例的可移植性的同時(shí)增強(qiáng)選項(xiàng)的好方法。例如MediaType特征的標(biāo)準(zhǔn)選項(xiàng)實(shí)例包含ScoredProperty,描述介質(zhì)的重量輕、中、重或超重。如果期望對(duì)重量更為精確的描述,那么可以增加包含介質(zhì)的100頁(yè)紙的實(shí)際重量(克)的子特性(在以下例子中為GramsPer100Shets(每100張值的克數(shù)))。增強(qiáng)選項(xiàng)可以如以下例子。&lt;Option name=″psk:Bond″&gt;
      &lt;ScoredProperty name=″psk:BackCoating″&gt;
      &lt;Value xsi:type=″xs:string″&gt;None&lt;/Value&gt;
      &lt;/ScoredProperty&gt;
      &lt;ScoredProperty name=″psk:FrontCoating″&gt;
      &lt;Value xsi:type=″xs:string″&gt;None&lt;/Value&gt;
      &lt;/ScoredProperty&gt;
      &lt;ScoredProperty name=″psk:Material″&gt;
      &lt;Value xsi:type=″xs:string″&gt;Paper&lt;/Value&gt;
      &lt;/ScoredProperty&gt;
      &lt;!--注意下面的ScoredProperty不是打印模式關(guān)鍵字之一--&gt;
      &lt;!--在此包括要為了說(shuō)明.--&gt;
      &lt;ScoredProperty name=″MediaWeight″&gt;
      &lt;Value xsi:type=″string″&gt;Medium&lt;/Value&gt;
      &lt;ScoredProperty name=″GramsPer100Sheets″&gt;
      &lt;Value xsi:type=″decimal″&gt;109.5&lt;/Value&gt;
      &lt;/ScoredProperty&gt;
      &lt;/ScoredProperty&gt;
      &lt;!--其它Property/ScoredProperty實(shí)例--&gt;
      &lt;/Option&gt;
      將原始和增強(qiáng)實(shí)例的比較產(chǎn)生了幾乎完全匹配,因?yàn)樵鰪?qiáng)的選項(xiàng)時(shí)原始選項(xiàng)的超集,且保持了每個(gè)原始ScoredProperty實(shí)例的位置和值。
      包括ParameterRef原始的選項(xiàng)的具體例子是定制介質(zhì)尺寸選項(xiàng)。注意它參考兩個(gè)參數(shù)PageMediaSizeMediaSizeX和PageMediaSizeMediaSizeY。每個(gè)ParameterRef實(shí)例參考在PrintCapabilities文檔中其他地方定義的ParameterDef實(shí)例。關(guān)于ParameterDef元素的信息,參見ParameterDef。有關(guān)定義參數(shù)的概念上的信息,參見ParameterDef和ParameterInit元素。&lt;Option name=″CustomMediaSize″&gt;
      &lt;ScoredProperty name=″psk:MediaSizeX″&gt;
      &lt;ParameterRef name=″PageMediaSizeMediaSizeX″/&gt;
      &lt;/ScoredProperty&gt;
      &lt;ScoredProperty name=″psk:MediaSizeY″&gt;
      &lt;ParameterRef name=″PageMediaSizeMediaSizeY″/&gt;
      &lt;/ScoredProperty&gt;
      &lt;Property name=″psk:FeedOrientation″&gt;
      &lt;Value xsi:type=″xs:string″&gt;ShortEdgeFirst&lt;/Value&gt;
      &lt;/Property&gt;
      &lt;/Option&gt;
      僅創(chuàng)建參數(shù)化的選項(xiàng)不足以確保選項(xiàng)會(huì)被正確處理。PrintCapabilities/PrintTicket供應(yīng)商和客戶機(jī)必須提供其他支持以便適當(dāng)?shù)貙?shí)現(xiàn)參數(shù)化的選項(xiàng)實(shí)例。所需動(dòng)作在以下部分中描述。
      假設(shè)正在創(chuàng)建PrintCapabilities客戶機(jī),這些客戶機(jī)在PrintCapabilities文檔中閱讀,從每個(gè)特征中選擇一個(gè)或多個(gè)選項(xiàng)并使用它們來(lái)構(gòu)建指定用于處理作業(yè)的配置的PrintTicket。對(duì)于每個(gè)感興趣的特征,客戶機(jī)必須檢查每個(gè)選項(xiàng)并確定該選項(xiàng)是否適合當(dāng)前的任務(wù)。對(duì)于未經(jīng)參數(shù)化的選項(xiàng),可以通過(guò)訪問(wèn)每個(gè)ScoredProperty的值來(lái)評(píng)估它。在非經(jīng)參數(shù)化的介質(zhì)尺寸選項(xiàng)的情況下,客戶機(jī)確定在每個(gè)選項(xiàng)中報(bào)告的介質(zhì)的X和Y尺寸是否與所需尺寸相匹配。
      在經(jīng)參數(shù)化的選項(xiàng)的情況下,客戶機(jī)必須訪問(wèn)包含在一個(gè)ScoredProperty實(shí)例中的ParameterRef實(shí)例中指示的ParameterDef實(shí)例。ParameterDef通常定義參數(shù)所允許的值的范圍以及值所示的單位(英寸、毫米等)。如果所需尺寸落入每個(gè)參數(shù)所允許的值的范圍內(nèi),那么客戶機(jī)就有另外的任務(wù),即初始化PrintTicket中的參數(shù)(通過(guò)ParameterInit實(shí)例)。這是特別重要的任務(wù)。例如,PrintTicket不應(yīng)該指定定制介質(zhì)尺寸而不指定介質(zhì)的尺寸,因?yàn)樗玫腜rintTicket會(huì)是含糊的和不清楚的。
      如果客戶機(jī)是用戶界面,必須處理一組類似的情況。用戶界面通常顯示為每個(gè)選項(xiàng)定義的ScoredProperty實(shí)例的值。清楚起見,必須顯示參數(shù)化選項(xiàng)中參數(shù)的所允許的范圍和單位。此外,如果用戶選擇了參數(shù)化選項(xiàng),那么用戶界面必須提示用戶輸入值用于初始化每個(gè)參數(shù)。最后,UI必須編寫PrintTicket,以反映所有的用戶選擇。
      PrintCapabilities和PrintTicket供應(yīng)商必須在PrintTicket確認(rèn)處理期間正確地處理參數(shù)化的選項(xiàng)實(shí)例。如在選項(xiàng)定義中所述,在PrintTicket確認(rèn)中執(zhí)行的一個(gè)步驟是找出當(dāng)前設(shè)備的PrintCapabilities文檔(候選選項(xiàng))中最佳地匹配在PrintTicket(參考選項(xiàng))中指定選項(xiàng)的選項(xiàng)。當(dāng)一個(gè)或兩個(gè)選項(xiàng)實(shí)例都被參數(shù)化了,有三種情況必須通過(guò)評(píng)價(jià)算法來(lái)處理一種情況是有兩個(gè)選項(xiàng)實(shí)例都被參數(shù)化,兩種情況是一個(gè)選項(xiàng)被參數(shù)化而另一個(gè)未被參數(shù)化。在以下情況中,假設(shè)在PrintTicketOption中的參數(shù)化的ScoredProperty實(shí)例與PrintCapabilitiesOption中的特定ScoredProperty之間有對(duì)應(yīng)關(guān)系。如果沒有對(duì)應(yīng)關(guān)系,那么評(píng)價(jià)算法可以用它處理任意其他非對(duì)應(yīng)ScoredProperty實(shí)例相同的方式來(lái)對(duì)待這些ScoredProperty實(shí)例。
      情況1-參數(shù)化的PrintTicket和PrintCapabilities文檔選項(xiàng)在這種情況下,參考選項(xiàng)(PrintTicket中)和候選選項(xiàng)(PrintCapabilities文檔中)都被參數(shù)化。訪問(wèn)候選選項(xiàng)參考的ParameterDef實(shí)例(都在PrintCapabilities文檔中),并確定在PrintTicket指定的ParameterInit值是否落入ParameterDef實(shí)例允許的范圍。如果是,就認(rèn)為這個(gè)ScoredProperty是匹配的。否則,這個(gè)ScoredProperty是不匹配的。
      情況2-參數(shù)化的PrintTicket選項(xiàng),未參數(shù)化的PrintCapabilities文檔選項(xiàng)在這種情況下,PrintTicket包含帶有參數(shù)化的選項(xiàng)的特征,而PrintCapabilities文檔中相應(yīng)特征至少包含一個(gè)未經(jīng)參數(shù)化的選項(xiàng)。即使PrintCapabilities文檔也包含參數(shù)化的其他選項(xiàng)實(shí)例,評(píng)價(jià)算法必須應(yīng)用到每個(gè)選項(xiàng),因?yàn)槟繕?biāo)是識(shí)別出最佳匹配選項(xiàng)??蛻魴C(jī)必須能夠?qū)⑽磪?shù)化的候選選項(xiàng)與參數(shù)化的參考選項(xiàng)作比較。
      因?yàn)榻?jīng)參數(shù)化的選項(xiàng)出現(xiàn)在PrintTicket中,所以ParameterInit實(shí)例應(yīng)該也出現(xiàn),如上述情況中所示。評(píng)價(jià)算法可以簡(jiǎn)單地用PrintTicket的ParameterInit實(shí)例指定的值替代PrintTicket的參數(shù)化選項(xiàng)中任一ParameterRef實(shí)例。這有效地將參數(shù)化的選項(xiàng)轉(zhuǎn)換成未參數(shù)化的選項(xiàng)。此時(shí),可以使用傳統(tǒng)的匹配算法。
      情況3-非參數(shù)化的PrintTicket選項(xiàng),參數(shù)化的PrintCapabilities Document選項(xiàng)在這種情況中,在PrintTicket中的參考選項(xiàng)不是參數(shù)化的,同時(shí)在PrintCapabilities文檔中的候選選項(xiàng)是參數(shù)化的。訪問(wèn)PrintCapabilities文檔中的ParameterDef實(shí)例,并確定在參考選項(xiàng)中為相應(yīng)的ScoredProperty定義的值是否落入ParameterDef實(shí)例所允許的范圍,PrintTicket中候選選項(xiàng)的ParameterRef實(shí)例參考所述的PrintCapabilities文檔。如果這樣,認(rèn)為這個(gè)ScoredProperty是匹配的。如果不是這樣,這個(gè)ScoredProperty不是匹配的。
      需要強(qiáng)調(diào)的是通過(guò)ScoredProperty實(shí)例所匹配的數(shù)目(和重要性)來(lái)確定兩個(gè)選項(xiàng)實(shí)例的接近程度,獨(dú)立于ScoredProperty實(shí)例是否包含確切的Value實(shí)例或ParameterRef實(shí)例。候選選項(xiàng)是最好的匹配是有可能的,即使包含一些與參數(shù)選項(xiàng)不匹配或在參考選項(xiàng)中沒有相應(yīng)特性的特性實(shí)例。
      打印模式允許特性實(shí)例出現(xiàn)在選項(xiàng)實(shí)例中。PrintCapabilities文檔中所定義的特性實(shí)例沒有傳播到保存在PrintTicket中的選項(xiàng)實(shí)例。多兩個(gè)選項(xiàng)實(shí)例被比較時(shí),屬性元素不影響評(píng)價(jià)程序的結(jié)果,但是ScoredProperty實(shí)例確對(duì)此產(chǎn)生影響。所有執(zhí)行評(píng)估算法的設(shè)備驅(qū)動(dòng)程序都應(yīng)該遵守這個(gè)約定。PrintCapabilities供應(yīng)商被允許向選項(xiàng)添加特性實(shí)例,如果這些實(shí)例特定于該選項(xiàng)而非其他選項(xiàng),或者如果供應(yīng)商希望這個(gè)特性的值在特征中的每個(gè)選項(xiàng)中都出現(xiàn)。例如,假設(shè)SamplePrintRate特性取決于為SampleResolution特征所選擇的選項(xiàng)。若SamplePrintRate特性被放在PrintCapabilities文檔的根層次,那它是單一值并且只反映當(dāng)前選擇的解決模式的打印速度。然而,若SamplePrintRate被放在每個(gè)SampleResolution選項(xiàng)內(nèi),SamplePrintRate特性的每個(gè)實(shí)例都可以反應(yīng)包含在SampleResolution選項(xiàng)中的打印速度。PrintCapabilities文檔可以包含SamplePrintRate的多重定義,每個(gè)SampleResolution選項(xiàng)對(duì)應(yīng)一個(gè)。用一個(gè)簡(jiǎn)寫的表示,PrintCapabilities包含&lt;Feature name=″SampleResolution″&gt;
      &lt;Option name=″300dpi″&gt;
      &lt;Property name=″SamplePrintRate″&gt;
      &lt;Value xsi:type=″string″&gt;20ppm&lt;/Value&gt;
      &lt;/Property&gt;
      &lt;/Option&gt;
      &lt;Option name=″600dpi″&gt;
      &lt;Property name=″SamplePrintRate″&gt;
      &lt;Value xsi:type=″string″&gt;15ppm&lt;/Value&gt;
      &lt;/Property&gt;
      &lt;/Option&gt;
      &lt;/Feature&gt;
      在一些情形里,將打印速度特性放置在每個(gè)解決選項(xiàng)中對(duì)客戶機(jī)來(lái)說(shuō)是更方便的,因?yàn)榭蛻魴C(jī)不需要為了每個(gè)解決方案設(shè)置都獲得新的PrintCapabilities文檔而只需要查看在打印速度上每個(gè)解決方案選項(xiàng)的結(jié)果就能做出決定。
      注意特性實(shí)例也可以作為特征元素的子元素被添加。對(duì)于特性實(shí)例或者那些特定于每個(gè)特征的特性實(shí)例的值來(lái)說(shuō)很有用。例如,可能有一特性指定了是否對(duì)于特征在某一時(shí)刻只有一個(gè)選項(xiàng)允許被選擇,或者是否多個(gè)選項(xiàng)可以被選擇。這是在PPD和GPD文件中使用的PICK_ONE和PICK_MANY特性。由于一些特征實(shí)例可能被標(biāo)識(shí)為PICK_ONE,而其他則被標(biāo)識(shí)為PICK_MANY,必須為每個(gè)特征定義該特性。將特性定位為特征的子元素,生成特性和特征之間的關(guān)聯(lián)。
      為了使PrintCapabilities客戶機(jī)可以建立合理的PrintTicket,PrintCapabilities文檔必須提供特征實(shí)例的某些特性以及特征中的選項(xiàng)實(shí)例。普通用戶界面(UI)模塊需要此信息來(lái)建立UI。這進(jìn)而需要打印模式關(guān)鍵字(PrintSchema Keywords)定義一些顯示為特征和選項(xiàng)元素子元素的特性實(shí)例。
      特征元素可包含以下特性。

      選項(xiàng)元素包含下列特性。

      特征、選項(xiàng)和ParameterDef元素可包含以下特性。

      如在參數(shù)參考元素中所述,ParameterInit元素是可以從選項(xiàng)實(shí)例內(nèi)被參考的,但參數(shù)結(jié)構(gòu)也有獨(dú)立于這個(gè)元素類型的用途。
      非常適用于參數(shù)表示的設(shè)備配置屬性的示例是CopyCount。被允許的這個(gè)設(shè)備配置屬性的值可以很容易和簡(jiǎn)明的定義,而不需要明確的列出其中的每一個(gè)。雖然冗長(zhǎng)乏味,但在其自身選項(xiàng)中列出每個(gè)CopyCount值是可能的,一些設(shè)備配置屬性就是不能用特征/選項(xiàng)結(jié)構(gòu)簡(jiǎn)單地表示出來(lái)。舉例而言,考慮接受文本串的設(shè)備,文本要隨后被用來(lái)在每個(gè)輸出頁(yè)面上生成虛擬水印。所有可能的文本串的組不能簡(jiǎn)單的被明確列舉,但是文本串可以簡(jiǎn)單的用ParameterDef元素來(lái)描述。
      Print Schema Keywords(打印模式關(guān)鍵字)文檔定義了許多普通使用的參數(shù)結(jié)構(gòu),但是PrintCapabilities供應(yīng)商可以自由的定義他們自己的附加參數(shù)結(jié)構(gòu)。然而,由于另一方提供的PrintCapabilities文檔沒有定義這樣的參數(shù)結(jié)構(gòu)的事實(shí),這些私有定義的參數(shù)結(jié)構(gòu)對(duì)其他設(shè)備來(lái)說(shuō)沒有可移植性。無(wú)論是模式定義的或私有定義的,ParameterDef實(shí)例必須在參數(shù)被認(rèn)可并被客戶機(jī)使用前在PrintCapabilities文檔中出現(xiàn)。這些參數(shù)稱為指定參數(shù)。
      除了適當(dāng)?shù)卦u(píng)價(jià)包含ParameterRef實(shí)例(參見參考參數(shù))的選項(xiàng)之外,PrintCapabilities或PrintTicket供應(yīng)商和客戶機(jī)必須準(zhǔn)備處理涉及參數(shù)的情況。
      用戶界面(UI)客戶機(jī)必須在適當(dāng)?shù)臅r(shí)候提醒用戶為指定的參數(shù)提供參數(shù)初始化程序(用于ParameterInit元素的值)以便適當(dāng)?shù)腜arameterInit元素被插入到PrintTicket中。用戶界面客戶機(jī)必須能夠區(qū)別兩個(gè)種類的參數(shù)無(wú)條件強(qiáng)制的和有條件強(qiáng)制的,并且必須能夠適當(dāng)?shù)奶幚砻總€(gè)種類。對(duì)于無(wú)條件強(qiáng)制的參數(shù),UI必須保證ParameterInit元素被提供給這個(gè)類型的參數(shù)。對(duì)于有條件強(qiáng)制參數(shù),若參數(shù)被在PrintTicket中選擇的選項(xiàng)所引用,用戶界面必須提供ParameterInit值。參數(shù)的強(qiáng)制狀態(tài)在ParameterDef實(shí)例中被指定。更多信息請(qǐng)參見ParameterDef和ParameterInit元素。用戶界面客戶機(jī)應(yīng)該驗(yàn)證用戶提供的ParameterInit值以確認(rèn)它們滿足ParameterDef實(shí)例中指定的要求。
      PrintTicket供應(yīng)商也應(yīng)該檢查由PrintTicket提供的ParameterInit實(shí)例以驗(yàn)證所有需要的參數(shù)存在并且它們滿足ParameterDef實(shí)例中指定的要求。當(dāng)ParameterInit值無(wú)數(shù)或丟失時(shí),確認(rèn)碼應(yīng)該提供合理的默認(rèn)值。注意,ParameterDef允許默認(rèn)值由于這個(gè)原因被提供。并且,如果有涉及參數(shù)的約束條件,例如“如果CopyCount比N大,那么不要使用小容量輸入箱”,PrintTicket確認(rèn)碼應(yīng)該偵測(cè)到這個(gè)約束條件并修改PrintTicket以避免激活這個(gè)約束條件。
      若在PrintTicket指定的參數(shù)上有任何PrintCapabilities的相關(guān)性,PrintCapabilities供應(yīng)商必須監(jiān)控ParameterInit值并提供適當(dāng)?shù)腜rintCapabilities文檔。
      PrintCapabilities模式提供給PrintCapabilities創(chuàng)建者在設(shè)備描述中可以使用的很大限度的靈活性和可表達(dá)性。然而,配置相應(yīng)性在這種靈活性和可表達(dá)性上強(qiáng)加了限制。ParameterDef實(shí)例、特征元素列表、每個(gè)特征內(nèi)的選項(xiàng)實(shí)例列表和每個(gè)選項(xiàng)內(nèi)的ScoredProperty實(shí)例不能包含配置相關(guān)性。PrintCapabilities文檔供應(yīng)商必須檢測(cè)到無(wú)效的配置組合并解決它們。
      將PrintCaoabilities和Print Schema(打印模式)連接通用PrintCapabilities模式包括各種元素類型的結(jié)構(gòu)、目的和用法。它指定用于定義每個(gè)元素類型的特定實(shí)例的名稱屬性。它指定PrintCapabilities創(chuàng)建者可使用由打印模式關(guān)鍵字定義的元素的實(shí)例或者可以引入其私有定義的實(shí)例,只要這些私有定義的實(shí)例是在明確地標(biāo)識(shí)為它們自身的名稱空間中定義的。(PrintCapabilities創(chuàng)建者也可使用先前在另一個(gè)私有名稱空間中定義的實(shí)例。)打印模式關(guān)鍵字文檔定義了在PrintCapabilities文檔和PrintTickets中可以使用的每個(gè)元素類型的特定實(shí)例。它也說(shuō)明了它們的目標(biāo)和用途。打印模式關(guān)鍵字文檔也定義若干元素類型的實(shí)例,如下特性和子特性實(shí)例駐留在PrintCapabilities文檔的根部——這些元素描述了設(shè)備的不同方面和性能,并提供普通詞匯表來(lái)描述設(shè)備。
      特性和子特性實(shí)例是特征元素的子元素——這些元素描述了有關(guān)特定特征的不同方面。
      特性和子特性實(shí)例是選項(xiàng)元素的子元素——這些元素描述了設(shè)備的不同方面和性能,它們?nèi)Q于為特定特征選擇的選項(xiàng)。這些可以被存在于PrintCapabilities根的特性實(shí)例所替代,在一些情況里提供額外的便利。更多信息參見Adding Property Instances(添加特性實(shí)例)。
      屬性實(shí)例——這些元素影響系統(tǒng)處理和Attribute(屬性)相關(guān)聯(lián)的特性的方式。由于系統(tǒng)明確的實(shí)現(xiàn)了每個(gè)屬性的行為并且響應(yīng)每個(gè)屬性,所以不支持私有定義的屬性實(shí)例。
      ScoredProperty實(shí)例——ScoredProperty實(shí)例定義了用于描述選項(xiàng)特征的語(yǔ)言。由于ScoredProperty實(shí)例在打印模式關(guān)鍵字中定義,這使由許多不同為許多設(shè)備縮寫的迭項(xiàng)實(shí)例是可移值的,并被任何其他的設(shè)備驅(qū)動(dòng)程序或者PrintCapabilities或PrintTicket供應(yīng)商理解變成可能。最廣泛使用的ScoredProperty是OptionName(選項(xiàng)名稱)。
      ScoredProperty值實(shí)例——這些值實(shí)例與ScoredProperty實(shí)例有同樣的被提供的原因。
      特征實(shí)例——每個(gè)選項(xiàng)必須屬于一特定的特征,因此需要特征本身被定義。
      ParameterDef實(shí)例——由打印模式關(guān)鍵字提供的ParameterDef實(shí)例)也為其包含的每個(gè)特性定義了值。PrintCapabilities供應(yīng)商可以自由的為那些可以改變的特性實(shí)例修改值實(shí)例。更多關(guān)于哪些特性實(shí)例可被更該、哪些不能被更改的信息(不可改變的),請(qǐng)參見ParameterDefand ParameterInitElements(ParameterDef和ParameterInit元素)。
      重要的是注意PrintCapabilities模式不命名任何選項(xiàng)實(shí)例。選項(xiàng)實(shí)例單獨(dú)由他們的被認(rèn)為是一個(gè)整體的ScoredProperty實(shí)例所描述。普遍的誤解是OptionName特性的簡(jiǎn)寫標(biāo)識(shí)選項(xiàng)實(shí)例,但這是不正確的。OptionName特性的值不需要相對(duì)于兄弟選項(xiàng)實(shí)例是唯一的,OptionName特性也不需要出現(xiàn)在選項(xiàng)中。
      打印模式關(guān)鍵字文檔定義了標(biāo)準(zhǔn)的名稱空間,所有的PrintCapabilities和PrintTicket模式由的實(shí)例名稱屬性都屬于這個(gè)空間。所有的元素類型使用的元素類型標(biāo)簽和可擴(kuò)展標(biāo)記語(yǔ)言(XML)屬性也屬于這個(gè)名稱空間。
      對(duì)于每個(gè)在PrintCapabilities模式中定義的實(shí)例,PrintCapabilities模式同時(shí)指定實(shí)例的名稱屬性和位置。供應(yīng)商和客戶機(jī)在他們的PrintCapabilities文檔或PrintTicket中使用這個(gè)實(shí)例時(shí),必須同時(shí)保存名稱屬性和位置。
      打印模式關(guān)鍵字文檔指定一些實(shí)例為強(qiáng)制性的。這些實(shí)例必須出現(xiàn)在每個(gè)PrintCapabilities文檔內(nèi),并被適當(dāng)?shù)挠捎行У闹颠M(jìn)行初始化。打印模式關(guān)鍵字中沒有被指定為強(qiáng)制性的所有實(shí)例都是可選的。
      PrintCapabilities文檔消費(fèi)者的責(zé)任PrintCapabilities文檔的消費(fèi)者具有必須在他們能使用PrintCapabilities文檔之前確認(rèn)的某些義務(wù)。以下是應(yīng)用于PrintCapabilities文檔的客戶機(jī)的要求。
      不能拒絕或失敗地處理任何語(yǔ)句有效的PrintCapabilities;即,任何PrintCapabilities文檔遵循PrintCapabilities模式。
      必須能在發(fā)生意外或者缺少私有定義內(nèi)容的情況下工作。這包括了在打印模式定義的元素內(nèi)出現(xiàn)的私有定義的內(nèi)容。
      必須能在缺少可選打印模式的情況下工作。
      必須了解何時(shí)需要請(qǐng)求新的文檔。
      特性實(shí)例的值配置相關(guān)的(因此,快照相關(guān)的)。當(dāng)訪問(wèn)特性實(shí)例時(shí),必須更新快照。
      被復(fù)制到PrintTicket的特征、選項(xiàng)和ScoredProperty實(shí)例按定義是靜態(tài)的。即,他們不是(且一定不是)在設(shè)備配置上相關(guān)。若要訪問(wèn)這些類型的任何實(shí)例,當(dāng)配置改變時(shí),不需要獲得新的PrintCapabilities文檔。
      PrintCapabilities的消費(fèi)者,也就是用戶界面(UT)客戶機(jī),必須能夠使用PrintCapabilities文檔中的信息來(lái)建立用戶界面并能根據(jù)用戶選擇建立有效的PrintTicket。這包括了解哪些ParameterInit實(shí)例須被指定,并確認(rèn)那些被指定的實(shí)例。
      PrintCapabilities供應(yīng)商的責(zé)任PrintCapabilities供應(yīng)商必須支持最小的、由PrintTicket/PrintCapabilities供應(yīng)商界面包含的性能集合。這些性能在此被列出。
      它們必須遵循可擴(kuò)展標(biāo)記語(yǔ)言(XML)屬性傳播的方向,當(dāng)其出現(xiàn)在適當(dāng)?shù)那闆r并包含那個(gè)情況下有效的值時(shí)。
      它們必須產(chǎn)生與PrintCapabilities模式相一致的PrintCapabilities文檔并滿足打印模式中指定的要求。
      它們必須能識(shí)別有效的PrintTicket。
      它們必須能解釋PrintTicket并理解其表示的特定配置。
      它們必須能確定此配置是否包含約束沖突。
      它們必須能修改無(wú)效的或相沖突的PrintTicket,通過(guò)作出最小的但必要的變化使其成為有效的且沒有沖突。
      它們必須能為特定的設(shè)備配置產(chǎn)生PrintCapabilities文檔。
      它們必須能產(chǎn)生默認(rèn)配置或PrintTicket。
      它們必須能產(chǎn)生與默認(rèn)配置相應(yīng)的PrintCapabilities文檔。
      它們必須實(shí)現(xiàn)能確定兩個(gè)屬于同一個(gè)特征的選項(xiàng)實(shí)例之間的匹配接近程度的選項(xiàng)評(píng)價(jià)的算法能力。此算法在PrintTicket確認(rèn)過(guò)程中使用。
      除了前述要求之外,PrintCapabilities文檔必須包含對(duì)每個(gè)選項(xiàng)的每個(gè)XML屬性都有效和正確的值(例如,受約束的)。
      PrintCanabilities文檔的例子以下組成了示例性的PrintCapabilities文檔。默認(rèn)的名稱空間不能應(yīng)用于XML屬性。這必須是明確地前綴限定的。在以下示例中使用的實(shí)例名稱僅為了說(shuō)明,雖然他們通常符合打印模式關(guān)鍵字中所定義的實(shí)例名稱。
      &lt;psf:PrintCapabilities Version=″1″xmlns:psf=″http://schemas.microsoft.com/windows/2003/08/printing/printschemaframework″xmlns:psk=″http://schemas.microsoft.com/windows/2003/08/printing/printschemakeywords″xmlns:xsi=″http://www.w3.org/2001/XMLSchema-instance″xmlns:xs=″http://www.w3.org/2001/XMLSchema″xmlns:nsl=″http://www.privatenamespace1.com″xmlns:ns2=″http://www.privatenamespace2.com″&gt;
      &lt;!--具有值、子特性和AttributeRef實(shí)例的根層次特性的示例--&gt;
      &lt;psf:Property name=″psk:DevicePrintRate″&gt;
      &lt;psf:Property name=″psk:UnitType″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;PPM&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;20&lt;/psf:Value&gt;
      &lt;psf:AttributeRef name=″psk:PrivateAttrbutes″/&gt;
      &lt;/psf:Property&gt;
      &lt;!--屬性集合的定義。注意沒有為打印模式關(guān)鍵字版本定義的屬性.--&gt;
      &lt;psf:AttributeSet name=″ns1:PropertyAttribs″&gt;
      &lt;psf:Attribute name=″psk:AttributeName1″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;Test String&lt;/psf:Value&gt;
      &lt;/psf:Attribute&gt;
      &lt;psf:Attribute name=″psk:AttributeName2″&gt;
      &lt;psf:Value xsi:type=″xs:decimal″&gt;1.234&lt;/psf:Value&gt;
      &lt;/psf:Attribute&gt;
      &lt;/psf:AttributeSet&gt;
      &lt;ps:Feature name=″psk:MediaSize″&gt;
      &lt;!--OptionName的簡(jiǎn)寫表達(dá)示例。OptionName是這個(gè)選項(xiàng)定義中唯一的StoredPreperty.--&gt;
      &lt;psf:Option name=″psk:AOISO″/&gt;
      &lt;!--私有定義的OptionName的使用--&gt;
      &lt;psf:Option name=″nsl:MyDeviceSpecificSize″/&gt;
      &lt;!--OptionName的普通寫法表達(dá)的示例.--&gt;
      &lt;psf:Option&gt;
      &lt;psf:ScoredProperty name=″OptionName″&gt;
      &lt;psf:Value xsi:type=″QName″&gt;psk:B0JIS&lt;/psf:Value&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;/psf:Option&gt;
      &lt;!--包含兩個(gè)StoredProperty實(shí)例的選項(xiàng)定義的示例.--&gt;
      &lt;psf:Option name=″psk:C0ISO″&gt;
      &lt;psf:ScoredProperty name=″psk:MediaSizeX″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;917000&lt;/psf:Value&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;psf:ScoredProperty name=″psk:MediaSizeY″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;1297000&lt;/psf:Value&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;/psf:Option&gt;
      &lt;!--沒有選項(xiàng)名稱的選項(xiàng)定義的示例,僅包含兩個(gè)私有的ScoredProperty,每個(gè)有不同的各空間.--&gt;
      &lt;psf:Option&gt;
      &lt;psf:ScoredProperty name=″ns1:PaperID″&gt;
      &lt;psf:Value xsi:type=″integer″&gt;47&lt;/psf:Value&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;psf:ScoredProperty name=″ns2:PaperID″&gt;
      &lt;psf:Value xsi:type=″integer″&gt;69&lt;/psf:Value&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;/psf:Option&gt;
      &lt;!--具有私有的ScoredProperty的選項(xiàng)定義的示例--&gt;
      &lt;psf:Option name=″psk:EnvelopelPRC″&gt;
      &lt;psf:ScoredProperty name=″psk:MediaSizeX″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;102000&lt;/psf:Value&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;pst:ScoredProperty name=″psk:MediaSizeY″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;165000&lt;/psf:Value&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;psf:ScoredProperty name=″ns1:PriVateInfo″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;MyValue&lt;/psf:Value&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;/psf:Option&gt;
      &lt;!--包含Parameter Ref實(shí)例的選項(xiàng)定義--&gt;
      &lt;psf:Option name=″CustomMediaSize″&gt;
      &lt;psf:ScoredProperty name=″psk:MediaSizeX″&gt;
      &lt;psf:ParameterRef name=″PageMediaSizeMediaSizeX″/&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;psf:ScoredProperty name=″psk:MediaSizeY″&gt;
      &lt;psf:ParameterRef name=″PageMediaSizeMediaSizeY″/&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;psf:Property name=″psk:FeedOrientation″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;LongEdgeFirst&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;/psf:Option&gt;&lt;/psf:Feature&gt;&lt;!--這個(gè)特征包含選項(xiàng)定義和子特征.--&gt;&lt;psf:Feature name=″psk:DocumentNUp″&gt;
      &lt;!--指定每個(gè)介質(zhì)頁(yè)1頁(yè)--&gt;
      &lt;psf:Option&gt;
      &lt;psf:ScoredProperty name=″psk:PagesPerSheet″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;1&lt;/psf:Value&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;/psf:Option&gt;
      &lt;!--指定每個(gè)介質(zhì)頁(yè)2頁(yè)--&gt;
      &lt;psf:Option&gt;
      &lt;psf:ScoredProperty name=″psk:PagesPerSheet″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;2&lt;/psf:Value&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;/psf:Option&gt;
      &lt;!--其它選項(xiàng)…--&gt;
      &lt;psf:Feature name=″psk:PresentationDirection″&gt;
      &lt;!--指定左至右,上至下.--&gt;
      &lt;psf:Option name=″psk:RightBottom″/&gt;
      &lt;!--指定上至下,左至右.--&gt;
      &lt;psf:Option name=″psk:BottomRight″/&gt;
      &lt;!--其它選項(xiàng)…--&gt;
      &lt;/psf:Feature&gt;
      &lt;!--私有定義的子特征--&gt;
      &lt;psf:Feature name=″ns2:DeviceSpecificFeature3″&gt;
      &lt;!--私有定義的特征的所有選項(xiàng)必須是私有的--&gt;
      &lt;psf:Option name=″ns2:opt1″/&gt;
      &lt;psf:Option name=″ns2:opt2″/&gt;
      &lt;psf:Option name=″ns2:opt3″/&gt;
      &lt;psf:Option name=″ns2:Off″/&gt;
      &lt;/psf:Feature&gt;&lt;/psf:Feature&gt;&lt;!--從CustomMediaSize選項(xiàng)參考的兩個(gè)參數(shù)的定義--&gt;&lt;!--指定MediaSizeX ScoreProperty的值.--&gt;&lt;psf:ParameterDef name=″psk:PageMediaSizeMediaSizeX″&gt;
      &lt;psf:Property name=″psk:DataType″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;xs:integer&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:DefaultValue″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;0&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:MaxValue″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;0&lt;/psf:Value&gt;&lt;!--未定義的--&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:MinValue″&gt;
      &lt;psf:Value xsi:type=″xs:decimal″&gt;0&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:Multiple″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;1&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:Mandatory″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;Conditional&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:UnitType″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;microns&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;&lt;/psf:ParameterDef&gt;&lt;!--指定MediaSizeY ScoredProperty的值.--&gt;&lt;psf:ParameterDef name=″pskPageMediaSizeMediaSizeY″&gt;
      &lt;psf:Property name=″psk:DataType″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;xs:integer&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:DefaultValue″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;0&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:MaxValue″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;0&lt;/psf:Value&gt;&lt;!--undefined--&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:MinValue″&gt;
      &lt;psf:Value xsi:type=″xs:decimal″&gt;0&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:Multiple″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;1&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:Mandatory″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;Conditional&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:UnitType″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;microns&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;/psf:ParameterDef&gt;
      &lt;!--不從任何選項(xiàng)參考的參數(shù)的定義--&gt;
      &lt;!--指定頁(yè)的拷貝數(shù).--&gt;
      &lt;psf:ParameterDef name=″psk:PageCopyCount″&gt;
      &lt;psf:Property name=″psk:DataType″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;xs:integer&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:DefaultValue″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;1&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:MaxValue″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;0&lt;/psf:Value&gt;&lt;!--undefined--&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:MinValue″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;1&lt;/psf:Value&gt;&lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:Multiple″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;1&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:Mandatory″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;Unconditional&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;psf:Property name=″psk:UnitType″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;Copies&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;/psf:ParameterDef&gt;
      &lt;/psf:PrintCapabilities&gt;
      PrintTicket模式和文檔結(jié)構(gòu)目前采用DEVMODE結(jié)構(gòu)指定設(shè)備配置信息的方法受到若干限制。首先,DEVMODE結(jié)構(gòu)是二進(jìn)制的結(jié)構(gòu),這會(huì)導(dǎo)致版本不一致的問(wèn)題。其次,它被分割為不可擴(kuò)展的公共部分和只能被驅(qū)動(dòng)程序訪問(wèn)并只能由指定的驅(qū)動(dòng)程序創(chuàng)建的私有部分。PrintTicket格式使用基于可擴(kuò)展標(biāo)記語(yǔ)言(XML)的打印模式框架來(lái)表示配置信息,由此消除了DEVMODE結(jié)構(gòu)的這些缺陷。
      PrintTicket模式能解決剛才提到的兩個(gè)問(wèn)題。首先,PrintTicket模式是基于XML的文本文件,因此有關(guān)可擴(kuò)展性和版本的問(wèn)題被消除。其次,配置信息對(duì)所有客戶機(jī)是可用的,意味著任何客戶機(jī)或者供應(yīng)商都可以存儲(chǔ)和重新得到任何包含在PrintTicket上的信息。選項(xiàng)使用被打印模式框架和所得到的PrintCapabilities文檔使用相同的技術(shù)被描述。因此,PrintTicket提供全部要重現(xiàn)的選項(xiàng)定義模型的潛在的可移植性好處。更多信息請(qǐng)參見打印模式框架。需要使用這段中所包含信息的人有●PrintTicket/PrintCapabilities供應(yīng)商界面的實(shí)現(xiàn)者●PrintTicket的消費(fèi)者●PrintTicket/PrintCapabilities供應(yīng)商界面的客戶機(jī)上述列表中的第一類成員在這一段落的剩余部分被認(rèn)為是PrintTicket供應(yīng)商。其他兩類成員被認(rèn)為是PrintTicket消費(fèi)者。
      PrintTicket模式和PrintCapabilities模式都是打印模式的專門部分。這些打印模式的子集間主要的結(jié)構(gòu)上的差異是PrintTicket模式包含特性和ParameterInit實(shí)例而PrintCapabilities模式不包含,PrintCapabilities模式包含特性和ParameterDef實(shí)例而PrintTicket模式不包含。除了這些差異,PrintCapabilities模式和PrintTicket模式通常在內(nèi)容上相互對(duì)應(yīng),共享特征、選項(xiàng)、ScoredProperty和值實(shí)例。任何這樣共享的內(nèi)容必須保持是最近的。例如,若PrintCapabilities模式中的MediaSize特征發(fā)生變化,同樣的變化一定要在PrintTicket模式中發(fā)生。
      PrintTicket功能性概述PrintTicket利用基于可擴(kuò)展標(biāo)記語(yǔ)言(XML)的格式來(lái)表示設(shè)備配置信息,后者使用特征/選項(xiàng)和打印模式框架的參數(shù)結(jié)構(gòu)。這包括所有的標(biāo)準(zhǔn)元素類型以及打印模式框架的可擴(kuò)展性能力。PrintTicket被假設(shè)為自身包含單一頁(yè)面如何被處理的描述。有關(guān)如何從特定文檔格式中提取并建立這樣的PrintTicket的步驟沒有在這里提到。
      PrintTicket可用于獲得描述有特定配置設(shè)備的特性的PrintCapabilities文檔。作為選擇,可連同一組渲染指定提交PrintTicket以產(chǎn)生根據(jù)PrintTicket指定的配置渲染和處理的輸出頁(yè)面。
      PrintTicket的主要目的是表達(dá)打印作業(yè)的配置。對(duì)照定義設(shè)備能采用的所有可能配置(設(shè)備配置空間)的PrintCapabilities文檔,PrintTicket的目的是定義單一特定的已經(jīng)應(yīng)用于正在處理的作業(yè)目標(biāo)的配置(在這個(gè)情況里是頁(yè)面)。為了提升配置的可移植性和一致性,打印模式關(guān)鍵字段落中提供的特定的關(guān)鍵字和層次都被PrintCapabilities技術(shù)和PrintTicket技術(shù)使用。另外,打印模式框架定義了兩個(gè)技術(shù)的基礎(chǔ)結(jié)構(gòu),以便促進(jìn)作業(yè)格式和PrintCapabilities明確的、開放的和可擴(kuò)展的通訊。
      除了為PrintCapabilities定義的設(shè)備屬性提供選擇以外,PrintTicket允許由客戶機(jī)以屬性元素的形式附加額外的信息。打印模式定義了許多標(biāo)準(zhǔn)特性實(shí)例,并且界面供應(yīng)商也可以自由地引入私有特性實(shí)例。例如,如果組織的成員將它們的大多數(shù)打印作業(yè)發(fā)送到中央一批設(shè)備,他們可以為每個(gè)作業(yè)指定包含返回地址的私有特性實(shí)例。此特性可使將那些已完成的作業(yè)傳遞給創(chuàng)建者變得更簡(jiǎn)單。
      如在PrintCapabilities模式那段中討論的,一些表示在PrintCapabilities文檔中表達(dá)的可能的配置結(jié)果對(duì)設(shè)備是無(wú)效的。那些無(wú)效的配置是包含約束沖突(在PPD/GPD文件領(lǐng)域內(nèi)使用的術(shù)語(yǔ))。為了防止約束沖突,PrintTicket供應(yīng)商必須支持客戶機(jī)用于對(duì)他們的PrintTicket執(zhí)行確認(rèn)的PrintTicket確認(rèn)操作。此操作應(yīng)該能偵測(cè)設(shè)備上是否出現(xiàn)指定的配置。若沒有出現(xiàn)指定的配置(由于指定的特征和選項(xiàng)元素在當(dāng)前設(shè)備中不存在,或由于是受約束的配置),此操作應(yīng)該修改輸入PrintTicket以便使其包含有效的、非受約束的設(shè)置。此操作也可能移除或確認(rèn)PrintTicket的其他信息。注意,當(dāng)遇到約束沖突,為了避免這個(gè)約束沖突,確認(rèn)碼必須改變?cè)O(shè)備屬性之一的設(shè)置。選項(xiàng)定義建議,為了最好的保存用戶的初始意圖,評(píng)價(jià)算法應(yīng)該用于確定哪個(gè)設(shè)備屬性應(yīng)該被改變。確認(rèn)碼可通過(guò)硬編碼評(píng)價(jià)算法以支持設(shè)備屬性中的一個(gè),或者用PrintTicket中的特定特性實(shí)例提供的信息來(lái)引導(dǎo)解決模式。由于在打印模式關(guān)鍵字中沒有定義過(guò),使客戶機(jī)可以指定每個(gè)設(shè)備屬性的相對(duì)優(yōu)先權(quán)的特性,任何用于這個(gè)目的的私有PrintTicketProperty元素很可能被其他PrintTicket供應(yīng)商忽略。
      PrintTicket語(yǔ)法和模式PrintTicket是用基于可擴(kuò)展標(biāo)記語(yǔ)言(XML)的打印模式框架的語(yǔ)法來(lái)表示的。就所使用的元素類型和用父和子元素表示的通用結(jié)構(gòu),PrintTicket模式嚴(yán)密地平行于打印模式框架。注意在PrintTicket中不允許ParameterDef元素,只在PrintTicket中允許ParameterInit元素。
      PrintTicket結(jié)構(gòu)清單這個(gè)部分說(shuō)明了PrintTicket客戶機(jī)的創(chuàng)建者是如何使用在打印模式框架中定義的元素類型來(lái)創(chuàng)建描述對(duì)設(shè)備的意向的PrintTicket。PrintTicket可以是通用的(不依賴于特定的設(shè)備),它或者可以是設(shè)備特定的。將更詳細(xì)地示出PrintTicket的語(yǔ)義。此外,這個(gè)部分包含了對(duì)概念和術(shù)語(yǔ)的概述,這在后續(xù)的部分中將作更深入的描述。
      有兩種根本不同的方法來(lái)構(gòu)造PrintTicket。可以使用任一種方法。
      通過(guò)創(chuàng)建通用PrintTicket,使PrintTicket以未知或通用的設(shè)備為目標(biāo)。如果主要目標(biāo)是保存最終用戶的意圖,可能希望通過(guò)文檔構(gòu)建和存儲(chǔ)未確認(rèn)的通用PrintTicket來(lái)采取這種方法。
      通過(guò)創(chuàng)建設(shè)備特定的PrintTicket,使PrintTicket以特定設(shè)備為目標(biāo)。如果對(duì)利用特定設(shè)備提供的所有特征更為感興趣,可能希望采用這種方法。
      如果設(shè)備的PrintCapabilities文檔不可用或者目標(biāo)設(shè)備未知,應(yīng)該構(gòu)建通用PrintTicket。因?yàn)闆]有一組特征或選項(xiàng)元素或參數(shù)的PrintCapabilities文檔,這些元素類型所支持的實(shí)例必須直接從打印模式關(guān)鍵字獲得。
      當(dāng)創(chuàng)建通用PrintTicket時(shí),應(yīng)該使用以下列表所示的步驟。
      1.創(chuàng)建空的可擴(kuò)展標(biāo)記語(yǔ)言(XML)文檔,含有PrintTicket根。將名稱空間前綴分配給打印模式名稱空間。指定模式版本。
      2.檢查打印模式關(guān)鍵字中的特征實(shí)例并確定希望在PrintTicket中定義這些中的哪幾個(gè)。將這些特征實(shí)例增加到PrintTicket中。當(dāng)轉(zhuǎn)移子特征時(shí),必須也轉(zhuǎn)移父特征,并保存PrintTicket中特征和子特征之間的父子關(guān)系。
      對(duì)于轉(zhuǎn)移的每個(gè)特征實(shí)例,確定哪些選項(xiàng)實(shí)例能應(yīng)用到PrintTicket。從選項(xiàng)實(shí)例的這個(gè)組中,轉(zhuǎn)移每個(gè)完整的選項(xiàng)實(shí)例,如同它在打印模式中所出現(xiàn)的,接著刪除任何存在的特性實(shí)例,可能的例外是那些對(duì)PrintTicket重要的特性實(shí)例。保存所有的ScoredProperty實(shí)例,確保保存了它們的位置;它們是選項(xiàng)定義的本質(zhì)部分。如果有任何的屬性實(shí)例是ScoredProperty實(shí)例的子實(shí)例,可以保存它們或刪除它們。
      3.也可以將屬性或特性實(shí)例增加到任一ScoredProperty中。只有在PrintTicket供應(yīng)商明確地支持屬性和屬性元素的使用時(shí),它們才是可應(yīng)用的。每個(gè)供應(yīng)商應(yīng)該說(shuō)明所有支持的屬性和特性實(shí)例的目的和用途。只有系統(tǒng)PrintTicket的供應(yīng)商才能夠定義或引入私有的屬性實(shí)例。私有PrintTicket供應(yīng)商可以支持系統(tǒng)定義的屬性實(shí)例,但是不允許引入屬性實(shí)例。因?yàn)椴恢滥膫€(gè)供應(yīng)商會(huì)處理該P(yáng)rintTicket,可能希望只增加系統(tǒng)PrintTicket供應(yīng)商明確支持的屬性和特性實(shí)例。
      4.如果對(duì)于特定的特征,打印模式關(guān)鍵字將SelectionType特性設(shè)置成PickMany,那么可以為該特征選擇多于一個(gè)選項(xiàng),只要被指定為IdentityOption的選項(xiàng)不是所選中的那些選項(xiàng)之一。打印模式中的IdentityOption與PostSciptPPD文件和Unidrv GPD文件中的無(wú)(None)選項(xiàng)具有相同的效果;它用作no-op。
      5.檢查打印模式關(guān)鍵字以便獲取應(yīng)該在PrintTicket中初始化的ParameterDef實(shí)例。對(duì)于每個(gè)這樣的ParameterDef實(shí)例,選擇要在PrintTicket的ParameterInit實(shí)例中使用的值。這個(gè)值必須具有正確的數(shù)據(jù)類型、必須落入PetermeterDef實(shí)例定義的范圍中,并且必須符合ParameterDef實(shí)例中指定的所有其他要求。使用ParameterInit實(shí)例將參數(shù)初始化為選定的值。
      如果開發(fā)用戶界面(UI)組件,設(shè)計(jì)PrintTicket生成方法使得用戶可以為ParameterInit元素輸入值。此外,UI輸入方法應(yīng)該遵守由相關(guān)聯(lián)的ParameterDef元素指定的任一輸入限制。
      6.檢查出現(xiàn)在PrintTicket中的每個(gè)選項(xiàng)實(shí)例的內(nèi)容以便獲取ParameterRef的出現(xiàn)。如果相應(yīng)的ParameterInit實(shí)例沒有在PrintTicket中出現(xiàn)過(guò),就按照先前的步驟在PrintTicket中創(chuàng)建ParameterInit實(shí)例。這個(gè)ParameterInit實(shí)例的目的在于初始化ParameterRef實(shí)例參考的參數(shù)。
      7.記住處理作業(yè)的設(shè)備可能不支持在PrintTicket中指定的每個(gè)特征。也記住可能支持指定的特征,但是該特征的指定選項(xiàng)可能不被支持。相同的警告應(yīng)用于參數(shù)。即使設(shè)備支持指定的參數(shù),在ParameterInit實(shí)例中指定的值可能不在設(shè)備的有效范圍內(nèi)。
      8.檢查打印模式關(guān)鍵字以便獲取必須在PrintTicket中出現(xiàn)的特性實(shí)例。為這些中的每一個(gè)增加特性實(shí)例到PrintTicket中,并且使用值元素類型為它提供適當(dāng)?shù)闹?。確保特性實(shí)例在PrintTicket中被適當(dāng)?shù)囟ㄎ?。確保參考PrintTicket模式而非PrintCapabilities模式。
      9.檢查PrintTicket模式中定義的可選特性實(shí)例。如果在PrintTicket中應(yīng)該存在任何這樣的特性實(shí)例,在PrintTicket創(chuàng)建它們。
      設(shè)備特定PrintTicket目標(biāo)是特定的設(shè)備,因此不能在多個(gè)設(shè)備之間通用地移植。
      當(dāng)創(chuàng)建設(shè)備特定PrintTicket時(shí),應(yīng)該使用以下列表中所示步驟。
      1.獲取只包含設(shè)備的相關(guān)特征實(shí)例的PrintCapabilities文檔。請(qǐng)求默認(rèn)的PrintCapabilities文檔。這不要求指定一輸入PrintTicket,因?yàn)橛糜跇?gòu)建PrintTicket的設(shè)備屬性(特征與選項(xiàng)實(shí)例和參數(shù))獨(dú)立于配置。
      2.創(chuàng)建空的可擴(kuò)展標(biāo)記語(yǔ)言(XML)文檔,含有PrintTicket根。將名稱空間前綴分配給打印模式名稱空間,并為PrintTicket將使用的所有其他名稱空間分配前綴。指定PrintTicket模式的版本。
      3.可以為在PrintCapabilities文檔中報(bào)告的每個(gè)特征和ParameterDef實(shí)例或者只是那些感興趣的實(shí)例在PrintTicket中定義設(shè)置。如果部分PrintTicket被提供給PrintTicket界面,那么在PrintTicket確認(rèn)過(guò)程中會(huì)自動(dòng)為省略的特征和ParameterDef實(shí)例提供默認(rèn)值。
      4.檢查PrintCapabilities文件以便獲取特征實(shí)例,并確定希望在PrintTicket中定義這些中的哪幾個(gè)。將這些特征實(shí)例增加到PrintTicket中,但是并不將這些特征實(shí)例的內(nèi)容轉(zhuǎn)移到PrintTicket中。當(dāng)轉(zhuǎn)移子特征時(shí),必須也轉(zhuǎn)移父特征,并在PrintTicket中保存特征和子特征之間的父子關(guān)系。
      對(duì)于轉(zhuǎn)移的每個(gè)特征實(shí)例,確定哪些選項(xiàng)實(shí)例能應(yīng)用到PrintTicket。轉(zhuǎn)移完整的選項(xiàng),如在PrintCapabilities文檔中定義的,接著刪除任何出現(xiàn)的特性實(shí)例。在PrintCapabilities文檔中使用特性實(shí)例,但是它們?cè)赑rintTicket中沒有用處。保存所有的ScoredProperty實(shí)例,確保保存了它們的位置;它們是選項(xiàng)定義的本質(zhì)部分。如果有任何的屬性實(shí)例是ScoredProperty實(shí)例的子實(shí)例,可以保存它們或刪除它們。
      5.也可以將屬性或特性實(shí)例增加到任一ScoredProperty實(shí)例中。只有在PrintTicket供應(yīng)商明確地支持屬性和特性實(shí)例的使用時(shí),它們才是可應(yīng)用的。每個(gè)供應(yīng)商應(yīng)該說(shuō)明所有支持的屬性和特性實(shí)例的目的和用途。只有系統(tǒng)PrintTicket的供應(yīng)商才能夠定義或引入屬性實(shí)例。私有PrintTicket供應(yīng)商可以支持系統(tǒng)定義的屬性實(shí)例,但是不允許引入屬性實(shí)例。注意在確認(rèn)期間,刪除包含在選項(xiàng)實(shí)例中的任一特性實(shí)例,除非目標(biāo)PrintCapabilities或PrintTicket供應(yīng)商認(rèn)可該特性的名稱空間,并且在PrintCapabilities文檔中發(fā)現(xiàn)候選選項(xiàng),其ScoredProperty實(shí)例與在參考選項(xiàng)中定義的那些完全匹配。
      6.如果對(duì)于特定的特征,打印模式關(guān)鍵字將SelectionType特性設(shè)置成PickMany,那么可以為該特征選擇多于一個(gè)選項(xiàng),只要被指定為IdentityOption的選項(xiàng)不是所選中的那些選項(xiàng)之一。打印模式中的IdentityOption與PostsciptPPD文件和Unidrv GPD文件中的無(wú)(None)選項(xiàng)具有相同的效果;它用作no-op。
      7.檢查PrintCapabilities文檔以便獲取應(yīng)該在PrintTicket中設(shè)置的ParameterDef實(shí)例。對(duì)于每個(gè)這樣的ParameterDef實(shí)例,選擇要在PrintTicket的ParameterInit實(shí)例中使用的值。這個(gè)值必須具有正確的數(shù)據(jù)類型、必須落入PetermeterDef實(shí)例定義的范圍中,并且必須符合ParameterDef實(shí)例中指定的所有其他要求。使用ParameterInit實(shí)例將參數(shù)初始化為選定的值。
      8.檢查出現(xiàn)在PrintTicket中的每個(gè)選項(xiàng)實(shí)例的內(nèi)容以便獲取ParameterRef的出現(xiàn)。如果相應(yīng)的ParameterInit實(shí)例沒有在PrintTicket中出現(xiàn)過(guò),就按照先前的步驟在PrintTicket中創(chuàng)建ParameterInit實(shí)例。這個(gè)ParameterInit實(shí)例的目的在于初始化ParameterRef實(shí)例參考的參數(shù)。
      9.記住約束沖突可能會(huì)阻止設(shè)備應(yīng)用在PrintTicket中指定的配置。如果需要,確認(rèn)過(guò)程將在PrintTicket中定義的配置修改成免于沖突的。
      10.檢查打印模式關(guān)鍵字以便獲取必須在PrintTicket中出現(xiàn)的特性實(shí)例。將所需的每個(gè)特性實(shí)例增加到PrintTicket中,并且使用值元素類型為它提供適當(dāng)?shù)闹?。確保特性實(shí)例在PrintTicket中被適當(dāng)?shù)囟ㄎ弧?br> 11.檢查PrintTicket模式中的可選特性實(shí)例。如果在PrintTicket中應(yīng)該存在任何這樣的特性實(shí)例,在PrintTicket創(chuàng)建它們。
      12.可以將私有定義的特性實(shí)例增加在根層次處,或者增加到任一特征、選項(xiàng)或特性實(shí)例中。然而注意,在確認(rèn)期間這些私有定義的特性實(shí)例時(shí)被刪除,除非目標(biāo)PrintCapabilities或PrintTicket供應(yīng)商認(rèn)可它們所屬的名稱空間。此外,在確認(rèn)期間出現(xiàn)在選項(xiàng)實(shí)例中任何位置的特性實(shí)例被刪除,除非PrintCapabilities文檔包含完全匹配的選項(xiàng)。如果一個(gè)選項(xiàng)實(shí)例中的每個(gè)ScoredProperty具有在另一個(gè)中相應(yīng)的ScoredProperty,且ScoredProperty實(shí)例的值是相同的,那么兩個(gè)選項(xiàng)實(shí)例是完全匹配的。參考PrintTicket供應(yīng)商的私有模式以便獲取所認(rèn)可的私有特性實(shí)例以及它們用途的列表。
      PrintTicket確認(rèn)清單無(wú)論如何PrintTicket供應(yīng)商必須在使用PrintTicket之前確認(rèn)它。在確認(rèn)PrintTicket之后,可以將它返回給客戶機(jī),或者可以在使用后將它丟棄。這個(gè)清單包含在確認(rèn)過(guò)程中供應(yīng)商必須執(zhí)行的任務(wù)。確認(rèn)過(guò)程會(huì)經(jīng)常改變PrintTicket的內(nèi)容,雖然它不會(huì)改變先前確認(rèn)過(guò)的PrintTicket。
      確認(rèn)總是針對(duì)特定的設(shè)備執(zhí)行,所述設(shè)備具有在PrintCapabilities文檔中定義的一組特征、選項(xiàng)和ParameterDef實(shí)例。確認(rèn)代碼應(yīng)該可以訪問(wèn)特定設(shè)備的特征實(shí)例(以及所包含的選項(xiàng)實(shí)例)和ParameterDef實(shí)例的組合,并且無(wú)需訪問(wèn)PrintCapabilities。在確認(rèn)過(guò)程的某些部分中需要來(lái)自特征、選項(xiàng)和ParameterDef實(shí)例的信息。
      1.在試圖定位相應(yīng)或匹配元素過(guò)程中,注意在合格名稱被認(rèn)為匹配之前元素的名稱空間必須匹配。所有的元素名稱、屬性名稱以及實(shí)例名稱是符合名稱空間限定的。對(duì)于嵌套的元素,在元素被認(rèn)為匹配之前它們的位置必須匹配。
      2.驗(yàn)證所有的元素標(biāo)記在公共名稱空間中,是由PrintTicket模式所定義的,包含適當(dāng)?shù)目蓴U(kuò)展標(biāo)記語(yǔ)言(XML)屬性和屬性值,并且每個(gè)元素類型的位置符合PrintTicket模式定義的用法。
      3.確定PrintCapabilities文檔報(bào)告的所有名稱空間。從PrintTicket刪除其實(shí)例名稱屬于PrintCapabilities文檔未報(bào)告的名稱空間的所有元素(以及它們的子孫)。注意這種情況和以下情況之間的不同,在以下情況中涉及已知名稱空間中未認(rèn)可的實(shí)例名稱。
      4.由于通過(guò)添加新元素實(shí)例定義來(lái)不斷地?cái)U(kuò)展模式,不應(yīng)該在給定名稱空間中的每個(gè)實(shí)例名稱都是已知的假設(shè)下寫出確認(rèn)代碼。該確認(rèn)代碼不能將已知名稱空間中未認(rèn)可的實(shí)例名稱當(dāng)作錯(cuò)誤,它也不能將它們從PrintTicket中刪除。
      5.如果任何元素實(shí)例含有重復(fù)的兄弟,這是PrintTicket模式不允許的,僅保持第一出現(xiàn)的,并刪除重復(fù)的,包括重復(fù)元素的內(nèi)容。
      6.從PrintTicket刪除在PrintCapabilities文檔中沒有相應(yīng)特征的任何特征和子特征(以及其所有子特征)。
      7.檢查在PrintCapabilities文檔中定義的SelectionType特性以便獲取PrintTicket中每個(gè)剩余的特征實(shí)例。其SelectionType特性被設(shè)置為PickOne的任一特征必須正好具有在PrintTicket中出現(xiàn)的一個(gè)選項(xiàng)實(shí)例,而其SelectionType特性是PickMany的特征可以具有多于一個(gè)選項(xiàng)實(shí)例。如果PrintTicketFeature不具有選項(xiàng)實(shí)例,提供默認(rèn)的選項(xiàng)實(shí)例。作為提供者應(yīng)該知道每個(gè)特征的默認(rèn)選項(xiàng)。
      對(duì)于其SelectionType特性是PickMany的特征,具有在PrintTicket中選出的多于一個(gè)選項(xiàng),驗(yàn)證沒有選項(xiàng)被指定為IdentityOption。如果有,刪除所有其他的選項(xiàng),僅留下這個(gè)指定的IdentityOption。
      8.刪除PrintTicket中在PrintCapabilities文檔中沒有對(duì)應(yīng)ParameterDef實(shí)例的任一ParameterInit實(shí)例。
      對(duì)于PrintTicket中的任何其它ParameterLnit實(shí)例,驗(yàn)證每一個(gè)的值符合PrintCapabilities文檔的ParameterDef實(shí)例。如果缺少值,則提供在ParameterDef中提供的默認(rèn)值。
      9.基于評(píng)價(jià)算法的結(jié)果,將PrintTicket中的每個(gè)選項(xiàng)實(shí)例和PrintCapabilities文檔中相應(yīng)特征中列出的選項(xiàng)配對(duì)。評(píng)價(jià)是找到PrintCapabilities文檔中與PrintTicket中命名的選項(xiàng)最佳匹配選項(xiàng)的過(guò)程。對(duì)評(píng)價(jià)過(guò)程中要考慮的問(wèn)題的描述,參見選項(xiàng)定義。使用相應(yīng)的最佳匹配候選PrintCapabilities文檔選項(xiàng)替換PrintTicket中每個(gè)參考選項(xiàng)。在約束沖突阻止使用最佳匹配候選者的情況下,也可以通過(guò)評(píng)價(jià)來(lái)對(duì)所有的候選者排序,并將這個(gè)信息傳遞給解決階段。在這種情況下,解決算法可以使用第二最佳候選者而非隨意地選擇另一個(gè)候選者。
      10.對(duì)于其SelectionType特性被設(shè)置成PickMany的特征,且在PrintTicket中選擇了多于一個(gè)選項(xiàng),驗(yàn)證沒有選項(xiàng)被指定為IdentityOption。如果存在這樣的選項(xiàng),刪除所有其他的選項(xiàng),僅留下這個(gè)指定的IdentityOption。這個(gè)步驟必須在應(yīng)用評(píng)價(jià)算法之前和之后執(zhí)行。
      這個(gè)步驟必須執(zhí)行兩次的原因是評(píng)價(jià)過(guò)程可能將多個(gè)參考選項(xiàng)實(shí)例映射到相同的候選選項(xiàng)。如果這樣,刪除任一重復(fù)的選項(xiàng)實(shí)例使得為特定PickMany特征所列的選項(xiàng)是唯一的。
      11.將出現(xiàn)在PrintCapabilities文檔中而沒有出現(xiàn)在PrintTicket中的任一特征增加到PrintTicket中。對(duì)于這樣的特征,將默認(rèn)選項(xiàng)指定為所選選項(xiàng)。
      12.確定是否有任何ParameterDef實(shí)例符合以下的所有標(biāo)準(zhǔn)ParameterDef實(shí)例出現(xiàn)在PrintCapabilities文檔中,而沒有出現(xiàn)在PrintTicket中。
      ParameterDef實(shí)例的強(qiáng)制特性被設(shè)置成無(wú)條件或有條件的。
      在選項(xiàng)實(shí)例中ParameterDef實(shí)例被PrintTicket中的ParameterRef實(shí)例參考。
      對(duì)于PrintCapabilities文檔中每個(gè)這樣的ParameterDef實(shí)例,將相應(yīng)的ParameterInit實(shí)例增加到PrintTicket中。將新增加的ParameterInit實(shí)例的值設(shè)置成相應(yīng)的ParameterDef實(shí)例指定的默認(rèn)值。
      13.執(zhí)行約束沖突檢測(cè)并修改配置以消除任何這樣的沖突。這個(gè)主題不能定義要使用的特定算法以解決約束沖突。需要確定可以改變哪個(gè)特循或ParameterInit實(shí)例,以及要分別選擇哪個(gè)適當(dāng)?shù)倪x項(xiàng)或值使得對(duì)PrintTicket中指定的配置的整個(gè)意向具有最小的影響。如先前所述,可能希望使用每個(gè)選項(xiàng)的映射評(píng)分,并使用具有第二高的評(píng)分的選項(xiàng)。為了確定要改變哪個(gè)特征或ParameterInit,可能希望定義客戶機(jī)可以增加到PrintTicket中的私有特性。這個(gè)特性可以為特征和ParameterInit實(shí)例定義優(yōu)先級(jí)使得可以通知求解算法哪個(gè)特征或ParameterInit實(shí)例對(duì)客戶機(jī)是重要的(并且必須保存在PrintTicket中),哪些的重要性較低。
      14.如果約束解決過(guò)程對(duì)任何其強(qiáng)制特性被設(shè)置成有條件的ParameterRef實(shí)例造成了PrintTicket中的改變,那么對(duì)那些現(xiàn)在出現(xiàn)的使用默認(rèn)值增加ParameterInit實(shí)例,對(duì)于不再出現(xiàn)的ParameterRef實(shí)例刪除任何ParameterInit實(shí)例。
      15.刪除出現(xiàn)在PrintTicket的選項(xiàng)實(shí)例中所有特性實(shí)例和它們的內(nèi)容。屬性元素在PrintTicket中不起作用。如果特定特征經(jīng)確認(rèn)的選項(xiàng)完全匹配先前確認(rèn)的選項(xiàng),就將所有該選項(xiàng)中的特性和屬性實(shí)例從預(yù)先確認(rèn)的PrintTicket轉(zhuǎn)移到現(xiàn)在確認(rèn)的PrintTicket,服從特性實(shí)例的名稱空間是在PrintCapabilities文件中注冊(cè)的條件。注意對(duì)于要考慮的兩個(gè)選項(xiàng)實(shí)例的完全匹配,對(duì)于一個(gè)選項(xiàng)中的找到的每個(gè)ScoredProperty,在另一個(gè)選項(xiàng)中必須有對(duì)應(yīng)的ScoredProperty,且兩個(gè)ScoredProperty實(shí)例的值必須相同。
      16.如果PrintTicket供應(yīng)商認(rèn)可和支持到此時(shí)繼續(xù)存在的任何私有或公共特性實(shí)例,對(duì)它們執(zhí)行確認(rèn)。此時(shí)不要只因?yàn)椴徽J(rèn)識(shí)一特性就將其刪除一它可以用于文檔處理的另一個(gè)階段。
      PrintTicket供應(yīng)商的其他考慮PrintTicket供應(yīng)商界面具有可以用于對(duì)現(xiàn)有PrintTicket作出增量改變的方法。增量PrintTicket改變可以在被稱為PrintTicket增量的部分PrintTicket中指定。通過(guò)將PrintTicket增量并入現(xiàn)有PrintTicket來(lái)創(chuàng)建修訂的PrintTicket。有關(guān)涉及PrintTicket增量的方法的更多信息,參見即將來(lái)臨的PrintTicket供應(yīng)商界面文檔。
      當(dāng)處理PrintTicket增量時(shí),必須執(zhí)行以下步驟。
      1.標(biāo)識(shí)出對(duì)現(xiàn)有PrintTicket(目標(biāo)PrintTicket)和PrintTicket增量共同的特征或ParameterInit實(shí)例。
      對(duì)目標(biāo)PrintTicket和PrintTicket增量共同的每個(gè)特征,使用PrintTicket增量中的相應(yīng)特征替換目標(biāo)PrintTicket中的特征。
      對(duì)目標(biāo)PrintTicket和PrintTicket增量共同的每個(gè)ParameterInit,使用PrintTicket增量中的相應(yīng)ParameterInit替換目標(biāo)PrintTicket中的ParameterInit。
      2.將PrintTicket增量中所有剩余的特征和ParameterInit實(shí)例拷貝到目標(biāo)PrintTicket中。
      3.如果沖突解決算法允許在PrintTicket本身內(nèi)指定優(yōu)先級(jí),可以選擇提高在PrintTicket增量中命名的特征和ParameterInit實(shí)例的優(yōu)先級(jí)。
      4.如PrintTicket驗(yàn)證清單所述執(zhí)行PrintTicket驗(yàn)證。
      PrintTicket供應(yīng)商界面包含返回默認(rèn)PrintTicket的一個(gè)方法。此外,PrintCapabilities供應(yīng)商界面具有返回默認(rèn)PrintCapabilities文檔的方法;即通過(guò)使用由默認(rèn)PrintTicket創(chuàng)建的PrintCapabilities的快照。這種默認(rèn)的PrintTicket必須通過(guò)以下過(guò)程自動(dòng)生成。
      在驗(yàn)證PrintTicket之后,它可以被用于創(chuàng)建PrintCapabilities的快照。對(duì)于其值依賴于設(shè)備配置的任何特性,供應(yīng)商必須有內(nèi)部表示。例如,如果SpotDiameter是依賴于分辨率和MediaType特征的特性,那么可以在下表中示出SpotDiameter關(guān)于各種分辨率和MediaType的值的內(nèi)部表示。

      對(duì)于這個(gè)例子,PrintCapabilities供應(yīng)商必須使用所提供的PrintTicket來(lái)選擇來(lái)自內(nèi)部表格作為SpotDiameter特性的值的適當(dāng)條目并報(bào)告它。對(duì)每個(gè)多值特性(對(duì)于每個(gè)值取決于配置的特性)重復(fù)這個(gè)過(guò)程。PrintCapabilities模式和文件結(jié)構(gòu)部分描述涉及創(chuàng)建PrintCapabilities的快照的其他步驟。
      為了創(chuàng)建默認(rèn)PrintCapabilities文檔的快照,將默認(rèn)PrintTicket(而非任意PrintTicket)提供給創(chuàng)建PrintCapabilities文檔的方法。
      PrintTicket例子以下組成了PrintTicket的例子。默認(rèn)名稱空間不應(yīng)用于XML屬性。這些屬性必須是明確地前綴限定的。這個(gè)例子中的實(shí)例名稱僅為了說(shuō)明,雖然它們反映出在打印模式關(guān)鍵詞草稿文件中定義的當(dāng)前實(shí)例名稱。這個(gè)PrintTicket是特別為由PrintCapabilities文檔例子示出的假設(shè)設(shè)備構(gòu)建的。&lt;psf:PrintTicket Version=″1″xmIns:psf=″http://schemas.microsoft.com/windows/2003/08/ptinting/printschemaframework″xmlns:psk=″http://schemas.microsoft.com/windows/2003/08/printing/printschemakeywords″xmlns:xsi=″http://www.w3.org/2001/XMLSchema-instance″xmlns:xs=″http://www.w3.org/2001/XMLSchema″xmlns:ns1=″http://www.privatenamespace1.com″xmlns:ns2=″http://www.privatenamespace2.com″&gt;&lt;!--告知特征的單一選項(xiàng)的描述--&gt;&lt;psf:Feature name=″psk:MediaSize″&gt;
      &lt;!--包含ParameterRef實(shí)例的選項(xiàng)定義--&gt;
      &lt;psf:Option name=″CustomMediaSize″&gt;
      &lt;psf:ScoredProperty name=″psk:MediaSizeX″&gt;
      &lt;psf:ParameterRef name=″PageMediaSizeMediaSizeX″/&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;psf:ScoredProperty name=″psk:MediaSizeY″&gt;
      &lt;psf:ParameterRef name=″PageMediaSizeMediaSizeY″/&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;psf:Property name=″psk:FeedOrientation″&gt;
      &lt;psf:Value xsi:type=″xs:string″&gt;LongEdgeFirst&lt;/psf:Value&gt;
      &lt;/psf:Property&gt;
      &lt;/psf:Option&gt;&lt;/psf:Feature&gt;&lt;!--包含選項(xiàng)實(shí)列和子特征的特征的描述.--&gt;&lt;psf:Feature name=″psk:DocumentNUp″&gt;
      &lt;!--指定每介質(zhì)頁(yè)1頁(yè)--&gt;
      &lt;psf:Option&gt;
      &lt;psf:ScoredProperty name=″psk:PagesPerSheet″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;1&lt;/psf:Value&gt;
      &lt;/psf:ScoredProperty&gt;
      &lt;/psf:Option&gt;
      &lt;psf:Feature name=″psk:PresentationDirection″&gt;
      &lt;!--指定左至右、上至下.--&gt;
      &lt;psf:Option name=″psk:RightBottom″″/&gt;
      &lt;/psf:Feature&gt;
      &lt;psf:Feature name=″ns2:DeviceSpecificFeature3″&gt;
      &lt;!--私有定義的特征的所有選項(xiàng)必須是私有的--&gt;
      &lt;psf:Option name=″ns2:Off″/&gt;
      &lt;/psf:Feature&gt;&lt;/psf:Feature&gt;&lt;!--所有強(qiáng)制參數(shù)的ParameterInit實(shí)例和從MediaSize的特征的CustomMediaSize選項(xiàng)引用的ParameterInit實(shí)例--&gt;&lt;!--指定MediaSizeX ScoredProperty的值.--&gt;&lt;psf:ParameterInit name=″psk:PageMediaSizeMediaSizeX″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;10000&lt;/psf:Value&gt;&lt;/psf:ParameterInit&gt;&lt;!--指定MediaSizeY ScoredProperty的值.--&gt;&lt;psf:ParameterInit name=″psk:PageMediaSizeMediaSizeY″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;10000&lt;/psf:Value&gt;&lt;/pst:ParameterInit&gt;&lt;!--指定頁(yè)的拷貝數(shù).--&gt;&lt;psf:ParameterInit name=″psk:PageCopyCount″&gt;
      &lt;psf:Value xsi:type=″xs:integer″&gt;1&lt;/psf:Value&gt;&lt;/psf:ParameterInit&gt;&lt;/psf:PrintTicket&gt;
      示例性計(jì)算機(jī)系統(tǒng)圖1示出了用于實(shí)現(xiàn)上述過(guò)程的示例性計(jì)算設(shè)備。計(jì)算設(shè)備142包括一個(gè)或多個(gè)處理器或處理單元144、系統(tǒng)存儲(chǔ)器146以及將包括系統(tǒng)存儲(chǔ)器146的各類系統(tǒng)組件耦合至處理器144的總線148。總線148表示幾種類型的總線結(jié)構(gòu)中的任意一種或多種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線以及使用各類總線體系結(jié)構(gòu)的局部總線。系統(tǒng)存儲(chǔ)器146包括只讀存儲(chǔ)器(ROM)150和隨機(jī)存取存儲(chǔ)器(RAM)152。基本輸入/輸出系統(tǒng)(BIOS)154,包含如在啟動(dòng)時(shí)協(xié)助在計(jì)算設(shè)備142內(nèi)的元件之間傳輸信息的基本例程,可儲(chǔ)存在ROM 150中。
      計(jì)算設(shè)備142也可包括用于對(duì)硬盤(未示出)進(jìn)行讀寫的硬盤驅(qū)動(dòng)器156、用于對(duì)可移動(dòng)磁盤160進(jìn)行讀寫的磁盤驅(qū)動(dòng)器158以及用于對(duì)可移動(dòng)光盤164,如CD-ROM或其它光介質(zhì)進(jìn)行讀寫的光盤驅(qū)動(dòng)器162。磁硬盤驅(qū)動(dòng)器156、磁盤驅(qū)動(dòng)器158以及光盤驅(qū)動(dòng)器162通過(guò)SCSI接口166或某些其他合適的接口連接至系統(tǒng)總線148。驅(qū)動(dòng)器及其相關(guān)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)142提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲(chǔ)。盡管這里描述的示例環(huán)境采用了硬盤、可移動(dòng)磁盤160以及可移動(dòng)光盤164,然而本領(lǐng)域的技術(shù)人員應(yīng)該理解也可以在示例性操作環(huán)境中使用用于儲(chǔ)存計(jì)算機(jī)可訪問(wèn)的數(shù)據(jù)的其它類型的計(jì)算機(jī)可讀介質(zhì),包括盒式磁帶、閃存卡、數(shù)字視頻盤、隨即存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)等。
      多個(gè)程序模塊可儲(chǔ)存在硬盤156、磁盤160、光盤164、ROM 150或RAM 152中,包括操作系統(tǒng)170、一個(gè)或多個(gè)應(yīng)用程序172(諸如用戶代理或?yàn)g覽器)、其它程序模塊174以及程序數(shù)據(jù)176。用戶可以通過(guò)鍵盤178和指點(diǎn)設(shè)備180等輸入設(shè)備將命令和信息輸入到計(jì)算機(jī)142中。其他輸入設(shè)備(未示出)可以包括麥克風(fēng)、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備可以通過(guò)耦合至總線148的接口182連接到處理單元144。監(jiān)視器184或其它類型的顯示設(shè)備也通過(guò)諸如視頻適配卡186等接口連接到總線148。除了監(jiān)視器外,個(gè)人計(jì)算機(jī)一般包括諸如揚(yáng)聲器和打印機(jī)等其他外圍輸出設(shè)備(未示出)。
      計(jì)算機(jī)142通常在使用一或多個(gè)遠(yuǎn)程計(jì)算機(jī)如遠(yuǎn)程計(jì)算機(jī)188的邏輯連接的網(wǎng)絡(luò)區(qū)環(huán)境中運(yùn)行。遠(yuǎn)程計(jì)算機(jī)188可以是另一個(gè)個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC。對(duì)等設(shè)備或其它普通網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括許多或全部相對(duì)于計(jì)算機(jī)142描述的元素。圖1所示的邏輯連接包括局域網(wǎng)絡(luò)(LAN)192。這樣的網(wǎng)絡(luò)環(huán)境在辦公室企業(yè)級(jí)計(jì)算機(jī)網(wǎng)絡(luò)、企業(yè)內(nèi)部互聯(lián)網(wǎng)及因特網(wǎng)中是經(jīng)常見的當(dāng)用在LAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)142通過(guò)網(wǎng)絡(luò)接口或適配器194連接到局域網(wǎng)。當(dāng)用在WAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)142一般包括調(diào)制解調(diào)器196或具有其他用于在廣域網(wǎng)192諸如Internet上建立通信的方法,。調(diào)制解調(diào)器196,可以是內(nèi)置的或外置的,經(jīng)由串行端口接口168連接到系統(tǒng)總線148。在網(wǎng)絡(luò)環(huán)境中,關(guān)于個(gè)人計(jì)算機(jī)142或其部分描述的程序模塊可以存儲(chǔ)在遠(yuǎn)程存儲(chǔ)設(shè)備中。應(yīng)該理解所示的網(wǎng)絡(luò)連接是示例性的,可以使用在計(jì)算機(jī)之間建立通信鏈接的其他方法。
      通常,計(jì)算機(jī)142的數(shù)據(jù)處理器是使用在不同時(shí)候存儲(chǔ)在計(jì)算機(jī)的各種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的指令來(lái)編程的。程序或操作系統(tǒng)一般分布在例如軟件或CD-ROM上。它們從那里安裝或載入到計(jì)算機(jī)的輔助存儲(chǔ)器。在執(zhí)行時(shí)至少部分地將它們載入到計(jì)算機(jī)的主電子存儲(chǔ)器中。這里所描述的系統(tǒng)包括這些和其他各種類型的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(當(dāng)這些介質(zhì)包含用于結(jié)合微處理器或其他數(shù)據(jù)處理器執(zhí)行所述塊的指令或程序時(shí))。當(dāng)依照這里所述的方法和技術(shù)編程時(shí),所述系統(tǒng)也可以包括計(jì)算機(jī)自身。
      說(shuō)明起見,這里將程序和諸如操作系統(tǒng)等其他可執(zhí)行程序組件示為具體的塊,雖然我們知道這樣的程序和組件在各種時(shí)間駐留在計(jì)算機(jī)的不同存儲(chǔ)組件中并且由計(jì)算機(jī)的數(shù)據(jù)處理器來(lái)執(zhí)行。
      結(jié)論上述方法和系統(tǒng)可用于描述設(shè)備性能。示例性模式組成了應(yīng)用程序和設(shè)備之間的通信語(yǔ)言。在一個(gè)實(shí)施例中,該模式組成了應(yīng)用程序、打印子系統(tǒng)組件和設(shè)備之間的通信語(yǔ)言。該模式是構(gòu)建在使用模式關(guān)鍵字表示特定設(shè)備的用戶可配置性能的完整集合的框架上。在所示和所述實(shí)施例中,該模式利用分層結(jié)構(gòu),在表示設(shè)備性能中允許不同等級(jí)的粒度。這種表示的一個(gè)例子出現(xiàn)在于2004年05月03日存檔的、序列號(hào)為10/794669的美國(guó)專利申請(qǐng)中,該申請(qǐng)題為Multilevel Ticket-Based Job Management Architecture for Computing Devices。
      雖然用特定于結(jié)構(gòu)特征和/或方法步驟的語(yǔ)言描述了本發(fā)明,但是應(yīng)該理解在所附權(quán)利要求中定義的本發(fā)明無(wú)需受限于所述的特定特征或步驟。而是,這些特定特征和步驟是作為實(shí)現(xiàn)所作權(quán)利要求的發(fā)明的優(yōu)選形式來(lái)揭示的。
      權(quán)利要求
      1.一個(gè)或多個(gè)其上具有計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀介質(zhì),當(dāng)執(zhí)行所述指令時(shí),實(shí)現(xiàn)一種方法,包含接收來(lái)自客戶機(jī)的設(shè)備性能查詢;以及響應(yīng)于接收所述查詢,生成描述設(shè)備性能的分層結(jié)構(gòu)文檔,其中,所述性能包括可配置選項(xiàng),且其中,所述分層結(jié)構(gòu)文檔以層的分層結(jié)構(gòu)表示了所述性能。
      2.如權(quán)利要求1所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包括打印設(shè)備性能查詢。
      3.如權(quán)利要求1所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展。
      4.如權(quán)利要求1所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中,所述打印模式關(guān)鍵字定義描述設(shè)備配置和打印作業(yè)格式的特性、特征和選項(xiàng)元素的各個(gè)實(shí)例。
      5.如權(quán)利要求1所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中,所述打印模式包括屬性元素,指定打印模式元素的含義;屬性集元素,允許一個(gè)或多個(gè)屬性元素參考同一屬性元素集合;屬性集參考元素,允許屬性元素參考包含在屬性集中的一組屬性元素;特征元素,包含選項(xiàng)和特性元素的列表;選項(xiàng)元素,包含與一選項(xiàng)相關(guān)聯(lián)的特性和評(píng)價(jià)屬性元素;參數(shù)定義元素,定義參數(shù)化輸入的有效特征;參數(shù)參考元素,定義對(duì)參數(shù)初始元素的參考;打印性能元素,表示分層結(jié)構(gòu)文檔的根;屬性元素,聲明設(shè)備、作業(yè)格式或其他特性,其名稱由其名稱屬性給出;評(píng)價(jià)屬性元素,可以聲明對(duì)選項(xiàng)定義而言本質(zhì)的特性;以及值元素,將文字與類型相關(guān)聯(lián)。
      6.如權(quán)利要求1所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)中的一層包含打印作業(yè)層。
      7.如權(quán)利要求1所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)中的一層包含文檔層。
      8.如權(quán)利要求1所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)中的一層包含頁(yè)面層。
      9.如權(quán)利要求1所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)中的所述層包含打印作業(yè)層、文檔層和頁(yè)面層。
      10.如權(quán)利要求1所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)文檔描述作業(yè)格式和設(shè)備配置信息。
      11.一種包含如權(quán)利要求1的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的計(jì)算設(shè)備。
      12.一個(gè)或多個(gè)其上具有計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀介質(zhì),當(dāng)執(zhí)行所述指令時(shí),實(shí)現(xiàn)一種方法,包含生成設(shè)備性能查詢,以便確定設(shè)備的性能;以及響應(yīng)于將所述查詢發(fā)送給設(shè)備,接收描述設(shè)備性能的分層結(jié)構(gòu)文檔,其中,所述性能包括可配置選項(xiàng),且其中,所述分層結(jié)構(gòu)文檔以層的分層結(jié)構(gòu)表示了所述性能。
      13.如權(quán)利要求12所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包括打印設(shè)備性能查詢。
      14.如權(quán)利要求12所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展。
      15.如權(quán)利要求12所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中,所述打印模式關(guān)鍵字定義描述設(shè)備配置和打印作業(yè)格式的特性、特征和選項(xiàng)元素的各個(gè)實(shí)例。
      16.如權(quán)利要求12所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中所述打印模式包括屬性元素,指定打印模式元素的含義;屬性集元素,允許一個(gè)或多個(gè)屬性元素參考同一屬性元素集合;屬性集參考元素,允許屬性元素參考包含在屬性集中的一組屬性元素;特征元素,包含選項(xiàng)和特性元素的列表;選項(xiàng)元素,包含與一選項(xiàng)相關(guān)聯(lián)的特性和評(píng)價(jià)屬性元素;參數(shù)定義元素,定義參數(shù)化輸入的有效特征;參數(shù)參考元素,定義對(duì)參數(shù)初始元素的參考;打印性能元素,表示分層結(jié)構(gòu)文檔的根;屬性元素,聲明設(shè)備、作業(yè)格式或其他特性,其名稱由其名稱屬性給出;評(píng)價(jià)屬性元素,可以聲明對(duì)選項(xiàng)定義而言本質(zhì)的特性;以及值元素,將文字與類型相關(guān)聯(lián)。
      17.如權(quán)利要求12所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)中的一層包含打印作業(yè)層。
      18.如權(quán)利要求12所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)中的一層包含文檔層。
      19.如權(quán)利要求12所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)中的一層包含頁(yè)面層。
      20.如權(quán)利要求12所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)中的所述層包含打印作業(yè)層、文檔層和頁(yè)面層。
      21.如權(quán)利要求12所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)文檔描述作業(yè)格式和設(shè)備配置信息。
      22.一種包括如權(quán)利要求12的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的計(jì)算設(shè)備。
      23.一種方法,包含接收來(lái)自客戶機(jī)的設(shè)備性能查詢;以及響應(yīng)于接收所述查詢,生成描述設(shè)備性能的分層結(jié)構(gòu)文檔,其中,所述性能包括可配置選項(xiàng),且其中,所述分層結(jié)構(gòu)文檔以層的分層結(jié)構(gòu)表示了所述性能。
      24.如權(quán)利要求23所述方法,其特征在于,所述查詢可以包含所述性能所基于的PrintTicket配置。
      25.如權(quán)利要求23所述方法,其特征在于,所述設(shè)備性能查詢包括打印設(shè)備性能查詢。
      26.如權(quán)利要求23所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展。
      27.如權(quán)利要求23所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中,所述打印模式關(guān)鍵字定義描述設(shè)備配置和打印作業(yè)格式的特性、特征和選項(xiàng)元素的各個(gè)實(shí)例。
      28.如權(quán)利要求23所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中,所述打印模式包括屬性元素,指定打印模式元素的含義;屬性集元素,允許一個(gè)或多個(gè)屬性元素參考同一屬性元素集合;屬性集參考元素,允許屬性元素參考包含在屬性集中的一組屬性元素;特征元素,包含選項(xiàng)和特性元素的列表;選項(xiàng)元素,包含與一選項(xiàng)相關(guān)聯(lián)的特性和評(píng)價(jià)屬性元素;參數(shù)定義元素,定義參數(shù)化輸入的有效特征;參數(shù)參考元素,定義對(duì)參數(shù)初始元素的參考;打印性能元素,表示分層結(jié)構(gòu)文檔的根;屬性元素,聲明設(shè)備、作業(yè)格式或其他特性,其名稱由其名稱屬性給出;評(píng)價(jià)屬性元素,可以聲明對(duì)選項(xiàng)定義而言本質(zhì)的特性;以及值元素,將文字與類型相關(guān)聯(lián)。
      29.如權(quán)利要求23所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中所述分層結(jié)構(gòu)中的一層包含打印作業(yè)層。
      30.如權(quán)利要求23所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)中的一層包含文檔層。
      31.如權(quán)利要求23所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層結(jié)構(gòu)中的一層包含頁(yè)面層。
      32.如權(quán)利要求23所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,其中,所述分層機(jī)構(gòu)中的所述層包含打印作業(yè)層、文檔層和頁(yè)面層。
      33.如權(quán)利要求23所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔描述作業(yè)格式和設(shè)備配置信息。
      34.一種方法,包含生成設(shè)備性能查詢,以便確定設(shè)備的性能;以及響應(yīng)于將所述查詢發(fā)送給設(shè)備,接收描述設(shè)備性能的分層結(jié)構(gòu)文檔,其中,所述性能包括可配置選項(xiàng),且其中,所述分層結(jié)構(gòu)文檔以層的分層結(jié)構(gòu)表示了所述性能。
      35.如權(quán)利要求34所述方法,其特征在于,所述設(shè)備性能查詢包括打印設(shè)備性能查詢。
      36.如權(quán)利要求34所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展。
      37.如權(quán)利要求34所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中,所述打印模式關(guān)鍵字定義描述設(shè)備配置和打印作業(yè)格式的特性、特征和選項(xiàng)元素的各個(gè)實(shí)例。
      38.如權(quán)利要求34所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中,所述打印模式包括屬性元素,指定打印模式元素的含義;屬性集元素,允許一個(gè)或多個(gè)屬性元素參考同一屬性元素集合;屬性集參考元素,允許屬性元素參考包含在屬性集中的一組屬性元素;特征元素,包含選項(xiàng)和特性元素的列表;選項(xiàng)元素,包含與一選項(xiàng)相關(guān)聯(lián)的特性和評(píng)價(jià)屬性元素;參數(shù)定義元素,定義參數(shù)化輸入的有效特征;參數(shù)參考元素,定義對(duì)參數(shù)初始元素的參考;打印性能元素,表示分層結(jié)構(gòu)文檔的根;屬性元素,聲明設(shè)備、作業(yè)格式或其他特性,其名稱由其名稱屬性給出;評(píng)價(jià)屬性元素,可以聲明對(duì)選項(xiàng)定義而言本質(zhì)的特性;以及值元素,將文字與類型相關(guān)聯(lián)。
      39.如權(quán)利要求34所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中,所述分層結(jié)構(gòu)中的一層包含打印作業(yè)層。
      40.如權(quán)利要求34所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中,所述分層結(jié)構(gòu)中的一層包含文檔層。
      41.如權(quán)利要求34所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中,所述分層結(jié)構(gòu)中的一層包含頁(yè)面層。
      42.如權(quán)利要求34所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中,所述分層結(jié)構(gòu)中的所述層包含打印作業(yè)層、文檔層和頁(yè)面層。
      43.如權(quán)利要求34所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中,所述分層結(jié)構(gòu)文檔描述作業(yè)格式和設(shè)備配置信息。
      44.如權(quán)利要求34所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中所述分層結(jié)構(gòu)文檔描述作業(yè)格式和設(shè)備配置信息,并且所述方法還包括從所述分層結(jié)構(gòu)文檔導(dǎo)出設(shè)置。
      45.如權(quán)利要求34所述方法,其特征在于,所述設(shè)備性能查詢包含打印設(shè)備性能查詢,且其中,所述分層結(jié)構(gòu)文檔包含打印模式關(guān)鍵字且包含私有擴(kuò)展,且其中所述分層結(jié)構(gòu)文檔描述作業(yè)格式和設(shè)備配置信息,并且所述方法還包括確認(rèn)所述分層結(jié)構(gòu)文檔。
      全文摘要
      本發(fā)明描述了用于描述設(shè)備性能的方法和系統(tǒng)。提出了示例性的模式,該模式組成了應(yīng)用程和設(shè)備之間的通信語(yǔ)言。該模式是構(gòu)建在使用模式關(guān)鍵字表示特定設(shè)備的用戶可配置性能的完整集合的框架上。在所示和所述實(shí)施例中,該模式利用分層結(jié)構(gòu),在表示設(shè)備性能中允許不同等級(jí)的粒度。
      文檔編號(hào)G06F17/30GK1804835SQ20051012481
      公開日2006年7月19日 申請(qǐng)日期2005年11月18日 優(yōu)先權(quán)日2004年11月18日
      發(fā)明者B·J·庫(kù)恩, D·F·埃默森, 岳峰 申請(qǐng)人:微軟公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1