Freigeben über


Optionsdefinitionen

Dieses Thema ist nicht aktuell. Die aktuellsten Informationen finden Sie in der Druckschemaspezifikation.

Die wichtigste Überlegung beim Definieren einer Option besteht darin, dies so zu tun, dass sie sinnvoll mit anderen Option-Instanzen verglichen werden kann, die im selben Feature enthalten sind. Der Vergleich muss sinnvoll sein, da die Option instance verwendet wird, um die Konfiguration nicht nur des Geräts, sondern auch des Auftrags zu definieren, unabhängig vom Gerät oder printCapabilities, das zum Erstellen der Konfiguration verwendet wurde. Die anderen Option-Instanzen im Feature können entweder im selben PrintCapabilities-Dokument oder in einem anderen PrintCapabilities-Dokument angezeigt werden, das ein anderes Gerät darstellt, ein PrintCapabilities-Dokument, das von einer anderen Unabhängigen Partei definiert wird. Nachdem ein Client die Gerätekonfiguration ausgewählt hat, die zum Rendern eines Auftrags oder Dokuments verwendet werden soll, wird diese Konfiguration in der Regel zusammen mit dem Auftrag oder Dokument in Form eines PrintTickets gespeichert. Das PrintTicket enthält eine Reihe von Option-Instanzen, in der Regel eine für jedes im PrintCapabilities-Dokument definierte Feature. Optionsinstanzen müssen portabel sein und die Druckabsicht beibehalten, damit die Absicht kommuniziert werden kann, wenn dieses PrintTicket an ein anderes Gerät übergeben wird, auch wenn ein anderes PrintCapabilities-Dokument vorhanden ist, das von einem anderen Autor geschrieben wurde. Der Hauptvorteil dieser Portabilität besteht darin, dass der Gerätetreiber oder das Subsystem die Option identifizieren und auswählen kann, die in bezug auf die Funktionalität am nächsten ist, wenn ein anderes Gerät eine Option im PrintTicket nicht ausdrücklich unterstützt.

Eine der Standard PrintTicket-Funktionen des Treibers besteht darin, die Geräteoption im PrintCapabilities-Dokument zu identifizieren, die einer bestimmten Option im PrintTicket am ehesten entspricht. Während dieses Abgleichs- oder Gerätetreibers wird die Option im PrintTicket als Referenzoption bezeichnet, während die Option im PrintCapabilities-Dokument als Kandidatenoption bezeichnet wird. Die allgemeine übereinstimmende Metrik ist die Anzahl der übereinstimmenden ScoredProperty-Instanzen in den Candidate- und Verweisoptionsinstanzen. eine größere Anzahl von Übereinstimmungen weist in der Regel auf eine bessere Beibehaltung der Druckabsicht hin. In Ihrem Bewertungsprozess können Sie einige ScoredProperty-Elemente stärker gewichten als andere Elemente.

Sie können Option-Instanzen portierbar machen, indem Sie sicherstellen, dass alle Option-Instanzen, die zum gleichen Feature gehören, ein oder mehrere ScoredProperty-Elemente gemeinsam haben. Dies bedeutet, dass es eine Reihe von ScoredProperty-Elementen gibt, die in jeder Option instance angezeigt werden (die zum gleichen Feature gehören). Optionsinstanzen für das PageMediaSize-Feature können beispielsweise portierbar sein, wenn jede Option instance ScoredProperty-Elemente enthält, die die intrinsischen PageMediaSize-Eigenschaften definieren: MediaSizeWidth und MediaSizeHeight. Der Gerätetreiber- oder Subsystemcode kann dann bestimmen, wie eng zwei Option-Instanzen übereinstimmen, indem die Unterschiede in diesen ScoredProperty-Werten verglichen werden. Wenn im PrintCapabilities-Dokument keine Option vorhanden ist, die genau mit der im PrintTicket übereinstimmt, kann der Gerätetreiber einfach die Option mit den nächstgelegenen übereinstimmenden Mediendimensionen ermitteln und auswählen.

Zwei Objekte (in diesem Fall Option-Instanzen) sollen elemente gemeinsam oder gleichwertig über entsprechende Elemente verfügen, wenn die folgenden drei Bedingungen erfüllt sind.

  1. Die beiden Elemente haben denselben Elementtyp.

  2. Die Namensattribute der beiden Elemente sind identisch (oder kein Element enthält ein Name-Attribut).

  3. Die Kette der Eltern der zu vergleichenden Elemente bis hin zu den beiden betrachteten Objekten muss die Bedingungen 1 und 2 erfüllen.

Betrachten Sie beispielsweise eine Situation, in der es zwei Option-Instanzen gibt, in denen jede eine ScoredProperty-instance enthält und dass jede dieser ScoredProperty-Instanzen eine Eigenschaft instance enthält. Die erste Bedingung ist eindeutig erfüllt (die beiden Eigenschaftsinstanzen sind derselbe Typ), und ein Teil der dritten Bedingung ist erfüllt (die Eltern der Property-Instanzen sind der gleiche Typ, ScoredProperty, und die übergeordneten Elemente dieser Elemente sind die Option-Instanzen, die ebenfalls vom gleichen Typ sind). Wenn die Namensattribute der Property-Instanzen, der ScoredProperty-Instanzen und der Option-Instanzen entweder identisch sind oder nicht angegeben werden, haben die beiden Option-Instanzen Elemente gemeinsam.

