Here is an old proposal for representing constraints in the Finisher MIB
that Ira was working on with some of us at Xerox and it got buried.
I'd like to look at it with the FIN group.
My appologies, I have not had time to review and understand it myself.
Tom
>Date: Sat, 28 Feb 98 20:56:00 EST
>From: imcdonal at eso.mc.xerox.com (Ira Mcdonald x10962)
>To: hastings at cp10.es.xerox.com, xcmieditors at cp10.es.xerox.com>Subject: PWG Finisher MIB constraints ASN.1 - Please reply ASAP!!
>>Hi Tom, Saturday (28 February 1998)
>>At your request, below are new sketches for one textual convention and
>two object groups capable of expressing arbitrarily complex constraints
>between any two attributes in the PWG Finisher MIB. Please review them
>ASAP!
>>A given 'predicate rule' (in 'finPredicateTable') may be associated with
>one or more 'assertion rules' (in 'finAssertionTable'). Look at the
>INDEX clauses of the two object groups, for their relationships.
>>If you agree that this is a viable approach, I'd like to forward these
>ASN.1 fragments BEFORE the PWG meeting (4-6 March), to permit review.
>>Cheers,
>- Ira McDonald
>>------------------------------------------------------------------------
>>finPredicateTable OBJECT-TYPE
> SYNTAX SEQUENCE OF FinPredicateEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "The 'finPredicateTable' SHALL contain predicate rules for
> constraints between pairs of finisher device attributes."
> ::= { finPredicate 1 }
>>finPredicateEntry OBJECT-TYPE
> SYNTAX FinPredicateEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "A 'finPredicateEntry' SHALL contain one predicate rule for
> constraints between pairs of finisher device attributes."
> INDEX { hrDeviceIndex,
> finDeviceIndex,
> finPredicateAttributeTypeIndex,
> finPredicateAttributeRuleIndex }
> ::= { finPredicateTable 1 }
>>FinPredicateEntry ::= SEQUENCE {
> finPredicateAttributeTypeIndex FinAttributeTypeTC,
> finPredicateAttributeRuleIndex Integer32 (1..32767),
> finPredicateAttributeMatchRule FinAttributeMatchRuleTC,
> finPredicateValueAsIntegerMinimum Integer32 (-2..2147483647),
> finPredicateValueAsIntegerMaximum Integer32 (-2..2147483647),
> finPredicateValueAsOctets OCTET STRING (SIZE (0..63))
>}
>>------------------------------------------------------------------------
>>finAssertionTable OBJECT-TYPE
> SYNTAX SEQUENCE OF FinAssertionEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "The 'finAssertionTable' SHALL contain assertion rules for
> constraints between pairs of finisher device attributes."
> ::= { finAssertion 1 }
>>finAssertionEntry OBJECT-TYPE
> SYNTAX FinAssertionEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "A 'finAssertionEntry' SHALL contain one assertion rule for
> constraints between pairs of finisher device attributes."
> INDEX { hrDeviceIndex,
> finDeviceIndex,
> finPredicateAttributeTypeIndex,
> finPredicateAttributeRuleIndex,
> finAssertionAttributeRuleIndex }
> ::= { finAssertionTable 1 }
>>FinAssertionEntry ::= SEQUENCE {
> finAssertionAttributeRuleIndex Integer32 (1..32767),
> finAssertionAttributeType FinAttributeTypeTC,
> finAssertionAttributeMatchRule FinAttributeMatchRuleTC,
> finAssertionValueAsIntegerMinimum Integer32 (-2..2147483647),
> finAssertionValueAsIntegerMaximum Integer32 (-2..2147483647),
> finAssertionValueAsOctets OCTET STRING (SIZE (0..63))
>}
>>------------------------------------------------------------------------
>>FinAttributeMatchRuleTC ::= TEXTUAL-CONVENTION
> STATUS current
> DESCRIPTION
> "The set of matching rules which may be applied for testing the
> condition in a predicate rule or an assertion rule used for
> constraints between pairs of finisher device attributes."
> SYNTAX INTEGER {
> none(0),
> other(1),
> unknown(2),
> -- Match ordering rules for integers and strings
> matchOrderingEQ(11), -- '==' Equal
> matchOrderingNE(12), -- '!=' Not Equal
> matchOrderingLT(13), -- '<' Less Than
> matchOrderingGT(14), -- '<' Greater Than
> matchOrderingLE(15), -- '<=' Less Than or Equal
> matchOrderingGE(16), -- '<=' Greater Than or Equal
> -- March ordering rules for strings ONLY
> matchStringExact(21), -- Exact characters and length
> matchStringCaseInsensitive(22), -- Ignore case
> matchStringSameLetter(23), -- Ignore accents, case, etc
> matchStringApproximate(24), -- Implementation defined
> matchStringInitial(25), -- '=*' Initial substring
> matchStringAny(26), -- '*=*' Any substring
> matchStringFinal(27), -- '*=' Final substring
> -- Match presence rules for integers and strings
> matchLogicalPresent(31), -- '*' Logical Present
> matchLogicalNotPresent(32) -- '!*' Logical Not Present
> }
>>------------------------------------------------------------------------
>>