[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: RE: [xacml] Revised specification - added matching functions
They are all sequenced - if there is one instance of foo in the context (in my example) it will be exactly the same input. The difference between declared single<type> and ne_sequence<type> is ONLY the specified behavior, when function is given a sequence of a particular size. function taking single<type>, should produce an error is the SEQUENCE provided as the argument, is of size != 1, function specified ne_sequence<type>, should process sequence of any size >0 - it will process single<type> just as well. On the other hand - if you do not restrict to a non-empty sequence - you have to specify the result for an empty sequence (missing attribute). To clarify my proposal. Let have an attribute foo, of type decimal that may be present in context 0, 1, or 5 times. I need two rules First - should check if the rounded value of foo, if it is defined one, and only one time, is equal to 42. Second - should check if at least one value, rounded is equal to 3. First rule will have condition (in pseudo language) (integer-equal ((attributevalue type=integer)42) (round (attribute designator name=foo))) It will yield INDERTERMINATE if foo is missing, or present 5 times (that is if sttribute designator returns no, or 5 values in a sequence. Only exactly one returned value is accepted. Second rule will be (integer-member-of ((attributevalue type=integer)3) (round (attribute designator name=foo))) This one will work for 1, or 5 present values returned by the designator, but round will produce error, treated as invalid argument by integer-member-of. Not restricting round to non-empty sequence will require the round returns SOMETHING, when given an empty sequence of decimals, other then an error. What would the result be? -----Original Message----- From: Polar Humenn [mailto:polar@syr.edu] Sent: Wednesday, August 21, 2002 11:34 AM To: Daniel Engovatov Cc: ''''Tim Moses' ' ' '; ''''XACML' ' ' ' Subject: RE: [xacml] Revised specification - added matching functions There is no reason to restrict round to a non-empty sequence. That is why I believe we should have two functions, round and map_round. You will not be able to apply your "round" to a non-sequenced "<xs:decimal>". On Wed, 21 Aug 2002, Daniel Engovatov wrote: > > I am revising the spreadsheet anyway - some functions were missing - I will > send it out soon. > > But I do not think there is a problem with this - we naturally have all > arguments as sequences anyway - due to the nature of attribute selection in > context. There is nothing confusing about what this functions return as > they will provide the exact same result on single<type> as on > ne_sequence<type>. Whatever function consumes their result will deal with > the > sequence being of incorrect length. > > Use case would be: if context has multiple values of a decimal argument > foo, and you want to check whether at least one of the values, rounded, is > equal to an integer 3. > > you will use (member_of ((attribute value type=int)3) (round (attribute > selector name=foo))) > > > On the other hand I would not advice specifying map_X functions with > sequence<type>, instead of ne_sequence<>. Why not. > What are their result for an empty sequence? They should produce an error, > as specified for an empty sequence. If applied to a function that requires a non-empty sequence, yes. But some do not have to be applied to non-empty sequences. > So you addition does seem to clarify anything, but introduces a > unspecified behaviour for an empty sequence.. There is no unspecified behavior for an empty sequence. Empty sequences can be your "set" with nothing in them. > Daniel. > > > -----Original Message----- > From: Polar Humenn [mailto:polar@syr.edu] > Sent: Wednesday, August 21, 2002 10:51 AM > To: Daniel Engovatov > Cc: ''''Tim Moses' ' ' '; ''''XACML' ' ' ' > Subject: RE: [xacml] Revised specification - added matching functions > > > > Danel, > > I have an issue with : > > 22 round ne_sequence<xs:decimal> ne_sequence<xs:decimal> > 23 floor ne_sequence<xs:decimal> ne_sequence<xs:decimal> > 24 abs ne_sequence<xs:decimal> ne_sequence<xs:decimal> > 25 integer ne_sequence<xs:integer> ne_sequence<xs:decimal> > 26 decimal ne_sequence<xs:decimal> ne_sequence<xs:integer> > > > These functions which you would assume apply to numbers apply to > non empty sequences. > > I would prefer: > > round xs:decimal xs:decimal > floor xs:decimal xs:decimal > abs xs:decimal xs:decimal > integer_to_decimal xs:integer xs:decimal > decimal_to_integer xs:decimal xs:integer > > and their "map" equivalents, if they are really needed. > > map_round sequence<xs:decimal> sequence<xs:decimal> > map_floor sequence<xs:decimal> sequence<xs:decimal> > map_abs sequence<xs:decimal> sequence<xs:decimal> > map_integer_to_decimal sequence<xs:integer> sequence<xs:decimal> > map_decimal_to_integer sequence<xs:decimal> sequence<xs:integer> > > The new proposed spreadsheet is attached. > > Cheers, > -Polar > > On Mon, 19 Aug 2002, Daniel Engovatov wrote: > > > > > > > Attached. > > > > > > > ---------------------------------------------------------------- > To subscribe or unsubscribe from this elist use the subscription > manager: <http://lists.oasis-open.org/ob/adm.pl> >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC