OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

xacml-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Non-deterministic output of the string-from-type functions

Any given value in the value space of a non-string primitive data-type has
more than one valid lexical representation as a string of characters. The
various string-from-type functions produce a lexical representation for the
value given as the argument to the function, but the descriptions of the
string-from-type functions provide no guidance as to which lexical
representation should be produced. This is an impediment to interoperability
when using these functions (particularly the string-from-double function).

For those data-types corresponding to XML Schema data-types, the output of the
string-from-type functions could be made consistent across implementations
by requiring that the canonical representation defined in "XML Schema Part2:
Datatypes" be used as the output.

The other data-types are not so easy to canonicalize (for example, there is
no canonical form for an LDAP DN). However, given the currently available
functions, any expression producing a value of one of these types is ultimately
just making a copy of one of the literal XACML attribute values that was a
direct or indirect input to that function, so a requirement on all functions
to preserve the original lexical representation of values of these data-types
may be an adequate solution. Note that this isn't suitable for the XML Schema
data-types. Consider the result of the double-multiply function, which is an
entirely new double value that is not equivalent to any of its input arguments.

On a related matter, the type-from-string function descriptions don't say what
to do if the input string is not a valid lexical representation for a value
of the output type. Presumably the function evaluates to indeterminate.


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]