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">&lt;mainACIItemComponents&gt;</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">&lt;mainACIItemComponent&gt;</span> <span class="o">::=</span> 
-    <span class="s">&quot;identificationTag&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="n">SAFEUTF8STRING</span>
-    <span class="o">|</span> <span class="s">&quot;precedence&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="n">INTEGER</span>
-    <span class="o">|</span> <span class="s">&quot;authenticationLevel&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="sr">&lt;authenticationLevel&gt;</span>
-    <span class="o">|</span> <span class="s">&quot;itemOrUserFirst&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="sr">&lt;itemOrUserFirst&gt;</span>
-
-<span class="sr">&lt;authenticationLevel&gt;</span> <span class="o">::=</span> <span class="s">&quot;none&quot;</span> <span class="o">|</span> <span class="s">&quot;simple&quot;</span> <span class="o">|</span> <span class="s">&quot;strong&quot;</span>
-
-<span class="sr">&lt;itemOrUserFirst&gt;</span> <span class="o">::=</span> 
-           <span class="s">&quot;itemFirst&quot;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;:&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;itemType&gt;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="s">&#39;}&#39;</span> 
-           <span class="o">|</span> 
-           <span class="s">&quot;userFirst&quot;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;:&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;userType&gt;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="s">&#39;}&#39;</span>
-
-<span class="sr">&lt;itemType&gt;</span> <span class="o">::=</span> 
-        <span class="s">&quot;protectedItems&quot;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;protectedItem?&gt;</span> <span class="s">&#39;}&#39;</span> <span class="sr">&lt;SP*&gt;</span> 
-                 <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;anyItemPermission&gt;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;anyItemPermission*&gt;</span> <span class="s">&#39;}&#39;</span>
-        <span class="o">|</span> 
-        <span class="s">&quot;itemPermissions&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;itemPermissions?&gt;</span> <span class="s">&#39;}&#39;</span> <span class="sr">&lt;SP*&gt;</span> 
-                 <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&quot;protectedItems&quot;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;protectedItem?&gt;</span> <span class="s">&#39;}&#39;</span>
-
-<span class="sr">&lt;userType&gt;</span> <span class="o">::=</span> 
-         <span class="s">&quot;userClasses&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;userClass?&gt;</span> <span class="s">&#39;}&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;,&#39;</span> 
-                   <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;anyUserPermission&gt;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;anyUserPermission*&gt;</span> <span class="s">&#39;}&#39;</span>
-          <span class="o">|</span>
-          <span class="s">&quot;userPermissions&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;userPermissions?&gt;</span> <span class="s">&#39;}&#39;</span>
-<span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;,&#39;</span> 
-                   <span class="sr">&lt;SP*&gt;</span> <span class="s">&quot;userClasses&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;userClass?&gt;</span> <span class="s">&#39;}&#39;</span>
-
-<span class="sr">&lt;protectedItem?&gt;</span> <span class="o">::=</span> <span class="sr">&lt;protectedItem&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;protectedItem*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;protectedItem*&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;protectedItem&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;protectedItem*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;protectedItem&gt;</span> <span class="o">::=</span> 
-    <span class="s">&quot;entry&quot;</span>
-    <span class="o">|</span> <span class="s">&quot;allUserAttributeTypes&quot;</span>
-    <span class="o">|</span> <span class="s">&quot;attributeType&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;oid&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;oids&gt;</span> <span class="s">&#39;}&#39;</span>
-    <span class="o">|</span> <span class="s">&quot;allAttributeValues&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;oid&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;oids&gt;</span> <span class="s">&#39;}&#39;</span>
-    <span class="o">|</span> <span class="s">&quot;allUserAttributeTypesAndValues&quot;</span>
-    <span class="o">|</span> <span class="n">ATTRIBUTE_VALUE_CANDIDATE</span>
-    <span class="o">|</span> <span class="s">&quot;selfValue&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;oid&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;oids&gt;</span> <span class="s">&#39;}&#39;</span>
-    <span class="o">|</span> <span class="n">RANGE_OF_VALUES_CANDIDATE</span>
-    <span class="o">|</span> <span class="s">&quot;maxValueCount&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;valueCountType&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;}&#39;</span>
-<span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;maxValueCount*&gt;</span> <span class="s">&#39;}&#39;</span>
-    <span class="o">|</span> <span class="s">&quot;maxImmSub&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="n">INTEGER</span>
-    <span class="o">|</span> <span class="s">&quot;restrictedBy&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;typeValueIn&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;}&#39;</span>
-<span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;restrictedValue*&gt;</span> <span class="s">&#39;}&#39;</span>
-    <span class="o">|</span> <span class="s">&quot;classes&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="sr">&lt;refinement&gt;</span>
-
-<span class="sr">&lt;maxValueCount*&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;valueCountType&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;}&#39;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;maxValueCount*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;valueCountType&gt;</span> <span class="o">::=</span> 
-           <span class="s">&quot;type&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="sr">&lt;oid&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&quot;maxCount&quot;</span> <span class="sr">&lt;SP+&gt;</span>
-<span class="n">INTEGER</span> 
-            <span class="o">|</span> 
-           <span class="s">&quot;maxCount&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="n">INTEGER</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&quot;type&quot;</span> <span class="sr">&lt;SP+&gt;</span>
-<span class="sr">&lt;oid&gt;</span>
-
-<span class="sr">&lt;restrictedValue*&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;typeValueIn&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;}&#39;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;restrictedValue*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;typeValueIn&gt;</span> <span class="o">::=</span>
-        <span class="s">&quot;type&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="sr">&lt;oid&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&quot;valuesIn&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="sr">&lt;oid&gt;</span>
-        <span class="o">|</span>
-        <span class="s">&quot;valuesIn&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="sr">&lt;oid&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&quot;type&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="sr">&lt;oid&gt;</span>
-
-<span class="sr">&lt;oids&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;oid&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;oids&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;itemPermissions?&gt;</span> <span class="o">::=</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;anyItemPermission&gt;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;anyItemPermission*&gt;</span> <span class="s">&#39;}&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;itemPermissions*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;itemPermissions*&gt;</span> <span class="o">::=</span> 
-             <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;anyItemPermission&gt;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;anyItemPermission*&gt;</span> <span class="s">&#39;}&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;itemPermissions*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;anyItemPermission*&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;anyItemPermission&gt;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;anyItemPermission*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;anyItemPermission&gt;</span> <span class="p">:</span>
-    <span class="s">&quot;precedence&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="sr">&lt;INTEGER&gt;</span>
-    <span class="o">|</span> <span class="s">&quot;userClasses&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;userClass?&gt;</span> <span class="s">&#39;}&#39;</span>
-    <span class="o">|</span> <span class="s">&quot;grantsAndDenials&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;grantAndDenial?&gt;</span> <span class="s">&#39;}&#39;</span>
-
-<span class="sr">&lt;grantAndDenial?&gt;</span> <span class="o">::=</span> <span class="sr">&lt;grantAndDenial&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;grantAndDenial*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;grantAndDenial*&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;grantAndDenial&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;grantAndDenial*&gt;</span>
-
-<span class="sr">&lt;grantAndDenial&gt;</span> <span class="p">:</span>
-    <span class="s">&quot;grantAdd&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;denyAdd&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;grantDiscloseOnError&quot;</span>
-    <span class="o">|</span> <span class="s">&quot;denyDiscloseOnError&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;grantRead&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;denyRead&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;grantRemove&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;denyRemove&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;grantBrowse&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;denyBrowse&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;grantExport&quot;</span>
-    <span class="o">|</span> <span class="s">&quot;denyExport&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;grantImport&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;denyImport&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;grantModify&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;denyModify&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;grantRename&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;denyRename&quot;</span>
-    <span class="o">|</span> <span class="s">&quot;grantReturnDN&quot;</span>
-    <span class="o">|</span> <span class="s">&quot;denyReturnDN&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;grantCompare&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;denyCompare&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;grantFilterMatch&quot;</span>
-    <span class="o">|</span> <span class="s">&quot;denyFilterMatch&quot;</span> 
-    <span class="o">|</span> <span class="s">&quot;grantInvoke&quot;</span>
-    <span class="o">|</span> <span class="s">&quot;denyInvoke&quot;</span>
-
-<span class="sr">&lt;userClass?&gt;</span> <span class="o">::=</span> <span class="sr">&lt;userClass&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;userClass*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;userClass*&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;userClass&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;userClass*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;userClass&gt;</span> <span class="p">:</span>
-    <span class="s">&quot;allUsers&quot;</span>
-    <span class="o">|</span> <span class="s">&quot;thisEntry&quot;</span>
-    <span class="o">|</span> <span class="s">&quot;parentOfEntry&quot;</span>
-    <span class="o">|</span> <span class="s">&quot;name&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;distinguishedName&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;name*&gt;</span> <span class="s">&#39;}&#39;</span>
-    <span class="o">|</span> <span class="s">&quot;userGroup&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;distinguishedName&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;userGroup*&gt;</span>
-<span class="s">&#39;}&#39;</span>
-    <span class="o">|</span> <span class="s">&quot;subtree&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;subtreeSpecificationComponent?&gt;</span>
-<span class="s">&#39;}&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;subTree*&gt;</span> <span class="s">&#39;}&#39;</span>
-
-<span class="sr">&lt;name*&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;distinguishedName&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;name*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;userGroup*&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;distinguishedName&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;userGroup*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;subTree*&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;subtreeSpecificationComponent?&gt;</span> <span class="s">&#39;}&#39;</span>
-<span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;subTree*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;userPermissions?&gt;</span> <span class="o">::=</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;anyUserPermission&gt;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;anyUserPermission*&gt;</span> <span class="s">&#39;}&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;userPermissions*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;userPermissions*&gt;</span> <span class="o">::=</span> 
-             <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;anyUserPermission&gt;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;anyUserPermission*&gt;</span> <span class="s">&#39;}&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;userPermissions*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;anyUserPermission*&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;anyUserPermission&gt;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;anyUserPermission*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;anyUserPermission&gt;</span> <span class="p">:</span>
-    <span class="s">&quot;precedence&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="sr">&lt;INTEGER&gt;</span>
-    <span class="o">|</span> <span class="s">&quot;protectedItems&quot;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;protectedItem?&gt;</span> <span class="s">&#39;}&#39;</span>
-    <span class="o">|</span> <span class="s">&quot;grantsAndDenials&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;grantAndDenial?&gt;</span> <span class="s">&#39;}&#39;</span>
-
-<span class="sr">&lt;subtreeSpecificationComponent?&gt;</span> <span class="o">::=</span> <span class="sr">&lt;subtreeSpecificationComponent&gt;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;subtreeSpecificationComponent*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-<span class="sr">&lt;subtreeSpecificationComponent*&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;subtreeSpecificationComponent&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;subtreeSpecificationComponent*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;subtreeSpecificationComponent&gt;</span> <span class="p">:</span>
-    <span class="s">&quot;base&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="sr">&lt;distinguishedName&gt;</span>
-    <span class="o">|</span> <span class="s">&quot;specificExclusions&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;specificExclusion?&gt;</span> <span class="s">&#39;}&#39;</span>
-    <span class="o">|</span> <span class="s">&quot;minimum&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="n">INTEGER</span>
-    <span class="o">|</span> <span class="s">&quot;maximum&quot;</span> <span class="sr">&lt;SP+&gt;</span> <span class="n">INTEGER</span>
-
-<span class="sr">&lt;specificExclusion?&gt;</span> <span class="o">::=</span> <span class="sr">&lt;specificExclusion&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;specificExclusion*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;specificExclusion*&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;specificExclusion&gt;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;specificExclusion*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;specificExclusion&gt;</span> <span class="o">::=</span>
-              <span class="s">&quot;chopBefore&quot;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;:&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;distinguishedName&gt;</span> 
-              <span class="o">|</span> 
-              <span class="s">&quot;chopAfter&quot;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;:&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;distinguishedName&gt;</span>
-
-<span class="sr">&lt;refinement&gt;</span> <span class="o">::=</span> 
-           <span class="s">&quot;item&quot;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;:&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;oid&gt;</span> 
-           <span class="o">|</span> 
-           <span class="s">&quot;and&quot;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;:&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;refinements?&gt;</span> <span class="s">&#39;}&#39;</span>
-           <span class="o">|</span> 
-           <span class="s">&quot;or&quot;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;:&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;refinements?&gt;</span> <span class="s">&#39;}&#39;</span>
-           <span class="o">|</span> 
-           <span class="s">&quot;not&quot;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;:&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="s">&#39;{&#39;</span> <span class="sr">&lt;refinements?&gt;</span> <span class="s">&#39;}&#39;</span>
-
-<span class="sr">&lt;refinements?&gt;</span> <span class="o">::=</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;refinements?&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;refinement*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;refinement*&gt;</span> <span class="o">::=</span> <span class="s">&#39;,&#39;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;refinement&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="sr">&lt;refinement*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="sr">&lt;distinguishedName&gt;</span> <span class="o">::=</span> <span class="n">SAFEUTF8STRING</span>
-
-<span class="sr">&lt;oid&gt;</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">&#39;\u0001&#39;</span><span class="o">..</span><span class="s">&#39;\u0021&#39;</span> <span class="o">|</span>
-    <span class="s">&#39;\u0023&#39;</span><span class="o">..</span><span class="s">&#39;\u007F&#39;</span> <span class="o">|</span>
-    <span class="s">&#39;\u00c0&#39;</span><span class="o">..</span><span class="s">&#39;\u00d6&#39;</span> <span class="o">|</span>
-    <span class="s">&#39;\u00d8&#39;</span><span class="o">..</span><span class="s">&#39;\u00f6&#39;</span> <span class="o">|</span>
-    <span class="s">&#39;\u00f8&#39;</span><span class="o">..</span><span class="s">&#39;\u00ff&#39;</span> <span class="o">|</span>
-    <span class="s">&#39;\u0100&#39;</span><span class="o">..</span><span class="s">&#39;\u1fff&#39;</span> <span class="o">|</span>
-    <span class="s">&#39;\u3040&#39;</span><span class="o">..</span><span class="s">&#39;\u318f&#39;</span> <span class="o">|</span>
-    <span class="s">&#39;\u3300&#39;</span><span class="o">..</span><span class="s">&#39;\u337f&#39;</span> <span class="o">|</span>
-    <span class="s">&#39;\u3400&#39;</span><span class="o">..</span><span class="s">&#39;\u3d2d&#39;</span> <span class="o">|</span>
-    <span class="s">&#39;\u4e00&#39;</span><span class="o">..</span><span class="s">&#39;\u9fff&#39;</span> <span class="o">|</span>
-    <span class="s">&#39;\uf900&#39;</span><span class="o">..</span><span class="s">&#39;\ufaff&#39;</span> <span class="p">;</span>
-
-<span class="sr">&lt;SP+&gt;</span> <span class="o">::=</span> <span class="sr">&lt;SP&gt;</span> <span class="sr">&lt;SP*&gt;</span>
-<span class="sr">&lt;SP*&gt;</span> <span class="o">::=</span> <span class="sr">&lt;SP&gt;</span> <span class="sr">&lt;SP*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-<span class="sr">&lt;SP&gt;</span> <span class="o">::=</span> <span class="s">&#39; &#39;</span> <span class="o">|</span> <span class="s">&#39;\t&#39;</span> <span class="o">|</span> <span class="s">&#39;\n&#39;</span> <span class="o">|</span> <span class="s">&#39;\r&#39;</span> <span class="p">;</span>
-
-<span class="n">ALPHA</span> <span class="p">:</span> <span class="s">&#39;A&#39;</span><span class="o">..</span><span class="s">&#39;Z&#39;</span> <span class="o">|</span> <span class="s">&#39;a&#39;</span><span class="o">..</span><span class="s">&#39;z&#39;</span> <span class="p">;</span>
-
-<span class="sr">&lt;INTEGER&gt;</span> <span class="o">::=</span> <span class="sr">&lt;DIGIT&gt;</span> <span class="o">|</span> <span class="sr">&lt;LDIGIT&gt;</span> <span class="sr">&lt;DIGIT&gt;</span> <span class="sr">&lt;DIGIT*&gt;</span>
-<span class="sr">&lt;DIGIT&gt;</span> <span class="o">::=</span> <span class="s">&#39;0&#39;</span> <span class="o">|</span> <span class="sr">&lt;LDIGIT&gt;</span> <span class="p">;</span>
-<span class="sr">&lt;LDIGIT&gt;</span> <span class="o">::=</span> <span class="s">&#39;1&#39;</span><span class="o">..</span><span class="s">&#39;9&#39;</span> <span class="p">;</span>
-<span class="sr">&lt;DIGIT*&gt;</span> <span class="o">::=</span> <span class="sr">&lt;DIGIT&gt;</span> <span class="sr">&lt;DIGIT*&gt;</span> <span class="o">|</span> <span class="n">e</span>
-
-<span class="n">HYPHEN</span> <span class="p">:</span> <span class="s">&#39;-&#39;</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">&#39;.&#39;</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">=&gt;</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">&#39;&quot;&#39;</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">&#39;&quot;&#39;</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">&quot;attributeValue&quot;</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">&#39;{&#39;</span> <span class="p">)</span> <span class="o">=&gt;</span>
-      <span class="s">&quot;attributeValue&quot;</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">&#39;{&#39;</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">&#39;}&#39;</span><span class="o">!</span>
-    <span class="o">|</span> <span class="p">(</span> <span class="s">&quot;rangeOfValues&quot;</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">&#39;(&#39;</span> <span class="p">)</span> <span class="o">=&gt;</span>
-      <span class="s">&quot;rangeOfValues&quot;</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">&lt;wrapperEntryPoint&gt;</span> ::= <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;mainACIItemComponent&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;mainACIItemComponents&gt;</span> &#39;}&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> EOF
 
-<span class="n">FILTER</span> <span class="p">:</span> <span class="s">&#39;(&#39;</span> <span class="p">(</span> <span class="p">(</span> <span class="s">&#39;&amp;&#39;</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">&#39;|&#39;</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">&#39;!&#39;</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">&#39;)&#39;</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">&lt;mainACIItemComponents&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;mainACIItemComponent&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;mainACIItemComponents&gt;</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">&#39;)&#39;</span> <span class="o">|</span> <span class="s">&#39;(&#39;</span> <span class="o">|</span> <span class="s">&#39;&amp;&#39;</span> <span class="o">|</span> <span class="s">&#39;|&#39;</span> <span class="o">|</span> <span class="s">&#39;!&#39;</span> <span class="p">)</span> <span class="p">(</span> <span class="o">~</span><span class="p">(</span><span class="s">&#39;)&#39;</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">&lt;mainACIItemComponent&gt;</span> ::= 
+    &quot;identificationTag&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> SAFEUTF8STRING
+    | &quot;precedence&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> INTEGER
+    | &quot;authenticationLevel&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> <span class="nt">&lt;authenticationLevel&gt;</span>
+    | &quot;itemOrUserFirst&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> <span class="nt">&lt;itemOrUserFirst&gt;</span>
+
+<span class="nt">&lt;authenticationLevel&gt;</span> ::= &quot;none&quot; | &quot;simple&quot; | &quot;strong&quot;
+
+<span class="nt">&lt;itemOrUserFirst&gt;</span> ::= 
+           &quot;itemFirst&quot; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;:&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;itemType&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+&#39;}&#39; 
+           | 
+           &quot;userFirst&quot; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;:&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;userType&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+&#39;}&#39;
+
+<span class="nt">&lt;itemType&gt;</span> ::= 
+        &quot;protectedItems&quot; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;protectedItem</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> 
+                 &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;anyItemPermission&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;anyItemPermission</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39;
+        | 
+        &quot;itemPermissions&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;itemPermissions</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> 
+                 &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &quot;protectedItems&quot; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;protectedItem</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39;
+
+<span class="nt">&lt;userType&gt;</span> ::= 
+         &quot;userClasses&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;userClass</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;,&#39; 
+                   <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;anyUserPermission&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;anyUserPermission</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39;
+          |
+          &quot;userPermissions&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;userPermissions</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39;
+<span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;,&#39; 
+                   <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &quot;userClasses&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;userClass</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39;
+
+<span class="nt">&lt;protectedItem</span><span class="err">?</span><span class="nt">&gt;</span> ::= <span class="nt">&lt;protectedItem&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;protectedItem</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;protectedItem</span><span class="err">*</span><span class="nt">&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;protectedItem&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;protectedItem</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;protectedItem&gt;</span> ::= 
+    &quot;entry&quot;
+    | &quot;allUserAttributeTypes&quot;
+    | &quot;attributeType&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;oid&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;oids&gt;</span> &#39;}&#39;
+    | &quot;allAttributeValues&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;oid&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;oids&gt;</span> &#39;}&#39;
+    | &quot;allUserAttributeTypesAndValues&quot;
+    | ATTRIBUTE_VALUE_CANDIDATE
+    | &quot;selfValue&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;oid&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;oids&gt;</span> &#39;}&#39;
+    | RANGE_OF_VALUES_CANDIDATE
+    | &quot;maxValueCount&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;valueCountType&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39;
+<span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;maxValueCount</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39;
+    | &quot;maxImmSub&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> INTEGER
+    | &quot;restrictedBy&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;typeValueIn&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39;
+<span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;restrictedValue</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39;
+    | &quot;classes&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> <span class="nt">&lt;refinement&gt;</span>
+
+<span class="nt">&lt;maxValueCount</span><span class="err">*</span><span class="nt">&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;valueCountType&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;maxValueCount</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;valueCountType&gt;</span> ::= 
+           &quot;type&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> <span class="nt">&lt;oid&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &quot;maxCount&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span>
+INTEGER 
+            | 
+           &quot;maxCount&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> INTEGER <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &quot;type&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span>
+<span class="nt">&lt;oid&gt;</span>
+
+<span class="nt">&lt;restrictedValue</span><span class="err">*</span><span class="nt">&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;typeValueIn&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;restrictedValue</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;typeValueIn&gt;</span> ::=
+        &quot;type&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> <span class="nt">&lt;oid&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &quot;valuesIn&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> <span class="nt">&lt;oid&gt;</span>
+        |
+        &quot;valuesIn&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> <span class="nt">&lt;oid&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &quot;type&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> <span class="nt">&lt;oid&gt;</span>
+
+<span class="nt">&lt;oids&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;oid&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;oids&gt;</span> | e
+
+<span class="nt">&lt;itemPermissions</span><span class="err">?</span><span class="nt">&gt;</span> ::= &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;anyItemPermission&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;anyItemPermission</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;itemPermissions</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;itemPermissions</span><span class="err">*</span><span class="nt">&gt;</span> ::= 
+             &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;anyItemPermission&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;anyItemPermission</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;itemPermissions</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;anyItemPermission</span><span class="err">*</span><span class="nt">&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;anyItemPermission&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;anyItemPermission</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;anyItemPermission&gt;</span> :
+    &quot;precedence&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> <span class="nt">&lt;INTEGER&gt;</span>
+    | &quot;userClasses&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;userClass</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39;
+    | &quot;grantsAndDenials&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;grantAndDenial</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39;
+
+<span class="nt">&lt;grantAndDenial</span><span class="err">?</span><span class="nt">&gt;</span> ::= <span class="nt">&lt;grantAndDenial&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;grantAndDenial</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;grantAndDenial</span><span class="err">*</span><span class="nt">&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;grantAndDenial&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;grantAndDenial</span><span class="err">*</span><span class="nt">&gt;</span>
+
+<span class="nt">&lt;grantAndDenial&gt;</span> :
+    &quot;grantAdd&quot; 
+    | &quot;denyAdd&quot; 
+    | &quot;grantDiscloseOnError&quot;
+    | &quot;denyDiscloseOnError&quot; 
+    | &quot;grantRead&quot; 
+    | &quot;denyRead&quot; 
+    | &quot;grantRemove&quot; 
+    | &quot;denyRemove&quot; 
+    | &quot;grantBrowse&quot; 
+    | &quot;denyBrowse&quot; 
+    | &quot;grantExport&quot;
+    | &quot;denyExport&quot; 
+    | &quot;grantImport&quot; 
+    | &quot;denyImport&quot; 
+    | &quot;grantModify&quot; 
+    | &quot;denyModify&quot; 
+    | &quot;grantRename&quot; 
+    | &quot;denyRename&quot;
+    | &quot;grantReturnDN&quot;
+    | &quot;denyReturnDN&quot; 
+    | &quot;grantCompare&quot; 
+    | &quot;denyCompare&quot; 
+    | &quot;grantFilterMatch&quot;
+    | &quot;denyFilterMatch&quot; 
+    | &quot;grantInvoke&quot;
+    | &quot;denyInvoke&quot;
+
+<span class="nt">&lt;userClass</span><span class="err">?</span><span class="nt">&gt;</span> ::= <span class="nt">&lt;userClass&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;userClass</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;userClass</span><span class="err">*</span><span class="nt">&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;userClass&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;userClass</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;userClass&gt;</span> :
+    &quot;allUsers&quot;
+    | &quot;thisEntry&quot;
+    | &quot;parentOfEntry&quot;
+    | &quot;name&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;distinguishedName&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;name</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39;
+    | &quot;userGroup&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;distinguishedName&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;userGroup</span><span class="err">*</span><span class="nt">&gt;</span>
+&#39;}&#39;
+    | &quot;subtree&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;subtreeSpecificationComponent</span><span class="err">?</span><span class="nt">&gt;</span>
+&#39;}&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;subTree</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39;
+
+<span class="nt">&lt;name</span><span class="err">*</span><span class="nt">&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;distinguishedName&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;name</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;userGroup</span><span class="err">*</span><span class="nt">&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;distinguishedName&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;userGroup</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;subTree</span><span class="err">*</span><span class="nt">&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;subtreeSpecificationComponent</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39;
+<span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;subTree</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;userPermissions</span><span class="err">?</span><span class="nt">&gt;</span> ::= &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;anyUserPermission&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;anyUserPermission</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;userPermissions</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;userPermissions</span><span class="err">*</span><span class="nt">&gt;</span> ::= 
+             &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;anyUserPermission&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;anyUserPermission</span><span class="err">*</span><span class="nt">&gt;</span> &#39;}&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;userPermissions</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;anyUserPermission</span><span class="err">*</span><span class="nt">&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;anyUserPermission&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;anyUserPermission</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;anyUserPermission&gt;</span> :
+    &quot;precedence&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> <span class="nt">&lt;INTEGER&gt;</span>
+    | &quot;protectedItems&quot; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;protectedItem</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39;
+    | &quot;grantsAndDenials&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;grantAndDenial</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39;
+
+<span class="nt">&lt;subtreeSpecificationComponent</span><span class="err">?</span><span class="nt">&gt;</span> ::= <span class="nt">&lt;subtreeSpecificationComponent&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;subtreeSpecificationComponent</span><span class="err">*</span><span class="nt">&gt;</span> | e
+<span class="nt">&lt;subtreeSpecificationComponent</span><span class="err">*</span><span class="nt">&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;subtreeSpecificationComponent&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;subtreeSpecificationComponent</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;subtreeSpecificationComponent&gt;</span> :
+    &quot;base&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> <span class="nt">&lt;distinguishedName&gt;</span>
+    | &quot;specificExclusions&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;specificExclusion</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39;
+    | &quot;minimum&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> INTEGER
+    | &quot;maximum&quot; <span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> INTEGER
+
+<span class="nt">&lt;specificExclusion</span><span class="err">?</span><span class="nt">&gt;</span> ::= <span class="nt">&lt;specificExclusion&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;specificExclusion</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;specificExclusion</span><span class="err">*</span><span class="nt">&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;specificExclusion&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;specificExclusion</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;specificExclusion&gt;</span> ::=
+              &quot;chopBefore&quot; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;:&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;distinguishedName&gt;</span> 
+              | 
+              &quot;chopAfter&quot; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;:&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;distinguishedName&gt;</span>
+
+<span class="nt">&lt;refinement&gt;</span> ::= 
+           &quot;item&quot; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;:&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;oid&gt;</span> 
+           | 
+           &quot;and&quot; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;:&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;refinements</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39;
+           | 
+           &quot;or&quot; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;:&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;refinements</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39;
+           | 
+           &quot;not&quot; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;:&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> &#39;{&#39; <span class="nt">&lt;refinements</span><span class="err">?</span><span class="nt">&gt;</span> &#39;}&#39;
+
+<span class="nt">&lt;refinements</span><span class="err">?</span><span class="nt">&gt;</span> ::= <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;refinements</span><span class="err">?</span><span class="nt">&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;refinement</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;refinement</span><span class="err">*</span><span class="nt">&gt;</span> ::= &#39;,&#39; <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;refinement&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> <span class="nt">&lt;refinement</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+<span class="nt">&lt;distinguishedName&gt;</span> ::= SAFEUTF8STRING
+
+<span class="nt">&lt;oid&gt;</span> ::= DESCR | NUMERICOID
+
+SAFEUTF8CHAR :
+    &#39;\u0001&#39;..&#39;\u0021&#39; |
+    &#39;\u0023&#39;..&#39;\u007F&#39; |
+    &#39;\u00c0&#39;..&#39;\u00d6&#39; |
+    &#39;\u00d8&#39;..&#39;\u00f6&#39; |
+    &#39;\u00f8&#39;..&#39;\u00ff&#39; |
+    &#39;\u0100&#39;..&#39;\u1fff&#39; |
+    &#39;\u3040&#39;..&#39;\u318f&#39; |
+    &#39;\u3300&#39;..&#39;\u337f&#39; |
+    &#39;\u3400&#39;..&#39;\u3d2d&#39; |
+    &#39;\u4e00&#39;..&#39;\u9fff&#39; |
+    &#39;\uf900&#39;..&#39;\ufaff&#39; ;
+
+<span class="nt">&lt;SP</span><span class="err">+</span><span class="nt">&gt;</span> ::= <span class="nt">&lt;SP&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> ::= <span class="nt">&lt;SP&gt;</span> <span class="nt">&lt;SP</span><span class="err">*</span><span class="nt">&gt;</span> | e
+<span class="nt">&lt;SP&gt;</span> ::= &#39; &#39; | &#39;\t&#39; | &#39;\n&#39; | &#39;\r&#39; ;
+
+ALPHA : &#39;A&#39;..&#39;Z&#39; | &#39;a&#39;..&#39;z&#39; ;
+
+<span class="nt">&lt;INTEGER&gt;</span> ::= <span class="nt">&lt;DIGIT&gt;</span> | <span class="nt">&lt;LDIGIT&gt;</span> <span class="nt">&lt;DIGIT&gt;</span> <span class="nt">&lt;DIGIT</span><span class="err">*</span><span class="nt">&gt;</span>
+<span class="nt">&lt;DIGIT&gt;</span> ::= &#39;0&#39; | <span class="nt">&lt;LDIGIT&gt;</span> ;
+<span class="nt">&lt;LDIGIT&gt;</span> ::= &#39;1&#39;..&#39;9&#39; ;
+<span class="nt">&lt;DIGIT</span><span class="err">*</span><span class="nt">&gt;</span> ::= <span class="nt">&lt;DIGIT&gt;</span> <span class="nt">&lt;DIGIT</span><span class="err">*</span><span class="nt">&gt;</span> | e
+
+HYPHEN : &#39;-&#39; ;
+
+NUMERICOID : INTEGER ( DOT INTEGER )+ ;
+
+DOT : &#39;.&#39; ;
+
+INTEGER_OR_NUMERICOID
+    :
+    ( INTEGER DOT ) =&gt; NUMERICOID
+    |
+    INTEGER
+
+SAFEUTF8STRING : &#39;&quot;&#39;! ( SAFEUTF8CHAR )* &#39;&quot;&#39;! ;
+
+DESCR 
+    :
+    ( &quot;attributeValue&quot; ( SP! )+ &#39;{&#39; ) =&gt;
+      &quot;attributeValue&quot;! ( SP! )+ &#39;{&#39;! ( options : . )* &#39;}&#39;!
+    | ( &quot;rangeOfValues&quot; ( SP! )+ &#39;(&#39; ) =&gt;
+      &quot;rangeOfValues&quot;! ( SP! )+ FILTER
+    | ALPHA ( ALPHA | DIGIT | HYPHEN )*
+    ;
+
+FILTER : &#39;(&#39; ( ( &#39;<span class="err">&amp;</span>&#39; (SP)* (FILTER)+ ) | ( &#39;|&#39; (SP)* (FILTER)+ ) | ( &#39;!&#39;
+(SP)* FILTER ) | FILTER_VALUE ) &#39;)&#39; (SP)* ;
+
+FILTER_VALUE : (options: ~( &#39;)&#39; | &#39;(&#39; | &#39;<span class="err">&amp;</span>&#39; | &#39;|&#39; | &#39;!&#39; ) ( ~(&#39;)&#39;) )* ) ;
 </pre></div>