You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Extend the subtreeSpecification syntax so that it allows an LDAP Filter (instead of)/(together with) a Refinement.

Current subtreeSpecification syntax is as follows:

   SubtreeSpecification = "{"    [ sp ss-base ]
                             [ sep sp ss-specificExclusions ]
                             [ sep sp ss-minimum ]
                             [ sep sp ss-maximum ]
                             [ sep sp ss-specificationFilter ]
                                   sp "}"

   ss-base                = "base"                msp LocalName
   ss-specificExclusions  = "specificExclusions"  msp SpecificExclusions
   ss-minimum             = "minimum"             msp BaseDistance
   ss-maximum             = "maximum"             msp BaseDistance
   ss-specificationFilter = "specificationFilter" msp Refinement

   SpecificExclusions = "{" [ sp SpecificExclusion
                           *( "," sp SpecificExclusion ) ] sp "}"
   SpecificExclusion  = chopBefore / chopAfter
   chopBefore         = "chopBefore" ":" LocalName
   chopAfter          = "chopAfter"  ":" LocalName

The new proposed syntax is as follows:

   SubtreeSpecification = "{"    [ sp ss-base ]
                             [ sep sp ss-specificExclusions ]
                             [ sep sp ss-minimum ]
                             [ sep sp ss-maximum ]
                             [ sep sp ss-specificationFilter ]
                             [ sep sp ss-ldapFilter ]; >>> The new element <<<
                                   sp "}"

   ss-base                = "base"                msp LocalName
   ss-specificExclusions  = "specificExclusions"  msp SpecificExclusions
   ss-minimum             = "minimum"             msp BaseDistance
   ss-maximum             = "maximum"             msp BaseDistance
   ss-specificationFilter = "specificationFilter" msp Refinement
   ss-ldapFilter          = "ldapFilter"          msp LdapFilter; http://tools.ietf.org/html/rfc4515#section-3

   SpecificExclusions = "{" [ sp SpecificExclusion
                           *( "," sp SpecificExclusion ) ] sp "}"
   SpecificExclusion  = chopBefore / chopAfter
   chopBefore         = "chopBefore" ":" LocalName
   chopAfter          = "chopAfter"  ":" LocalName

Purpose of extending the syntax in this way is providing compatibility with existing subtree specifications.

The only thing that needs to be answered is what will happen if both specificationFilter and ldapFilter exist. We need to agree on a conflict resoution scheme here. For example we may just ignore specficationFilter if ldapFilter exists or we may try to "merge" both.

  • No labels