Freigeben über


Optionsdefinitionen

Dieses Thema ist nicht aktuell. Die aktuellsten Informationen finden Sie in der Print Schema Specification.

Die wichtigste Überlegung bei der Definition 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-Instanz verwendet wird, um die Konfiguration nicht nur des Geräts, sondern des Auftrags zu definieren, unabhängig von dem Gerät oder PrintCapabilities, das zum Erstellen der Konfiguration verwendet wurde. Die anderen Option-Instanzen im Feature können entweder im gleichen PrintCapabilities-Dokument oder in einem anderen PrintCapabilities-Dokument angezeigt werden, das ein anderes Gerät darstellt, ein PrintCapabilities-Dokument, das von einer anderen Partei unabhängig definiert wird. Nachdem ein Client die Gerätekonfiguration zum Rendern eines Auftrags oder Dokuments ausgewählt hat, wird diese Konfiguration in der Regel zusammen mit dem Auftrag oder Dokument in Form eines PrintTicket gespeichert. Das PrintTicket enthält eine Reihe von Option-Instanzen, in der Regel eine für jedes Feature, das im PrintCapabilities-Dokument definiert ist. Optionsinstanzen müssen portierbar sein und die Druckabsicht beibehalten, damit die Absicht kommuniziert werden kann, wenn dieses PrintTicket einem anderen Gerät zugewiesen wird, auch wenn ein anderes PrintCapabilities-Dokument vorhanden ist, das von einem anderen Autor geschrieben wurde. Der Hauptvorteil dieser Portabilität besteht darin, dass, wenn ein anderes Gerät eine option, die im PrintTicket enthalten ist, nicht ausdrücklich unterstützt, der Gerätetreiber oder das Subsystem in der Lage ist, die Option zu identifizieren und auszuwählen, die am nächsten in der Funktionalität ist.

Eine der Wichtigsten PrintTicket-Funktionen des Treibers besteht darin, die Geräteoption im PrintCapabilities-Dokument zu identifizieren, die am ehesten mit einer bestimmten Option übereinstimmt, die im PrintTicket aufgeführt ist. Während dieses Abgleichs- oder Gerätetreibers, der den Bewertungsprozess definiert hat, wird die Option im PrintTicket als Referenz Option bezeichnet, während die Option im PrintCapabilities-Dokument als Kandidaten Option bezeichnet wird. Die allgemeine Übereinstimmungsmetrik ist die Anzahl der übereinstimmenden ScoredProperty-Instanzen in den Kandidaten- und Referenzoptionsinstanzen; Eine größere Anzahl von Übereinstimmungen zeigt in der Regel eine bessere Erhaltung der Druckabsicht an. In Ihrem Bewertungsprozess können Sie festlegen, dass einige ScoredProperty-Elemente stärker gewichten als für andere.

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

Zwei Objekte (Optionsinstanzen in diesem Fall) sollen Elemente in gemeinsamenoder gleichwertig haben, entsprechenden Elementehaben, wenn die folgenden drei Bedingungen erfüllt sind.

  1. Die beiden Elemente weisen denselben Elementtyp auf.

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

  3. Die Kette der übergeordneten Elemente, die verglichen werden, bis zu den beiden zu prüfenden Objekten, muss die Bedingungen 1 und 2 erfüllen.

Betrachten Sie beispielsweise eine Situation, in der zwei Option-Instanzen vorhanden sind, wobei jede eine ScoredProperty-Instanz enthält und dass jede dieser ScoredProperty-Instanzen eine Property-Instanz 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 übergeordneten Elemente der Eigenschaftsinstanzen sind derselbe Typ, ScoredProperty und die übergeordneten Elemente dieser Elemente sind die Option-Instanzen, die ebenfalls vom gleichen Typ sind). Wenn die Namensattribute der Eigenschafteninstanzen, der ScoredProperty-Instanzen und der Option-Instanzen entweder identisch oder nicht angegeben sind, verfügen die beiden Option-Instanzen über gemeinsame Elemente.

