Kurt Zeilenga wrote:
Kind of in right vein, but a bit off.
An attribute of syntax X can only be a subtype of an attribute of syntax Y if Y is a more generic syntax. In particular, all abstract values representable in X must be representable in Y.
While both printable string and directory string syntaxes are more generic than country string, directory string is not more generic than printable string. This is because printable string can represent zero length character strings and directory string cannot.
So, what needed, for each syntax, is a list of more generic syntaxes.
BWT, syntax affinity should be somehow related to compatible syntaxes in matchingRules. In that case, things are sort of reversed:
a matchingRule defined for a syntax X can apply to a value of syntax Y only if syntax Y is a more specific syntax. So, for example, caseExactMatch should apply to Country.
This is no longer true after the recent change to support the Country syntax: a filter like
(c:caseExactMatch:=IT)
appears as undefined since Country does not result in the syntaxes compatible with caseExactMatch.
Besides explicitly setting compatible syntaxes like it occurs now in schema_init.c, further compatibility rules should be automatically generated by checking what syntaxes are derived by the matchingRule's syntax (and, possibly, by its compatible syntaxes).
p.
Ing. Pierangelo Masarati OpenLDAP Core Team
SysNet s.r.l. via Dossi, 8 - 27100 Pavia - ITALIA http://www.sys-net.it --------------------------------------- Office: +39 02 23998309 Mobile: +39 333 4963172 Email: pierangelo.masarati@sys-net.it ---------------------------------------