Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Current subtreeSpecification syntax is as follows:

No Format

   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:

No Format

   SubtreeSpecification = "{"    [ sp ss-base ]
                             [ sep sp ss-specificExclusions ]
                             [ sep sp ss-minimum ]
                             [ sep sp ss-maximum ]
                             [ sep sp ss-specificationFilter ]
                             [ sep sp ss-ldapFilter ]
                                   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

   SpecificExclusions = "{" [ sp SpecificExclusion
                           *( "," sp SpecificExclusion ) ] sp "}"
   SpecificExclusion  = chopBefore / chopAfter
   chopBefore         = "chopBefore" ":" LocalName
   chopAfter          = "chopAfter"  ":" LocalName
#  LdapFilter -> http://tools.ietf.org/html/rfc4515#section-3

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.