Expand my Community achievements bar.

Submissions are now open for the 2026 Adobe Experience Maker Awards.

Are we able to have nested namespaces in AEM?

Avatar

Level 4

We have built a taxonomy in our AEM DAM. Our current setup is using a namespace to bucket all of these tags as a top level bucket. Under that we have buiolt out the tag structure for the rest of our taxonomy, however, the first level of those tags is a category which pairs up to a custom field used for search. So these would technically be "buckets" as well. Is there a way to set these up as namespaces as well but have them be children of the overarching namespace for our organization? It'll be so much cleaner if we can have all of our tags in one place at t he top instead of spread out among 20 or 30 separate namespaces at the root level.

4 Replies

Avatar

Community Advisor

Hi @dmescia2,

I don't think AEM does support true nested namespaces in the tagging system. As tags live under the JCR path: /content/cq:tags and each namespace is just a first-level node under that path, and AEM only recognizes this top-level node as the namespace.

For example:

/content/cq:tags/mycompany    ← namespace
/content/cq:tags/mycompany/brand
/content/cq:tags/mycompany/brand/nike

Here:

  • mycompany is the namespace

  • brand/nike is the tag path

  • All nested tags are just structured tag names under the namespace.

AEM does not support having another namespace inside mycompany, like:

/content/cq:tags/mycompany/category1:nestedtag

This would be invalid - you can't define a namespace like category1 inside mycompany.

To achieve what you want (logical buckets under a single namespace), my reccomendation would be:

Use one namespace (eg. mycompany) and structure tags like:

/content/cq:tags/mycompany/search-category/marketing
/content/cq:tags/mycompany/search-category/product
/content/cq:tags/mycompany/topic/ai
/content/cq:tags/mycompany/topic/healthcare

This way:

  • You have a single namespace at the root.

  • Substructures reflect your taxonomy cleanly (search-category, topic, etc.).

  • You avoid cluttering the root with 30 namespaces.


Santosh Sai

AEM BlogsLinkedIn


Avatar

Level 4

Thats how we have it set up currently. The main reason I was asking if we could nest the second layer is I'm trying to simplify what the end user sees in Content Hub for our tags. When tagging assets or viewing the metadata, currently they see the entire tag path. I was told we can hide the name space but its more complicated if we want to hide the top of the tag string as well. 

For example: currently an end user would see:
company-namespace:tag category/tag-level-1/tag-level-2

 

We can easily show them this:
tag category/tag-level-1/tag-level-2

 

It would be so much cleaner for the end users to see this, given that the tag category is a custom field with the same name:
tag-level-1/tag-level-2

 

Avatar

Community Advisor

IMO, hiding or truncating the parent tag levels (like the tag category) requires deeper customization - particularly in how tags are rendered in:

  • Content Hub

  • Metadata forms

  • Search interfaces or custom UIs

Here is what you can do:

  • Customize tag display in UI components
    In your custom metadata schema or custom search field renderer, you can override how tags are displayed to users. Instead of showing the full path: company-namespace:tag-category/tag-level-1/tag-level-2

    You can extract and display only the leaf path: tag-level-1/tag-level-2

    This may involve:

    • Writing a custom tag renderer using JavaScript or HTL

    • Modifying the metadata schema XML in /conf/global/settings/dam/adminui-extension/metadata

    • Using Granite.ui.form.TagField with multiple and custom formatting logic

  • Use display titles strategically
    While the tagID remains the full path (required for backend reference), you can set user-friendly title values for each tag. That way, even if the full path is used internally, users will only see what matters to them.

  • Flatten display using a mapping
    If the tag category is also a custom metadata field, you can map that in your UI and only show tag levels under that category, effectively hiding the top category path.


Santosh Sai

AEM BlogsLinkedIn


Avatar

Level 4

I can have one of our developers look your suggestion. We are working with someone on your product team for our Content Hub instance and it looks like they were able to nest a namespace in Content Hub but not in Assets.

 

I opened a feature enhancement request regarding this.
https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager-ideas/can-we-have-nested-n...