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@eso.mc.xerox.com (Ira Mcdonald x10962)
>To: hastings@cp10.es.xerox.com, xcmieditors@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
> }
>
>------------------------------------------------------------------------
>
>