Aus dem vorstehenden Beispiel 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ätekonfigurations-Attribut durch ein Standardfeature dargestellt werden kann (eines, das in den Druckschemastichwörtern aufgeführt ist), notieren Sie sich die ScoredProperty-Elemente, die in den Standardoptionsinstanzen gemeinsam sind. Sie sollten sicherstellen, dass alle neuen Option-Instanzen, die Sie einführen, auch diese ScoredProperty-Elemente enthalten. Sie können bei Bedarf immer zusätzliche ScoredProperty-Elemente hinzufügen, um Ihre Option-Instanzen von den Standardoptionsinstanzen zu unterscheiden. Sie können sogar ein oder mehrere der ScoredProperty-Elemente häufig löschen, wenn es einen guten Grund gibt, obwohl dadurch die Portabilität einer solchen Option reduziert wird. Natürlich empfehlen Portabilitätsaspekte die Verwendung der nicht geänderten Standardoptionsinstanzen, es sei denn, es gibt einen systeminternen Unterschied zwischen Ihrer Option und der Standardoptionsinstanz, die in der neuen Option-Instanz widergespiegelt werden muss.

Im folgenden Beispiel wird eine Situation veranschaulicht, für die Sie einer Option-Instanz ein ScoredProperty-Element hinzufügen möchten. Alle Standardoptionsinstanzen für das PageMediaSize-Feature weisen die Elemente "MediaSizeWidth" und "MediaSizeHeight ScoredProperty" gemeinsam auf. Angenommen, Ihr Gerät kann eines der standardmäßigen Letter-Medienformate unterstützen, indem das Papier entweder transversely (LongEdgeFirst) oder längs (ShortEdgeFirst) zugestellt wird. Angenommen, Sie möchten kein neues Feedrichtungsfeature einführen, um diesen Freiheitsgrad verfügbar zu machen, können Sie stattdessen die beiden PageMediaSize-Optionsinstanzen für Letter ändern, um die Papiereinzugsausrichtung zu integrieren. Beginnen Sie für diese beiden Letter Option-Instanzen mit der standardmäßigen PageMediaSize Option-Instanz, und fügen Sie ein neues ScoredProperty-Element hinzu, das den FeedDirection darstellt. Legen Sie in einer Option-Instanz "FeedDirection ScoredProperty" auf "LongEdgeFirst" fest. legen Sie in der anderen Option-Instanz FeedDirection auf ShortEdgeFirst fest. Beachten Sie, dass diese neuen Option-Instanzen ihre Portabilität beibehalten. Wenn die Option "Letter" darstellt, wird ShortEdgeFirst in einem PrintTicket gespeichert und ein anderes Gerät, das nur die Briefstandardoption unterstützt, ausgewählt ist, um den Auftrag zu rendern, kann der Option-Matching-Code schnell ermitteln, dass der Standardoptionsbrief die beste Übereinstimmung mit dem Option Letter, ShortEdgeFirst, ist. Der Grund, warum dies die beste Übereinstimmung ist, besteht darin, dass alle ScoredProperty-Instanzen mit Ausnahme der FeedDirection ScoredProperty zustimmen, die nicht in der Briefstandardoption vorhanden ist.

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

Berücksichtigen Sie nun den Fall, in dem Ihr Gerät über ein Gerätekonfigurationsattribut verfügt, das keiner der standardmäßigen Featureinstanzen entspricht. In diesem Fall können Sie sich nicht auf die Standardoptionsinstanzen verlassen, um die Liste der gemeinsamen ScoredProperty-Elemente bereitzustellen. Wenn Sie eine ScoredProperty-Instanz erstellen, besteht Ihr Hauptziel darin, jede Option von den anderen im Feature zu unterscheiden und zu beschreiben, warum ein Benutzer eine Option über eine andere auswählen würde. Der Basisplan besteht darin, jede Option mit einem eindeutigen Namensattribute zu charakterisieren, und die ScoredProperty, die das Namensattribute enthält, wird zum einen, der für die Ermittlung gemeinsamer Elemente verwendet wird.

Nachdem eine Reihe von "ScoredProperty"-Elementen erstellt wurde, ist es einfach, jedem ScoredProperty geeignete 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 entsprechende Option-Instanz zu erstellen.

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