UPD Mail Archive: UPD> constraints

UPD> constraints

From: Norbert Schade (norbertschade@oaktech.com)
Date: Tue Sep 05 2000 - 18:59:19 EDT

  • Next message: Norbert Schade: "UPD> constraints spec"

    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.











    Constraints_FullFeatured.gif



    Constraints_Small.gif



    This archive was generated by hypermail 2b29 : Tue Sep 05 2000 - 19:08:28 EDT