The TaxonomyService is used to sort documents to ease searches when browsing documents online. It provides a multi-dimensional set of paths to find a document. In many cases, you can get your content by using different category paths. Therefore, after creating a document somewhere in the repository, it is possible to categorize it by adding several taxonomy references. By browsing the taxonomy tree, it will be possible to find the referencing article and display them as if they were children of the taxonomy nodes. Taxonomies are stored in the JCR itself and the JCR Reference functionality is used to provide that advanced WCM feature.
The tree of taxonomies can be managed simply, such as copying/cutting/pasting nodes, or adding and removing taxonomies from the tree. Once a taxonomy has been added, any user who has access to the "Manage Categories" icon from his/her view can then browse the taxonomy tree and refer one of its nodes to the created documents.

{code}
<component>
	  <key>org.exoplatform.services.cms.taxonomy.TaxonomyService</key>
	  <type>org.exoplatform.services.cms.taxonomy.impl.TaxonomyServiceImpl</type>
	  <init-params>
      <object-param>
        <name>defaultPermission.configuration</name>
	        <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyTreeDefaultUserPermission">
	          <field name="permissions">
	            <collection type="java.util.ArrayList">
	              <value>
	                <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyTreeDefaultUserPermission$Permission">
	                  <field name="identity"><string>*:/platform/administrators</string></field>
	                  <field name="read"><string>true</string></field>
	                  <field name="addNode"><string>true</string></field>
	                  <field name="setProperty"><string>true</string></field>
	                  <field name="remove"><string>true</string></field>
	                </object>
	              </value>
                <value>
                  <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyTreeDefaultUserPermission$Permission">
                    <field name="identity"><string>*:/platform/users</string></field>
                    <field name="read"><string>true</string></field>
                    <field name="addNode"><string>true</string></field>
                    <field name="setProperty"><string>true</string></field>
                    <field name="remove"><string>false</string></field>
                  </object>
                </value>
	            </collection>
	          </field>
	        </object>
      </object-param>
	  </init-params>

</component>
{code}

*Details*:
*Object type*: _org.exoplatform.services.cms.taxonomy.impl.TaxonomyTreeDefaultUserPermission_

|| Field name || Collection type || Description ||
| *permissions* |{{java.util.ArrayList<TaxonomyTreeDefaultUserPermission$Permission>}} |The list of the default user permissions to access the taxonomy tree. |

*Object type*: _org.exoplatform.services.cms.taxonomy.impl.TaxonomyTreeDefaultUserPermission$Permission_

|| *Field name*|| *Type* || *Default value*|| *Description* ||
| *identity* | String |{noformat}*:/platform/administrators{noformat}| The name of a user or a group. |
| *read* |Boolean |true|The permission to read the taxonomy tree. |
| *addNode* | Boolean | true|The permission to add a node to the taxonomy tree. |
| *setProperty* | Boolean |true|The permission to set properties for a node in the taxonomy tree . |
| *remove* | Boolean | true|The permission to remove a node from the taxonomy tree. |

