Attached files show two approaches for constraints:
The one with the suffix 'Small' is leaning towards today's well known
constraint architecture with the exception of nested conditions.
The implementations basically show the following constraint:
if ( (MediaSize != Letter) && (MediaSize != A4) )
if ( (InputTray == Tray2) || (InputTray == Tray3) )
if (Duplex != Simplex)
Filter(MediaSize);
We will talk about some 'well-conformed constraints' and give
recommendations on how to build proper constraints.
Figure that the model supports Letter, A4, A5 and A6 as media sizes. The
upper sample should not start with
if ( (MediaSize == A5) || (MediaSize == A6) )
which is allowed by the syntax.
You do not want to exclude the bad ones by listing them, but by listing the
good ones and exclude ALL others. That will help in case an installable
option input bin 'Optional Tray 8' has no chance to add media sizes to tray
2 or 3 when concentrating on creating constraints for the installable option
only.
I consider this a very important detail and we should spend some time on it
to fully understand it.
The differences in the XML files just show variaties of implementation.
There is always a top condition! In the sample it is a set of conditions on
MediaSize. This makes them kind of unidirectional. The same condition cannot
be read for the case that duplex is not simplex and some constraints get
active in that case.
Nested conditions reflect AND combinations of conditions.
Sets can be grouped on the same level and nested. On the same level they
represent an OR.
Only Sets can be ORed.
In case somebody wants to OR conditions this requires separate constraints.
This ensures some readability. Otherwise the temptation is too big to
combine more or less everything into one tremendous constraint.
I downloaded a Windows 9x printer driver for the HP LaserJet 8000 PCL 5e
from HP's site. I'd like you to do the same.
You may want to check some constraints on the paper tab starting with the
default setting.
1. Select A5, select Tray 2. -> OK message with greying the paper source and
selecting Tray 1.
This involves messages and selections in the proposal.
2. Select Tray 2, select A5. -> OK/Cancel message. Cancel resets the media
size, OK activates the new media size selection and changes everything else
if necessary.
Neither in sample 1 nor in 2 filtering is involved as an action.
Minimum familiarity with XML Authority (or similar application) and XML Pro
(or similar application) is assumed.
All Full sample XML are based on the Constraints_FullFeatured.DTD.
The Small sample XML is based on the Constraints_Small.DTD.
The Full1 sample XML is exactly mirroring the Small sample, just based on
the Full DTD. In this case I only had to add the Filter action, which is
redundant in the Small DTD, as filtering is the only supported action.
You see that any developer can concentrate on filtering only even with the
Full DTD, as the message and select branches are optional.
The samples are fully featured, although re-editing will be necessary once
the concept is fully blown up.
This archive was generated by hypermail 2b29 : Tue Sep 05 2000 - 19:08:28 EDT