Ausgehend davon besteht der erste Schritt beim Erstellen von Option-Instanzen darin, einen Satz von ScoredProperty-Elementen zu definieren, die in den meisten oder allen Option-Instanzen vorhanden sind. Wenn Ihr Gerätekonfigurationsattribut durch ein Standardfeature dargestellt werden kann (eines, das in den Print Schema Keywords aufgeführt ist), beachten Sie die ScoredProperty-Elemente gemeinsam in den Standardoptionsinstanzen. Sie sollten sicherstellen, dass alle neuen Option-Instanzen, die Sie einführen, auch diese ScoredProperty-Elemente enthalten. Sie können bei Bedarf zusätzliche ScoredProperty-Elemente hinzufügen, um Ihre Option-Instanzen von den Standardoptionsinstanzen zu unterscheiden. Sie können sogar eines oder mehrere der Gemeinsamen ScoredProperty-Elemente löschen, wenn es einen guten Grund gibt, obwohl dies die Portabilität einer solchen Option verringert. Portabilitätsüberlegungen empfehlen natürlich die Verwendung der nicht geänderten Standardoptionsinstanzen, es sei denn, es gibt einen intrinsischen Unterschied zwischen Ihrer Option und dem Standardoptions-instance, der sich im neuen Option-instance widerspiegeln muss.

Im folgenden Beispiel wird eine Situation veranschaulicht, für die Sie einem Option-instance ein ScoredProperty-Element hinzufügen möchten. Alle Standardoptioneninstanzen für das PageMediaSize-Feature haben die Elemente MediaSizeWidth und MediaSizeHeight ScoredProperty gemeinsam. Angenommen, Ihr Gerät kann eine der Standardmäßigen Letter-Mediengrößen unterstützen, indem das Papier entweder quer (LongEdgeFirst) oder längs (ShortEdgeFirst) zufüttert wird. Angenommen, Sie möchten kein neues Feedrichtungsfeature einführen, um diesen Freiheitsgrad verfügbar zu machen, können Sie stattdessen die beiden PageMediaSize-Option-Instanzen für Letter ändern, um die Ausrichtung des Papiereinzugs zu integrieren. Beginnen Sie für diese beiden Letter Option-Instanzen mit der Standardmäßigen PageMediaSize-Option instance, und fügen Sie ein neues ScoredProperty-Element hinzu, um die FeedDirection darzustellen. Legen Sie in einer option instance die FeedDirection ScoredProperty auf LongEdgeFirst fest. Legen Sie in der anderen Option instance FeedDirection auf ShortEdgeFirst fest. Beachten Sie, dass diese neuen Option-Instanzen ihre Portabilität beibehalten. Wenn die Option , die Brief darstellt, ShortEdgeFirst in einem PrintTicket gespeichert wird und ein anderes Gerät, das nur die Standardoption Brief unterstützt, ausgewählt ist, um den Auftrag zu rendern, kann der Optionsabgleichscode schnell feststellen, dass der Standardoptionsbrief die beste Übereinstimmung mit der Option Letter, ShortEdgeFirst, ist. Der Grund, warum dies die beste Übereinstimmung ist, besteht darin, dass alle ScoredProperty-Instanzen zustimmen, mit Ausnahme der FeedDirection ScoredProperty, die in der Option "Briefstandard" nicht vorhanden ist.

Möglicherweise treten auch Fälle auf, in denen die Änderungen an der Option die Bedeutung tatsächlich so stark ändern, dass die geänderte Option nicht mehr als spezialisierter Fall des Ursprünglichen betrachtet werden kann. In solchen Fällen sollten Sie den Namen der Option ändern, um den Unterschied zwischen der geänderten Option instance und der unveränderten Option widerzuspiegeln. Nur der Autor des PrintCapabilities-Dokuments für ein bestimmtes Gerät kann entscheiden, ob die vom Gerät angebotene Option ausreichend von einer Standardoption instance unterscheidet, um eine inkompatible Definition zu gewährleisten.

Betrachten Sie nun den Fall, in dem Ihr Gerät über ein Gerätekonfigurationsattribut verfügt, das keiner der Standardfeatureinstanzen entspricht. In diesem Fall können Sie sich nicht auf die Standardinstanzen von Option verlassen, um die Liste der ScoredProperty-Elemente gemeinsam bereitzustellen. Wenn Sie eine ScoredProperty-instance erstellen, besteht Ihr Standard Ziel darin, jede Option von den anderen Optionen im Feature zu unterscheiden und zu beschreiben, warum ein Benutzer eine Option gegenüber einer anderen option auswählen würde. Die Baseline besteht darin, jede Option mit einem eindeutigen Namen-Attribut zu charakterisieren, und das ScoredProperty-Attribut, das das name-Attribut enthält, wird zum Bestimmen gemeinsamer Elemente verwendet.

Nachdem eine Reihe von Gemeinsamen ScoredProperty-Elementen eingerichtet wurde, ist es einfach, jedem ScoredProperty die entsprechenden Werte zuzuweisen, um jede Option zu erstellen. Wie im vorherigen Beispiel müssen Sie für bestimmte Option-Instanzen möglicherweise zusätzliche ScoredProperty-Instanzen hinzufügen oder einige der gemeinsamen Elemente löschen, um eine geeignete Option instance zu erstellen.

Beachten Sie, dass das Druckschema erfordert, dass der Satz der ScoredProperty-Instanzen, deren Speicherorte und die werte, die jedem ScoredProperty in einer Option zugewiesen sind, unabhängig von der Konfiguration konstant bleiben müssen. Das gesamte Konzept des Druckschemas basiert auf Option-Instanzen mit festen, identifizierbaren Property- und ScoredProperty-Instanzen, die auf vielen Geräten gemeinsam genutzt werden.

Druckschemaspezifikation