You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by bu...@apache.org on 2013/05/15 19:09:38 UTC
svn commit: r862092 - in /websites/staging/directory/trunk/content: ./
apacheds/advanced-ug/4.2.10-aci-grammar.html
Author: buildbot
Date: Wed May 15 17:09:37 2013
New Revision: 862092
Log:
Staging update by buildbot for directory
Modified:
websites/staging/directory/trunk/content/ (props changed)
websites/staging/directory/trunk/content/apacheds/advanced-ug/4.2.10-aci-grammar.html
Propchange: websites/staging/directory/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Wed May 15 17:09:37 2013
@@ -1 +1 @@
-1482959
+1482961
Modified: websites/staging/directory/trunk/content/apacheds/advanced-ug/4.2.10-aci-grammar.html
==============================================================================
--- websites/staging/directory/trunk/content/apacheds/advanced-ug/4.2.10-aci-grammar.html (original)
+++ websites/staging/directory/trunk/content/apacheds/advanced-ug/4.2.10-aci-grammar.html Wed May 15 17:09:37 2013
@@ -140,258 +140,259 @@
<h1 id="4210-aci-grammar">4.2.10 - ACI grammar</h1>
<p>The ACI attributes store data following a specific structure, which is
define by this grammar :</p>
-<p>:::XML
- <wrapperEntryPoint> ::= <SP*> '{' <SP*> <mainACIItemComponent> <SP*>
- <mainACIItemComponents> '}' <SP*> EOF</p>
-<div class="codehilite"><pre><span class="sr"><mainACIItemComponents></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="o">**</span> <span class="n">Note</span> <span class="p">:</span> <span class="n">we</span> <span class="n">have</span> <span class="n">to</span> <span class="n">allow</span> <span class="n">only</span> <span class="n">one</span> <span class="n">of</span> <span class="nb">each</span> <span class="n">option</span>
-<span class="sr"><mainACIItemComponent></span> <span class="o">::=</span>
- <span class="s">"identificationTag"</span> <span class="sr"><SP+></span> <span class="n">SAFEUTF8STRING</span>
- <span class="o">|</span> <span class="s">"precedence"</span> <span class="sr"><SP+></span> <span class="n">INTEGER</span>
- <span class="o">|</span> <span class="s">"authenticationLevel"</span> <span class="sr"><SP+></span> <span class="sr"><authenticationLevel></span>
- <span class="o">|</span> <span class="s">"itemOrUserFirst"</span> <span class="sr"><SP+></span> <span class="sr"><itemOrUserFirst></span>
-
-<span class="sr"><authenticationLevel></span> <span class="o">::=</span> <span class="s">"none"</span> <span class="o">|</span> <span class="s">"simple"</span> <span class="o">|</span> <span class="s">"strong"</span>
-
-<span class="sr"><itemOrUserFirst></span> <span class="o">::=</span>
- <span class="s">"itemFirst"</span> <span class="sr"><SP*></span> <span class="s">':'</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><itemType></span> <span class="sr"><SP*></span>
-<span class="s">'}'</span>
- <span class="o">|</span>
- <span class="s">"userFirst"</span> <span class="sr"><SP*></span> <span class="s">':'</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><userType></span> <span class="sr"><SP*></span>
-<span class="s">'}'</span>
-
-<span class="sr"><itemType></span> <span class="o">::=</span>
- <span class="s">"protectedItems"</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><protectedItem?></span> <span class="s">'}'</span> <span class="sr"><SP*></span>
- <span class="s">','</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><anyItemPermission></span> <span class="sr"><SP*></span>
-<span class="sr"><anyItemPermission*></span> <span class="s">'}'</span>
- <span class="o">|</span>
- <span class="s">"itemPermissions"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><itemPermissions?></span> <span class="s">'}'</span> <span class="sr"><SP*></span>
- <span class="s">','</span> <span class="sr"><SP*></span> <span class="s">"protectedItems"</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span>
-<span class="sr"><protectedItem?></span> <span class="s">'}'</span>
-
-<span class="sr"><userType></span> <span class="o">::=</span>
- <span class="s">"userClasses"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><userClass?></span> <span class="s">'}'</span> <span class="sr"><SP*></span> <span class="s">','</span>
- <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><anyUserPermission></span> <span class="sr"><SP*></span>
-<span class="sr"><anyUserPermission*></span> <span class="s">'}'</span>
- <span class="o">|</span>
- <span class="s">"userPermissions"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><userPermissions?></span> <span class="s">'}'</span>
-<span class="sr"><SP*></span> <span class="s">','</span>
- <span class="sr"><SP*></span> <span class="s">"userClasses"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span>
-<span class="sr"><userClass?></span> <span class="s">'}'</span>
-
-<span class="sr"><protectedItem?></span> <span class="o">::=</span> <span class="sr"><protectedItem></span> <span class="sr"><SP*></span> <span class="sr"><protectedItem*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><protectedItem*></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="sr"><protectedItem></span> <span class="sr"><SP*></span> <span class="sr"><protectedItem*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><protectedItem></span> <span class="o">::=</span>
- <span class="s">"entry"</span>
- <span class="o">|</span> <span class="s">"allUserAttributeTypes"</span>
- <span class="o">|</span> <span class="s">"attributeType"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><oid></span> <span class="sr"><SP*></span> <span class="sr"><oids></span> <span class="s">'}'</span>
- <span class="o">|</span> <span class="s">"allAttributeValues"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><oid></span> <span class="sr"><SP*></span> <span class="sr"><oids></span> <span class="s">'}'</span>
- <span class="o">|</span> <span class="s">"allUserAttributeTypesAndValues"</span>
- <span class="o">|</span> <span class="n">ATTRIBUTE_VALUE_CANDIDATE</span>
- <span class="o">|</span> <span class="s">"selfValue"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><oid></span> <span class="sr"><SP*></span> <span class="sr"><oids></span> <span class="s">'}'</span>
- <span class="o">|</span> <span class="n">RANGE_OF_VALUES_CANDIDATE</span>
- <span class="o">|</span> <span class="s">"maxValueCount"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><valueCountType></span> <span class="sr"><SP*></span> <span class="s">'}'</span>
-<span class="sr"><SP*></span> <span class="sr"><maxValueCount*></span> <span class="s">'}'</span>
- <span class="o">|</span> <span class="s">"maxImmSub"</span> <span class="sr"><SP+></span> <span class="n">INTEGER</span>
- <span class="o">|</span> <span class="s">"restrictedBy"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><typeValueIn></span> <span class="sr"><SP*></span> <span class="s">'}'</span>
-<span class="sr"><SP*></span> <span class="sr"><restrictedValue*></span> <span class="s">'}'</span>
- <span class="o">|</span> <span class="s">"classes"</span> <span class="sr"><SP+></span> <span class="sr"><refinement></span>
-
-<span class="sr"><maxValueCount*></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><valueCountType></span> <span class="sr"><SP*></span> <span class="s">'}'</span> <span class="sr"><SP*></span>
-<span class="sr"><maxValueCount*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><valueCountType></span> <span class="o">::=</span>
- <span class="s">"type"</span> <span class="sr"><SP+></span> <span class="sr"><oid></span> <span class="sr"><SP*></span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="s">"maxCount"</span> <span class="sr"><SP+></span>
-<span class="n">INTEGER</span>
- <span class="o">|</span>
- <span class="s">"maxCount"</span> <span class="sr"><SP+></span> <span class="n">INTEGER</span> <span class="sr"><SP*></span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="s">"type"</span> <span class="sr"><SP+></span>
-<span class="sr"><oid></span>
-
-<span class="sr"><restrictedValue*></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><typeValueIn></span> <span class="sr"><SP*></span> <span class="s">'}'</span> <span class="sr"><SP*></span>
-<span class="sr"><restrictedValue*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><typeValueIn></span> <span class="o">::=</span>
- <span class="s">"type"</span> <span class="sr"><SP+></span> <span class="sr"><oid></span> <span class="sr"><SP*></span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="s">"valuesIn"</span> <span class="sr"><SP+></span> <span class="sr"><oid></span>
- <span class="o">|</span>
- <span class="s">"valuesIn"</span> <span class="sr"><SP+></span> <span class="sr"><oid></span> <span class="sr"><SP*></span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="s">"type"</span> <span class="sr"><SP+></span> <span class="sr"><oid></span>
-
-<span class="sr"><oids></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="sr"><oid></span> <span class="sr"><SP*></span> <span class="sr"><oids></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><itemPermissions?></span> <span class="o">::=</span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><anyItemPermission></span> <span class="sr"><SP*></span>
-<span class="sr"><anyItemPermission*></span> <span class="s">'}'</span> <span class="sr"><SP*></span> <span class="sr"><itemPermissions*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><itemPermissions*></span> <span class="o">::=</span>
- <span class="s">','</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><anyItemPermission></span> <span class="sr"><SP*></span>
-<span class="sr"><anyItemPermission*></span> <span class="s">'}'</span> <span class="sr"><SP*></span> <span class="sr"><itemPermissions*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><anyItemPermission*></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="sr"><anyItemPermission></span> <span class="sr"><SP*></span>
-<span class="sr"><anyItemPermission*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><anyItemPermission></span> <span class="p">:</span>
- <span class="s">"precedence"</span> <span class="sr"><SP+></span> <span class="sr"><INTEGER></span>
- <span class="o">|</span> <span class="s">"userClasses"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><userClass?></span> <span class="s">'}'</span>
- <span class="o">|</span> <span class="s">"grantsAndDenials"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><grantAndDenial?></span> <span class="s">'}'</span>
-
-<span class="sr"><grantAndDenial?></span> <span class="o">::=</span> <span class="sr"><grantAndDenial></span> <span class="sr"><SP*></span> <span class="sr"><grantAndDenial*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><grantAndDenial*></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="sr"><grantAndDenial></span> <span class="sr"><SP*></span> <span class="sr"><grantAndDenial*></span>
-
-<span class="sr"><grantAndDenial></span> <span class="p">:</span>
- <span class="s">"grantAdd"</span>
- <span class="o">|</span> <span class="s">"denyAdd"</span>
- <span class="o">|</span> <span class="s">"grantDiscloseOnError"</span>
- <span class="o">|</span> <span class="s">"denyDiscloseOnError"</span>
- <span class="o">|</span> <span class="s">"grantRead"</span>
- <span class="o">|</span> <span class="s">"denyRead"</span>
- <span class="o">|</span> <span class="s">"grantRemove"</span>
- <span class="o">|</span> <span class="s">"denyRemove"</span>
- <span class="o">|</span> <span class="s">"grantBrowse"</span>
- <span class="o">|</span> <span class="s">"denyBrowse"</span>
- <span class="o">|</span> <span class="s">"grantExport"</span>
- <span class="o">|</span> <span class="s">"denyExport"</span>
- <span class="o">|</span> <span class="s">"grantImport"</span>
- <span class="o">|</span> <span class="s">"denyImport"</span>
- <span class="o">|</span> <span class="s">"grantModify"</span>
- <span class="o">|</span> <span class="s">"denyModify"</span>
- <span class="o">|</span> <span class="s">"grantRename"</span>
- <span class="o">|</span> <span class="s">"denyRename"</span>
- <span class="o">|</span> <span class="s">"grantReturnDN"</span>
- <span class="o">|</span> <span class="s">"denyReturnDN"</span>
- <span class="o">|</span> <span class="s">"grantCompare"</span>
- <span class="o">|</span> <span class="s">"denyCompare"</span>
- <span class="o">|</span> <span class="s">"grantFilterMatch"</span>
- <span class="o">|</span> <span class="s">"denyFilterMatch"</span>
- <span class="o">|</span> <span class="s">"grantInvoke"</span>
- <span class="o">|</span> <span class="s">"denyInvoke"</span>
-
-<span class="sr"><userClass?></span> <span class="o">::=</span> <span class="sr"><userClass></span> <span class="sr"><SP*></span> <span class="sr"><userClass*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><userClass*></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="sr"><userClass></span> <span class="sr"><SP*></span> <span class="sr"><userClass*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><userClass></span> <span class="p">:</span>
- <span class="s">"allUsers"</span>
- <span class="o">|</span> <span class="s">"thisEntry"</span>
- <span class="o">|</span> <span class="s">"parentOfEntry"</span>
- <span class="o">|</span> <span class="s">"name"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><distinguishedName></span> <span class="sr"><SP*></span> <span class="sr"><name*></span> <span class="s">'}'</span>
- <span class="o">|</span> <span class="s">"userGroup"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><distinguishedName></span> <span class="sr"><SP*></span> <span class="sr"><userGroup*></span>
-<span class="s">'}'</span>
- <span class="o">|</span> <span class="s">"subtree"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><subtreeSpecificationComponent?></span>
-<span class="s">'}'</span> <span class="sr"><SP*></span> <span class="sr"><subTree*></span> <span class="s">'}'</span>
-
-<span class="sr"><name*></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="sr"><distinguishedName></span> <span class="sr"><SP*></span> <span class="sr"><name*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><userGroup*></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="sr"><distinguishedName></span> <span class="sr"><SP*></span> <span class="sr"><userGroup*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><subTree*></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><subtreeSpecificationComponent?></span> <span class="s">'}'</span>
-<span class="sr"><SP*></span> <span class="sr"><subTree*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><userPermissions?></span> <span class="o">::=</span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><anyUserPermission></span> <span class="sr"><SP*></span>
-<span class="sr"><anyUserPermission*></span> <span class="s">'}'</span> <span class="sr"><SP*></span> <span class="sr"><userPermissions*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><userPermissions*></span> <span class="o">::=</span>
- <span class="s">','</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><anyUserPermission></span> <span class="sr"><SP*></span>
-<span class="sr"><anyUserPermission*></span> <span class="s">'}'</span> <span class="sr"><SP*></span> <span class="sr"><userPermissions*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><anyUserPermission*></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="sr"><anyUserPermission></span> <span class="sr"><SP*></span>
-<span class="sr"><anyUserPermission*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><anyUserPermission></span> <span class="p">:</span>
- <span class="s">"precedence"</span> <span class="sr"><SP+></span> <span class="sr"><INTEGER></span>
- <span class="o">|</span> <span class="s">"protectedItems"</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><protectedItem?></span> <span class="s">'}'</span>
- <span class="o">|</span> <span class="s">"grantsAndDenials"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><grantAndDenial?></span> <span class="s">'}'</span>
-
-<span class="sr"><subtreeSpecificationComponent?></span> <span class="o">::=</span> <span class="sr"><subtreeSpecificationComponent></span> <span class="sr"><SP*></span>
-<span class="sr"><subtreeSpecificationComponent*></span> <span class="o">|</span> <span class="n">e</span>
-<span class="sr"><subtreeSpecificationComponent*></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span>
-<span class="sr"><subtreeSpecificationComponent></span> <span class="sr"><SP*></span> <span class="sr"><subtreeSpecificationComponent*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><subtreeSpecificationComponent></span> <span class="p">:</span>
- <span class="s">"base"</span> <span class="sr"><SP+></span> <span class="sr"><distinguishedName></span>
- <span class="o">|</span> <span class="s">"specificExclusions"</span> <span class="sr"><SP+></span> <span class="s">'{'</span> <span class="sr"><SP*></span> <span class="sr"><specificExclusion?></span> <span class="s">'}'</span>
- <span class="o">|</span> <span class="s">"minimum"</span> <span class="sr"><SP+></span> <span class="n">INTEGER</span>
- <span class="o">|</span> <span class="s">"maximum"</span> <span class="sr"><SP+></span> <span class="n">INTEGER</span>
-
-<span class="sr"><specificExclusion?></span> <span class="o">::=</span> <span class="sr"><specificExclusion></span> <span class="sr"><SP*></span> <span class="sr"><specificExclusion*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><specificExclusion*></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="sr"><specificExclusion></span> <span class="sr"><SP*></span>
-<span class="sr"><specificExclusion*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><specificExclusion></span> <span class="o">::=</span>
- <span class="s">"chopBefore"</span> <span class="sr"><SP*></span> <span class="s">':'</span> <span class="sr"><SP*></span> <span class="sr"><distinguishedName></span>
- <span class="o">|</span>
- <span class="s">"chopAfter"</span> <span class="sr"><SP*></span> <span class="s">':'</span> <span class="sr"><SP*></span> <span class="sr"><distinguishedName></span>
-
-<span class="sr"><refinement></span> <span class="o">::=</span>
- <span class="s">"item"</span> <span class="sr"><SP*></span> <span class="s">':'</span> <span class="sr"><SP*></span> <span class="sr"><oid></span>
- <span class="o">|</span>
- <span class="s">"and"</span> <span class="sr"><SP*></span> <span class="s">':'</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><refinements?></span> <span class="s">'}'</span>
- <span class="o">|</span>
- <span class="s">"or"</span> <span class="sr"><SP*></span> <span class="s">':'</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><refinements?></span> <span class="s">'}'</span>
- <span class="o">|</span>
- <span class="s">"not"</span> <span class="sr"><SP*></span> <span class="s">':'</span> <span class="sr"><SP*></span> <span class="s">'{'</span> <span class="sr"><refinements?></span> <span class="s">'}'</span>
-
-<span class="sr"><refinements?></span> <span class="o">::=</span> <span class="sr"><SP*></span> <span class="sr"><refinements?></span> <span class="sr"><SP*></span> <span class="sr"><refinement*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><refinement*></span> <span class="o">::=</span> <span class="s">','</span> <span class="sr"><SP*></span> <span class="sr"><refinement></span> <span class="sr"><SP*></span> <span class="sr"><refinement*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr"><distinguishedName></span> <span class="o">::=</span> <span class="n">SAFEUTF8STRING</span>
-
-<span class="sr"><oid></span> <span class="o">::=</span> <span class="n">DESCR</span> <span class="o">|</span> <span class="n">NUMERICOID</span>
-
-<span class="n">SAFEUTF8CHAR</span> <span class="p">:</span>
- <span class="s">'\u0001'</span><span class="o">..</span><span class="s">'\u0021'</span> <span class="o">|</span>
- <span class="s">'\u0023'</span><span class="o">..</span><span class="s">'\u007F'</span> <span class="o">|</span>
- <span class="s">'\u00c0'</span><span class="o">..</span><span class="s">'\u00d6'</span> <span class="o">|</span>
- <span class="s">'\u00d8'</span><span class="o">..</span><span class="s">'\u00f6'</span> <span class="o">|</span>
- <span class="s">'\u00f8'</span><span class="o">..</span><span class="s">'\u00ff'</span> <span class="o">|</span>
- <span class="s">'\u0100'</span><span class="o">..</span><span class="s">'\u1fff'</span> <span class="o">|</span>
- <span class="s">'\u3040'</span><span class="o">..</span><span class="s">'\u318f'</span> <span class="o">|</span>
- <span class="s">'\u3300'</span><span class="o">..</span><span class="s">'\u337f'</span> <span class="o">|</span>
- <span class="s">'\u3400'</span><span class="o">..</span><span class="s">'\u3d2d'</span> <span class="o">|</span>
- <span class="s">'\u4e00'</span><span class="o">..</span><span class="s">'\u9fff'</span> <span class="o">|</span>
- <span class="s">'\uf900'</span><span class="o">..</span><span class="s">'\ufaff'</span> <span class="p">;</span>
-
-<span class="sr"><SP+></span> <span class="o">::=</span> <span class="sr"><SP></span> <span class="sr"><SP*></span>
-<span class="sr"><SP*></span> <span class="o">::=</span> <span class="sr"><SP></span> <span class="sr"><SP*></span> <span class="o">|</span> <span class="n">e</span>
-<span class="sr"><SP></span> <span class="o">::=</span> <span class="s">' '</span> <span class="o">|</span> <span class="s">'\t'</span> <span class="o">|</span> <span class="s">'\n'</span> <span class="o">|</span> <span class="s">'\r'</span> <span class="p">;</span>
-
-<span class="n">ALPHA</span> <span class="p">:</span> <span class="s">'A'</span><span class="o">..</span><span class="s">'Z'</span> <span class="o">|</span> <span class="s">'a'</span><span class="o">..</span><span class="s">'z'</span> <span class="p">;</span>
-
-<span class="sr"><INTEGER></span> <span class="o">::=</span> <span class="sr"><DIGIT></span> <span class="o">|</span> <span class="sr"><LDIGIT></span> <span class="sr"><DIGIT></span> <span class="sr"><DIGIT*></span>
-<span class="sr"><DIGIT></span> <span class="o">::=</span> <span class="s">'0'</span> <span class="o">|</span> <span class="sr"><LDIGIT></span> <span class="p">;</span>
-<span class="sr"><LDIGIT></span> <span class="o">::=</span> <span class="s">'1'</span><span class="o">..</span><span class="s">'9'</span> <span class="p">;</span>
-<span class="sr"><DIGIT*></span> <span class="o">::=</span> <span class="sr"><DIGIT></span> <span class="sr"><DIGIT*></span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="n">HYPHEN</span> <span class="p">:</span> <span class="s">'-'</span> <span class="p">;</span>
-
-<span class="n">NUMERICOID</span> <span class="p">:</span> <span class="n">INTEGER</span> <span class="p">(</span> <span class="n">DOT</span> <span class="n">INTEGER</span> <span class="p">)</span><span class="o">+</span> <span class="p">;</span>
-
-<span class="n">DOT</span> <span class="p">:</span> <span class="s">'.'</span> <span class="p">;</span>
-
-<span class="n">INTEGER_OR_NUMERICOID</span>
- <span class="p">:</span>
- <span class="p">(</span> <span class="n">INTEGER</span> <span class="n">DOT</span> <span class="p">)</span> <span class="o">=></span> <span class="n">NUMERICOID</span>
- <span class="o">|</span>
- <span class="n">INTEGER</span>
-
-<span class="n">SAFEUTF8STRING</span> <span class="p">:</span> <span class="s">'"'</span><span class="o">!</span> <span class="p">(</span> <span class="n">SAFEUTF8CHAR</span> <span class="p">)</span><span class="o">*</span> <span class="s">'"'</span><span class="o">!</span> <span class="p">;</span>
-
-<span class="n">DESCR</span>
- <span class="p">:</span>
- <span class="p">(</span> <span class="s">"attributeValue"</span> <span class="p">(</span> <span class="n">SP</span><span class="o">!</span> <span class="p">)</span><span class="o">+</span> <span class="s">'{'</span> <span class="p">)</span> <span class="o">=></span>
- <span class="s">"attributeValue"</span><span class="o">!</span> <span class="p">(</span> <span class="n">SP</span><span class="o">!</span> <span class="p">)</span><span class="o">+</span> <span class="s">'{'</span><span class="o">!</span> <span class="p">(</span> <span class="n">options</span> <span class="p">:</span> <span class="o">.</span> <span class="p">)</span><span class="o">*</span> <span class="s">'}'</span><span class="o">!</span>
- <span class="o">|</span> <span class="p">(</span> <span class="s">"rangeOfValues"</span> <span class="p">(</span> <span class="n">SP</span><span class="o">!</span> <span class="p">)</span><span class="o">+</span> <span class="s">'('</span> <span class="p">)</span> <span class="o">=></span>
- <span class="s">"rangeOfValues"</span><span class="o">!</span> <span class="p">(</span> <span class="n">SP</span><span class="o">!</span> <span class="p">)</span><span class="o">+</span> <span class="n">FILTER</span>
- <span class="o">|</span> <span class="n">ALPHA</span> <span class="p">(</span> <span class="n">ALPHA</span> <span class="o">|</span> <span class="n">DIGIT</span> <span class="o">|</span> <span class="n">HYPHEN</span> <span class="p">)</span><span class="o">*</span>
- <span class="p">;</span>
+<div class="codehilite"><pre><span class="nt"><wrapperEntryPoint></span> ::= <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><mainACIItemComponent></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><mainACIItemComponents></span> '}' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> EOF
-<span class="n">FILTER</span> <span class="p">:</span> <span class="s">'('</span> <span class="p">(</span> <span class="p">(</span> <span class="s">'&'</span> <span class="p">(</span><span class="n">SP</span><span class="p">)</span><span class="o">*</span> <span class="p">(</span><span class="n">FILTER</span><span class="p">)</span><span class="o">+</span> <span class="p">)</span> <span class="o">|</span> <span class="p">(</span> <span class="s">'|'</span> <span class="p">(</span><span class="n">SP</span><span class="p">)</span><span class="o">*</span> <span class="p">(</span><span class="n">FILTER</span><span class="p">)</span><span class="o">+</span> <span class="p">)</span> <span class="o">|</span> <span class="p">(</span> <span class="s">'!'</span>
-<span class="p">(</span><span class="n">SP</span><span class="p">)</span><span class="o">*</span> <span class="n">FILTER</span> <span class="p">)</span> <span class="o">|</span> <span class="n">FILTER_VALUE</span> <span class="p">)</span> <span class="s">')'</span> <span class="p">(</span><span class="n">SP</span><span class="p">)</span><span class="o">*</span> <span class="p">;</span>
+<span class="nt"><mainACIItemComponents></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><mainACIItemComponent></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><mainACIItemComponents></span> | e
-<span class="n">FILTER_VALUE</span> <span class="p">:</span> <span class="p">(</span><span class="n">options:</span> <span class="o">~</span><span class="p">(</span> <span class="s">')'</span> <span class="o">|</span> <span class="s">'('</span> <span class="o">|</span> <span class="s">'&'</span> <span class="o">|</span> <span class="s">'|'</span> <span class="o">|</span> <span class="s">'!'</span> <span class="p">)</span> <span class="p">(</span> <span class="o">~</span><span class="p">(</span><span class="s">')'</span><span class="p">)</span> <span class="p">)</span><span class="o">*</span> <span class="p">)</span> <span class="p">;</span>
+** Note : we have to allow only one of each option
+<span class="nt"><mainACIItemComponent></span> ::=
+ "identificationTag" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> SAFEUTF8STRING
+ | "precedence" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> INTEGER
+ | "authenticationLevel" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> <span class="nt"><authenticationLevel></span>
+ | "itemOrUserFirst" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> <span class="nt"><itemOrUserFirst></span>
+
+<span class="nt"><authenticationLevel></span> ::= "none" | "simple" | "strong"
+
+<span class="nt"><itemOrUserFirst></span> ::=
+ "itemFirst" <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ':' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><itemType></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+'}'
+ |
+ "userFirst" <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ':' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><userType></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+'}'
+
+<span class="nt"><itemType></span> ::=
+ "protectedItems" <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><protectedItem</span><span class="err">?</span><span class="nt">></span> '}' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+ ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><anyItemPermission></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><anyItemPermission</span><span class="err">*</span><span class="nt">></span> '}'
+ |
+ "itemPermissions" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><itemPermissions</span><span class="err">?</span><span class="nt">></span> '}' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+ ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> "protectedItems" <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><protectedItem</span><span class="err">?</span><span class="nt">></span> '}'
+
+<span class="nt"><userType></span> ::=
+ "userClasses" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><userClass</span><span class="err">?</span><span class="nt">></span> '}' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ','
+ <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><anyUserPermission></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><anyUserPermission</span><span class="err">*</span><span class="nt">></span> '}'
+ |
+ "userPermissions" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><userPermissions</span><span class="err">?</span><span class="nt">></span> '}'
+<span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ','
+ <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> "userClasses" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><userClass</span><span class="err">?</span><span class="nt">></span> '}'
+
+<span class="nt"><protectedItem</span><span class="err">?</span><span class="nt">></span> ::= <span class="nt"><protectedItem></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><protectedItem</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><protectedItem</span><span class="err">*</span><span class="nt">></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><protectedItem></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><protectedItem</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><protectedItem></span> ::=
+ "entry"
+ | "allUserAttributeTypes"
+ | "attributeType" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><oid></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><oids></span> '}'
+ | "allAttributeValues" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><oid></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><oids></span> '}'
+ | "allUserAttributeTypesAndValues"
+ | ATTRIBUTE_VALUE_CANDIDATE
+ | "selfValue" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><oid></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><oids></span> '}'
+ | RANGE_OF_VALUES_CANDIDATE
+ | "maxValueCount" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><valueCountType></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '}'
+<span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><maxValueCount</span><span class="err">*</span><span class="nt">></span> '}'
+ | "maxImmSub" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> INTEGER
+ | "restrictedBy" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><typeValueIn></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '}'
+<span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><restrictedValue</span><span class="err">*</span><span class="nt">></span> '}'
+ | "classes" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> <span class="nt"><refinement></span>
+
+<span class="nt"><maxValueCount</span><span class="err">*</span><span class="nt">></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><valueCountType></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '}' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><maxValueCount</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><valueCountType></span> ::=
+ "type" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> <span class="nt"><oid></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> "maxCount" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span>
+INTEGER
+ |
+ "maxCount" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> INTEGER <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> "type" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span>
+<span class="nt"><oid></span>
+
+<span class="nt"><restrictedValue</span><span class="err">*</span><span class="nt">></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><typeValueIn></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '}' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><restrictedValue</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><typeValueIn></span> ::=
+ "type" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> <span class="nt"><oid></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> "valuesIn" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> <span class="nt"><oid></span>
+ |
+ "valuesIn" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> <span class="nt"><oid></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> "type" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> <span class="nt"><oid></span>
+
+<span class="nt"><oids></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><oid></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><oids></span> | e
+
+<span class="nt"><itemPermissions</span><span class="err">?</span><span class="nt">></span> ::= '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><anyItemPermission></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><anyItemPermission</span><span class="err">*</span><span class="nt">></span> '}' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><itemPermissions</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><itemPermissions</span><span class="err">*</span><span class="nt">></span> ::=
+ ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><anyItemPermission></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><anyItemPermission</span><span class="err">*</span><span class="nt">></span> '}' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><itemPermissions</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><anyItemPermission</span><span class="err">*</span><span class="nt">></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><anyItemPermission></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><anyItemPermission</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><anyItemPermission></span> :
+ "precedence" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> <span class="nt"><INTEGER></span>
+ | "userClasses" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><userClass</span><span class="err">?</span><span class="nt">></span> '}'
+ | "grantsAndDenials" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><grantAndDenial</span><span class="err">?</span><span class="nt">></span> '}'
+
+<span class="nt"><grantAndDenial</span><span class="err">?</span><span class="nt">></span> ::= <span class="nt"><grantAndDenial></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><grantAndDenial</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><grantAndDenial</span><span class="err">*</span><span class="nt">></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><grantAndDenial></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><grantAndDenial</span><span class="err">*</span><span class="nt">></span>
+
+<span class="nt"><grantAndDenial></span> :
+ "grantAdd"
+ | "denyAdd"
+ | "grantDiscloseOnError"
+ | "denyDiscloseOnError"
+ | "grantRead"
+ | "denyRead"
+ | "grantRemove"
+ | "denyRemove"
+ | "grantBrowse"
+ | "denyBrowse"
+ | "grantExport"
+ | "denyExport"
+ | "grantImport"
+ | "denyImport"
+ | "grantModify"
+ | "denyModify"
+ | "grantRename"
+ | "denyRename"
+ | "grantReturnDN"
+ | "denyReturnDN"
+ | "grantCompare"
+ | "denyCompare"
+ | "grantFilterMatch"
+ | "denyFilterMatch"
+ | "grantInvoke"
+ | "denyInvoke"
+
+<span class="nt"><userClass</span><span class="err">?</span><span class="nt">></span> ::= <span class="nt"><userClass></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><userClass</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><userClass</span><span class="err">*</span><span class="nt">></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><userClass></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><userClass</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><userClass></span> :
+ "allUsers"
+ | "thisEntry"
+ | "parentOfEntry"
+ | "name" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><distinguishedName></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><name</span><span class="err">*</span><span class="nt">></span> '}'
+ | "userGroup" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><distinguishedName></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><userGroup</span><span class="err">*</span><span class="nt">></span>
+'}'
+ | "subtree" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><subtreeSpecificationComponent</span><span class="err">?</span><span class="nt">></span>
+'}' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><subTree</span><span class="err">*</span><span class="nt">></span> '}'
+
+<span class="nt"><name</span><span class="err">*</span><span class="nt">></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><distinguishedName></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><name</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><userGroup</span><span class="err">*</span><span class="nt">></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><distinguishedName></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><userGroup</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><subTree</span><span class="err">*</span><span class="nt">></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><subtreeSpecificationComponent</span><span class="err">?</span><span class="nt">></span> '}'
+<span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><subTree</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><userPermissions</span><span class="err">?</span><span class="nt">></span> ::= '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><anyUserPermission></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><anyUserPermission</span><span class="err">*</span><span class="nt">></span> '}' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><userPermissions</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><userPermissions</span><span class="err">*</span><span class="nt">></span> ::=
+ ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><anyUserPermission></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><anyUserPermission</span><span class="err">*</span><span class="nt">></span> '}' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><userPermissions</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><anyUserPermission</span><span class="err">*</span><span class="nt">></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><anyUserPermission></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><anyUserPermission</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><anyUserPermission></span> :
+ "precedence" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> <span class="nt"><INTEGER></span>
+ | "protectedItems" <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><protectedItem</span><span class="err">?</span><span class="nt">></span> '}'
+ | "grantsAndDenials" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><grantAndDenial</span><span class="err">?</span><span class="nt">></span> '}'
+
+<span class="nt"><subtreeSpecificationComponent</span><span class="err">?</span><span class="nt">></span> ::= <span class="nt"><subtreeSpecificationComponent></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><subtreeSpecificationComponent</span><span class="err">*</span><span class="nt">></span> | e
+<span class="nt"><subtreeSpecificationComponent</span><span class="err">*</span><span class="nt">></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><subtreeSpecificationComponent></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><subtreeSpecificationComponent</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><subtreeSpecificationComponent></span> :
+ "base" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> <span class="nt"><distinguishedName></span>
+ | "specificExclusions" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> '{' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><specificExclusion</span><span class="err">?</span><span class="nt">></span> '}'
+ | "minimum" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> INTEGER
+ | "maximum" <span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> INTEGER
+
+<span class="nt"><specificExclusion</span><span class="err">?</span><span class="nt">></span> ::= <span class="nt"><specificExclusion></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><specificExclusion</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><specificExclusion</span><span class="err">*</span><span class="nt">></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><specificExclusion></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><specificExclusion</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><specificExclusion></span> ::=
+ "chopBefore" <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ':' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><distinguishedName></span>
+ |
+ "chopAfter" <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ':' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><distinguishedName></span>
+
+<span class="nt"><refinement></span> ::=
+ "item" <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ':' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><oid></span>
+ |
+ "and" <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ':' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><refinements</span><span class="err">?</span><span class="nt">></span> '}'
+ |
+ "or" <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ':' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><refinements</span><span class="err">?</span><span class="nt">></span> '}'
+ |
+ "not" <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ':' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> '{' <span class="nt"><refinements</span><span class="err">?</span><span class="nt">></span> '}'
+
+<span class="nt"><refinements</span><span class="err">?</span><span class="nt">></span> ::= <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><refinements</span><span class="err">?</span><span class="nt">></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><refinement</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><refinement</span><span class="err">*</span><span class="nt">></span> ::= ',' <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><refinement></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> <span class="nt"><refinement</span><span class="err">*</span><span class="nt">></span> | e
+
+<span class="nt"><distinguishedName></span> ::= SAFEUTF8STRING
+
+<span class="nt"><oid></span> ::= DESCR | NUMERICOID
+
+SAFEUTF8CHAR :
+ '\u0001'..'\u0021' |
+ '\u0023'..'\u007F' |
+ '\u00c0'..'\u00d6' |
+ '\u00d8'..'\u00f6' |
+ '\u00f8'..'\u00ff' |
+ '\u0100'..'\u1fff' |
+ '\u3040'..'\u318f' |
+ '\u3300'..'\u337f' |
+ '\u3400'..'\u3d2d' |
+ '\u4e00'..'\u9fff' |
+ '\uf900'..'\ufaff' ;
+
+<span class="nt"><SP</span><span class="err">+</span><span class="nt">></span> ::= <span class="nt"><SP></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> ::= <span class="nt"><SP></span> <span class="nt"><SP</span><span class="err">*</span><span class="nt">></span> | e
+<span class="nt"><SP></span> ::= ' ' | '\t' | '\n' | '\r' ;
+
+ALPHA : 'A'..'Z' | 'a'..'z' ;
+
+<span class="nt"><INTEGER></span> ::= <span class="nt"><DIGIT></span> | <span class="nt"><LDIGIT></span> <span class="nt"><DIGIT></span> <span class="nt"><DIGIT</span><span class="err">*</span><span class="nt">></span>
+<span class="nt"><DIGIT></span> ::= '0' | <span class="nt"><LDIGIT></span> ;
+<span class="nt"><LDIGIT></span> ::= '1'..'9' ;
+<span class="nt"><DIGIT</span><span class="err">*</span><span class="nt">></span> ::= <span class="nt"><DIGIT></span> <span class="nt"><DIGIT</span><span class="err">*</span><span class="nt">></span> | e
+
+HYPHEN : '-' ;
+
+NUMERICOID : INTEGER ( DOT INTEGER )+ ;
+
+DOT : '.' ;
+
+INTEGER_OR_NUMERICOID
+ :
+ ( INTEGER DOT ) => NUMERICOID
+ |
+ INTEGER
+
+SAFEUTF8STRING : '"'! ( SAFEUTF8CHAR )* '"'! ;
+
+DESCR
+ :
+ ( "attributeValue" ( SP! )+ '{' ) =>
+ "attributeValue"! ( SP! )+ '{'! ( options : . )* '}'!
+ | ( "rangeOfValues" ( SP! )+ '(' ) =>
+ "rangeOfValues"! ( SP! )+ FILTER
+ | ALPHA ( ALPHA | DIGIT | HYPHEN )*
+ ;
+
+FILTER : '(' ( ( '<span class="err">&</span>' (SP)* (FILTER)+ ) | ( '|' (SP)* (FILTER)+ ) | ( '!'
+(SP)* FILTER ) | FILTER_VALUE ) ')' (SP)* ;
+
+FILTER_VALUE : (options: ~( ')' | '(' | '<span class="err">&</span>' | '|' | '!' ) ( ~(')') )* ) ;
</pre></div>