Repository: rdmorganiser/rdmo (language: python)

Issue:
add breadcrumb navigation to header of project_questions
this is an implementation for https://github.com/rdmorganiser/rdmo/issues/496

I left the header text "Questionnaire" and added the breadcrumb just below it in [project_questions_head.html](rdmo/projects/templates/projects/project_questions_head.html) ..

Ive added a tiny bit of js because I could not find the right argument to give to `.jump()` to jump the current section in the interview.
Inside the if-block of [project_questions/services.js](rdmo/projects/static/projects/js/project_questions/services.js) line 805 in service.jump :
```js  
// jump to first questionset of the section in breadcrumb
let section_from_service = service.project.catalog.sections.find(x => x.id === section.id)
service.initView(section_from_service.questionsets[0].id);
```
in [project_questions_head.html](rdmo/projects/templates/projects/project_questions_head.html)
```html
<a href="" ng-click="service.jump(service.questionset.section)">
<span> {$ service.questionset.section.title $} </span>
</a>
```
Add external contributors
I tried to separate software and content contributions; please check and in case move names


Discussion / hints:

Fix patch:
diff --git a/AUTHORS b/AUTHORS
index bf7cd02b7b..1acbf4a0b6 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -5,13 +5,14 @@ The core developers are:
     Jochen Klar <mail@jochenklar.de>
     Olaf Michaelis <omichaelis@aip.de>
 
-We apreciate contributions from:
+We appreciate contributions from:
 
     Harry Enke
     Johannes Frenzel
     Martin Heger
     Stefan Kellendonk
     Giacomo Lanza
+    David Martínez Muñoz
     Daniel Mietchen
     Dario Pilori
     Thomas Schneider
@@ -19,6 +20,7 @@ We apreciate contributions from:
     Janine Straka
     Paul Sutter
     Robert Ulrich
+    David Wallace
 
 The development of RDMO was supported by the following institutions:
 
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 18d426c48f..08e5d98c35 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,25 @@
 # Changelog
 
+## RDMO 1.9.0 (Nov 28, 2022)
+
+* Automatically update existing projects on saving of views
+  * Remove views from projects if they are not available for this site and group anymore
+  * PROJECT_REMOVE_VIEWS = False disables this new behavior
+* Improve interview interface
+  * Add a "breadcrumb" element with the project and the section
+  * Remove "Questionnaire" headline
+* Change list separation in views from ","" to ";"
+* Add filter for current site to catalog management
+* Add checkboxes to hide/show URI in catalog management
+* Add owners to Snapshot Admin
+* Add additional fields to Api
+* Add potential views to project context data
+* Fix import with different URI prefixes
+* Fix CSV export
+* Fix delete profile form
+* Fix non-deletable questionsets-in-questionsets
+* Fix missing redirect after login when allauth is not used
+
 ## RDMO 1.8.2 (Aug 01, 2022)
 
 * Add Spanish translation
diff --git a/README.md b/README.md
index 6e140735f8..1530933b7a 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,12 @@
 RDMO - Research Data Management Organiser
 =========================================
 
+[![Latest release](https://img.shields.io/pypi/v/rdmo.svg?style=flat)](https://pypi.python.org/pypi/rdmo/)
+[![Python Version: 3.6|3.7|3.8|3.9|3.10](https://img.shields.io/badge/python-3.6|3.7|3.8|3.9|3.10-blue)](https://www.python.org/)
+[![License](http://img.shields.io/badge/license-APACHE-blue.svg?style=flat)](https://github.com/rdmorganiser/rdmo/blob/master/LICENSE)
 [![pytest Workflow Status](https://github.com/rdmorganiser/rdmo/actions/workflows/pytest.yml/badge.svg)](https://github.com/rdmorganiser/rdmo/actions/workflows/pytest.yml)
 [![Coverage Status](https://coveralls.io/repos/rdmorganiser/rdmo/badge.svg?branch=master&service=github)](https://coveralls.io/github/rdmorganiser/rdmo?branch=master)
-[![Latest Version](https://img.shields.io/pypi/v/rdmo.svg?style=flat)](https://pypi.python.org/pypi/rdmo/)
 [![Documentation status](https://readthedocs.org/projects/rdmo/badge/?version=latest)](http://rdmo.readthedocs.io/en/latest/?badge=latest)
-[![License](http://img.shields.io/badge/license-APACHE-blue.svg?style=flat)](https://github.com/rdmorganiser/rdmo/blob/master/LICENSE)
-[![Updates](https://pyup.io/repos/github/rdmorganiser/rdmo/shield.svg)](https://pyup.io/repos/github/rdmorganiser/rdmo/)
 
 RDMO is a tool to support the systematic planning, organisation and implementation of the data management throughout the course of a research project. RDMO is funded by the Deutsche Forschungsgemeinschaft (DFG).
 
diff --git a/rdmo/accounts/serializers/v1.py b/rdmo/accounts/serializers/v1.py
index dc9cb25a44..c78bb001c8 100644
--- a/rdmo/accounts/serializers/v1.py
+++ b/rdmo/accounts/serializers/v1.py
@@ -74,5 +74,7 @@ class Meta:
                 'username',
                 'first_name',
                 'last_name',
-                'email'
+                'email',
+                'last_login',
+                'date_joined',
             ]
diff --git a/rdmo/accounts/templates/account/login_form.html b/rdmo/accounts/templates/account/login_form.html
index 86342cee5d..7250b1df2b 100644
--- a/rdmo/accounts/templates/account/login_form.html
+++ b/rdmo/accounts/templates/account/login_form.html
@@ -13,6 +13,8 @@
 
     {% if redirect_field_value %}
     <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
+    {% elif next %}
+    <input type="hidden" name="next" value="{{ next }}" />
     {% endif %}
 
     {% include 'core/bootstrap_form_fields.html' %}
diff --git a/rdmo/accounts/templates/profile/profile_update_form.html b/rdmo/accounts/templates/profile/profile_update_form.html
index 039d06a0d6..437e6aa4c9 100644
--- a/rdmo/accounts/templates/profile/profile_update_form.html
+++ b/rdmo/accounts/templates/profile/profile_update_form.html
@@ -25,10 +25,10 @@ <h1>{% trans "Update profile" %}</h1>
         <input type="submit" name="cancel" value="{% trans 'Cancel' %}" class="btn" />
     </form>
 
-    <h2>{% trans "Delete profile" %}</h2>
-
     {% if settings.PROFILE_DELETE  %}
 
+    <h2>{% trans "Delete profile" %}</h2>
+
     <p>
         {% trans 'If you want to remove all your account information please proceed by clicking the button below.' %}
     </p>
diff --git a/rdmo/accounts/views.py b/rdmo/accounts/views.py
index 26ac7dbba6..6a503d6433 100644
--- a/rdmo/accounts/views.py
+++ b/rdmo/accounts/views.py
@@ -23,7 +23,7 @@ def profile_update(request):
 
         if request.method == 'POST':
             if 'cancel' in request.POST:
-                log.debug('User %s uldate cancelled', request.user.username)
+                log.debug('User %s update cancelled', request.user.username)
                 return HttpResponseRedirect(get_next(request))
 
             if form.is_valid():
diff --git a/rdmo/core/constants.py b/rdmo/core/constants.py
index f5be7b34ff..9a8d6a4f0d 100644
--- a/rdmo/core/constants.py
+++ b/rdmo/core/constants.py
@@ -55,3 +55,12 @@
         'views.add_view', 'views.change_view', 'views.delete_view'
     )
 }
+
+IMPORT_SORT_ORDER = (
+    'domain',
+    'conditions',
+    'options',
+    'questions',
+    'tasks',
+    'views'
+)
diff --git a/rdmo/core/settings.py b/rdmo/core/settings.py
index 2b257f4369..d1446a1e96 100644
--- a/rdmo/core/settings.py
+++ b/rdmo/core/settings.py
@@ -172,6 +172,7 @@
 }
 
 SETTINGS_EXPORT = [
+    'SITE_ID',
     'LOGIN_URL',
     'LOGOUT_URL',
     'ACCOUNT',
@@ -280,6 +281,8 @@
 
 PROJECT_SEND_INVITE = True
 
+PROJECT_REMOVE_VIEWS = True
+
 NESTED_PROJECTS = True
 
 OPTIONSET_PROVIDERS = []
diff --git a/rdmo/core/templates/core/base_head.html b/rdmo/core/templates/core/base_head.html
index 793d52a018..ab9059a438 100644
--- a/rdmo/core/templates/core/base_head.html
+++ b/rdmo/core/templates/core/base_head.html
@@ -12,6 +12,7 @@
 
     <meta name='baseurl' content="{% url 'home' %}" />
     <meta name='staticurl' content="{% static '' %}" />
+    <meta name='site_id' content="{{ settings.SITE_ID }}" />
 
     <link rel="shortcut icon" href="{% static 'core/img/favicon.png' %}" type="image/png" />
 
diff --git a/rdmo/core/xml.py b/rdmo/core/xml.py
index 7961202453..7f517c1df6 100644
--- a/rdmo/core/xml.py
+++ b/rdmo/core/xml.py
@@ -3,6 +3,9 @@
 
 import defusedxml.ElementTree as ET
 
+from .constants import IMPORT_SORT_ORDER
+
+
 log = logging.getLogger(__name__)
 
 
@@ -49,7 +52,7 @@ def flat_xml_to_elements(treenode):
 
         elements.append(element)
 
-    elements = sort_elements_by_key(elements, 'uri')
+    elements = sorted(elements, key=sort_elements)
     return elements
 
 
@@ -92,5 +95,13 @@ def filter_elements_by_type(elements, element_type):
             yield element
 
 
-def sort_elements_by_key(dictlist, key, reverse=False):
-    return sorted(dictlist, key=lambda k: k[key], reverse=reverse)
+def sort_elements(element):
+    # remove the uri_prefix from the uri to create the key to be sorted by
+    sort_key = element['uri'].replace(element['uri_prefix'], '')
+
+    # remove the app name from the sort_key and replace it by its import order
+    for i, item in enumerate(IMPORT_SORT_ORDER):
+        if sort_key.startswith(item):
+            sort_key = sort_key.replace(item, str(i))
+
+    return sort_key
diff --git a/rdmo/locale/de/LC_MESSAGES/django.mo b/rdmo/locale/de/LC_MESSAGES/django.mo
index 48748cedf6..35c06f6a49 100644
Binary files a/rdmo/locale/de/LC_MESSAGES/django.mo and b/rdmo/locale/de/LC_MESSAGES/django.mo differ
diff --git a/rdmo/locale/de/LC_MESSAGES/django.po b/rdmo/locale/de/LC_MESSAGES/django.po
index f48fa9065d..69d4d2fad3 100644
--- a/rdmo/locale/de/LC_MESSAGES/django.po
+++ b/rdmo/locale/de/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: RDMO\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-29 11:51+0200\n"
-"PO-Revision-Date: 2022-07-29 13:45+0200\n"
+"POT-Creation-Date: 2022-11-28 11:07+0100\n"
+"PO-Revision-Date: 2022-11-28 11:11+0100\n"
 "Last-Translator: Jochen Klar <jklar@aip.de>\n"
 "Language-Team: RDMO <rdmo-team@listserv.dfn.de>\n"
 "Language: de\n"
@@ -322,11 +322,11 @@ msgstr "Bestätigen"
 #: accounts/templates/account/email_confirm.html:29
 #, python-format
 msgid ""
-"This e-mail confirmation link expired or is invalid. Please <a href="
-"\"%(email_url)s\">issue a new e-mail confirmation request</a>."
+"This e-mail confirmation link expired or is invalid. Please <a "
+"href=\"%(email_url)s\">issue a new e-mail confirmation request</a>."
 msgstr ""
-"Dieser Bestätigungs-Link ist abgelaufen oder ungültig. Bitte <a href="
-"\"%(email_url)s\">fordern sie eine neue Betätigungs-E-Mail an</a>."
+"Dieser Bestätigungs-Link ist abgelaufen oder ungültig. Bitte <a "
+"href=\"%(email_url)s\">fordern sie eine neue Betätigungs-E-Mail an</a>."
 
 #: accounts/templates/account/login.html:6
 #: accounts/templates/account/login_form.html:20
@@ -343,17 +343,17 @@ msgstr "Mit Shibboleth einloggen"
 #: accounts/templates/account/login_form_account.html:7
 #, python-format
 msgid ""
-"If you have not created an account yet, then please <a href=\"%(signup_url)s"
-"\">sign up</a> first."
+"If you have not created an account yet, then please <a "
+"href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
-"Falls Sie noch kein Benutzerkonto haben, <a href=\"%(signup_url)s"
-"\">registrieren</a> Sie sich bitte zunächst."
+"Falls Sie noch kein Benutzerkonto haben, <a "
+"href=\"%(signup_url)s\">registrieren</a> Sie sich bitte zunächst."
 
 #: accounts/templates/account/login_form_account.html:14
 #, python-format
 msgid ""
-"If you forgot your password and want to reset it, click <a href="
-"\"%(reset_url)s\">here</a>."
+"If you forgot your password and want to reset it, click <a "
+"href=\"%(reset_url)s\">here</a>."
 msgstr ""
 "Falls Sie Ihr Passwort vergessen haben und es zurücksetzen wollen, klicken "
 "Sie bitte <a href=\"%(reset_url)s\">hier</a>."
@@ -483,8 +483,8 @@ msgstr "Neues Benutzerkonto erstellen"
 msgid ""
 "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
 msgstr ""
-"Falls Sie schon eine Benutzerkonto haben können Sie sich <a href="
-"\"%(login_url)s\">hier</a> anmelden."
+"Falls Sie schon eine Benutzerkonto haben können Sie sich <a "
+"href=\"%(login_url)s\">hier</a> anmelden."
 
 #: accounts/templates/account/signup.html:34
 #: accounts/templates/socialaccount/signup.html:33
@@ -592,15 +592,15 @@ msgid ""
 "<strong>Note:</strong> you can still <a href=\"%(email_url)s\">change your e-"
 "mail address</a>."
 msgstr ""
-"<strong>Hinweis:</strong> Sie können immer noch Ihre <a href=\"%(email_url)s"
-"\">E-Mail Adresse ändern</a>."
+"<strong>Hinweis:</strong> Sie können immer noch Ihre <a "
+"href=\"%(email_url)s\">E-Mail Adresse ändern</a>."
 
 #: accounts/templates/profile/profile_remove_closed.html:6
 #: accounts/templates/profile/profile_remove_failed.html:6
 #: accounts/templates/profile/profile_remove_form.html:7
 #: accounts/templates/profile/profile_remove_form.html:17
 #: accounts/templates/profile/profile_remove_success.html:6
-#: accounts/templates/profile/profile_update_form.html:28
+#: accounts/templates/profile/profile_update_form.html:30
 #: accounts/templates/profile/profile_update_form.html:37
 #: core/templates/core/base_navigation.html:123
 msgid "Delete profile"
@@ -719,12 +719,12 @@ msgstr "Anmeldung abgebrochen"
 #, python-format
 msgid ""
 "You decided to cancel logging in to our site using one of your existing "
-"accounts. If this was a mistake, please proceed to <a href=\"%(login_url)s"
-"\">sign in</a>."
+"accounts. If this was a mistake, please proceed to <a "
+"href=\"%(login_url)s\">sign in</a>."
 msgstr ""
 "Sie haben sich entschieden, die Anmeldung mit einem externen Konto "
-"abzubrechen. Falls dies versehentlich geschehen ist, könne Sie <a href="
-"\"%(login_url)s\">hier</a> fortsetzen."
+"abzubrechen. Falls dies versehentlich geschehen ist, könne Sie <a "
+"href=\"%(login_url)s\">hier</a> fortsetzen."
 
 #: accounts/templates/socialaccount/signup.html:9
 #, python-format
@@ -755,6 +755,7 @@ msgstr "Name"
 #: questions/templates/questions/catalogs_modal_form_questions.html:369
 #: questions/templates/questions/catalogs_modal_form_questionsets.html:158
 #: questions/templates/questions/catalogs_modal_form_questionsets.html:288
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:14
 #: tasks/models.py:131 tasks/templates/tasks/tasks_export.html:48
 #: tasks/templates/tasks/tasks_modal_form_conditions.html:11
 #: tasks/templates/tasks/tasks_modal_form_conditions.html:19
@@ -778,9 +779,10 @@ msgstr "Bedingungen"
 #: questions/templates/questions/catalogs.html:58
 #: questions/templates/questions/catalogs.html:101
 #: questions/templates/questions/catalogs_element.html:23
-#: questions/templates/questions/catalogs_element.html:56 tasks/models.py:21
-#: tasks/templates/tasks/tasks_export.html:15 views/models.py:21
-#: views/templates/views/views_export.html:15
+#: questions/templates/questions/catalogs_element.html:56
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:8
+#: tasks/models.py:21 tasks/templates/tasks/tasks_export.html:15
+#: views/models.py:21 views/templates/views/views_export.html:15
 msgid "URI"
 msgstr "URI"
 
@@ -889,6 +891,7 @@ msgstr ""
 #: options/templates/options/options.html:151
 #: questions/templates/questions/catalogs_element.html:30
 #: questions/templates/questions/catalogs_element.html:63
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:14
 msgid "Condition"
 msgstr "Bedingung"
 
@@ -899,7 +902,7 @@ msgstr "Bedingungen filtern"
 #: conditions/templates/conditions/conditions.html:31
 #: domain/templates/domain/domain.html:31
 #: options/templates/options/options.html:31
-#: questions/templates/questions/catalogs_sidebar.html:16
+#: questions/templates/questions/catalogs_sidebar.html:29
 #: tasks/templates/tasks/tasks.html:32 views/templates/views/views.html:31
 msgid "Search"
 msgstr "Suche"
@@ -907,7 +910,7 @@ msgstr "Suche"
 #: conditions/templates/conditions/conditions.html:42
 #: domain/templates/domain/domain.html:42
 #: options/templates/options/options.html:42
-#: questions/templates/questions/catalogs_sidebar.html:27
+#: questions/templates/questions/catalogs_sidebar.html:40
 #: tasks/templates/tasks/tasks.html:43 views/templates/views/views.html:42
 msgid "All URI prefixes"
 msgstr "Alle URI Prefixe"
@@ -927,7 +930,8 @@ msgstr "Alle URI Prefixe"
 #: projects/templates/projects/projects.html:25
 #: projects/templates/projects/site_projects.html:23
 #: questions/templates/questions/catalog_tree.html:104
-#: questions/templates/questions/catalogs_sidebar.html:52
+#: questions/templates/questions/catalogs_sidebar.html:78
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:26
 #: tasks/templates/tasks/tasks.html:50 views/templates/views/views.html:49
 msgid "Options"
 msgstr "Optionen"
@@ -942,8 +946,8 @@ msgstr "Neue Bedingung erstellen"
 #: projects/templates/projects/project_answers.html:35
 #: projects/templates/projects/project_detail_sidebar.html:111
 #: projects/templates/projects/project_view.html:50
-#: questions/templates/questions/catalogs_sidebar.html:96
-#: questions/templates/questions/catalogs_sidebar.html:114
+#: questions/templates/questions/catalogs_sidebar.html:122
+#: questions/templates/questions/catalogs_sidebar.html:140
 #: tasks/templates/tasks/tasks.html:60 views/templates/views/views.html:59
 msgid "Export"
 msgstr "Export"
@@ -951,7 +955,7 @@ msgstr "Export"
 #: conditions/templates/conditions/conditions.html:73
 #: domain/templates/domain/domain.html:86
 #: options/templates/options/options.html:88
-#: questions/templates/questions/catalogs_sidebar.html:103
+#: questions/templates/questions/catalogs_sidebar.html:129
 #: tasks/templates/tasks/tasks.html:75 views/templates/views/views.html:74
 msgid "XML"
 msgstr "XML"
@@ -961,7 +965,7 @@ msgstr "XML"
 #: management/templates/management/upload.html:21
 #: options/templates/options/options.html:93
 #: projects/templates/projects/project_detail_sidebar_parent_import.html:15
-#: questions/templates/questions/catalogs_sidebar.html:131
+#: questions/templates/questions/catalogs_sidebar.html:157
 #: tasks/templates/tasks/tasks.html:80 views/templates/views/views.html:79
 msgid "Import"
 msgstr "Import"
@@ -1145,6 +1149,7 @@ msgstr "Fragensets"
 #: projects/templates/projects/issue_detail.html:37 questions/apps.py:7
 #: questions/models/question.py:259
 #: questions/templates/questions/catalogs.html:37
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:8
 msgid "Questions"
 msgstr "Fragen"
 
@@ -1164,7 +1169,7 @@ msgstr "Aufgaben"
 msgid "This field is required."
 msgstr "Dieses Feld wird benötigt."
 
-#: core/constants.py:14 core/settings.py:288
+#: core/constants.py:14 core/settings.py:291
 #: options/templates/options/options_export.html:39
 #: options/templates/options/options_modal_form_options.html:163
 #: projects/models/value.py:64 questions/constants.py:4
@@ -1226,83 +1231,83 @@ msgstr "Englisch"
 msgid "German"
 msgstr "Deutsch"
 
-#: core/settings.py:233
+#: core/settings.py:234
 msgid "PDF"
 msgstr "PDF"
 
-#: core/settings.py:234
+#: core/settings.py:235
 msgid "Rich Text Format"
 msgstr "Rich Text Format"
 
-#: core/settings.py:235
+#: core/settings.py:236
 msgid "Open Office"
 msgstr "Open Office"
 
-#: core/settings.py:236
+#: core/settings.py:237
 msgid "Microsoft Office"
 msgstr "Microsoft Office"
 
-#: core/settings.py:237
+#: core/settings.py:238
 msgid "HTML"
 msgstr "HTML"
 
-#: core/settings.py:238
+#: core/settings.py:239
 msgid "Markdown"
 msgstr "Markdown"
 
-#: core/settings.py:239
+#: core/settings.py:240
 msgid "mediawiki"
 msgstr "mediawiki"
 
-#: core/settings.py:240
+#: core/settings.py:241
 msgid "LaTeX"
 msgstr "LaTeX"
 
-#: core/settings.py:260 core/settings.py:266
+#: core/settings.py:261 core/settings.py:267
 msgid "RDMO XML"
 msgstr "RDMO XML"
 
-#: core/settings.py:261 domain/templates/domain/domain.html:74
+#: core/settings.py:262 domain/templates/domain/domain.html:74
 msgid "CSV comma separated"
 msgstr "CSV durch Komma getrennt"
 
-#: core/settings.py:262 domain/templates/domain/domain.html:79
+#: core/settings.py:263 domain/templates/domain/domain.html:79
 msgid "CSV semicolon separated"
 msgstr "CSV durch Semikolon getrennt"
 
-#: core/settings.py:289 questions/constants.py:5
+#: core/settings.py:292 questions/constants.py:5
 msgid "Textarea"
 msgstr "Textfeld"
 
-#: core/settings.py:290 questions/constants.py:6
+#: core/settings.py:293 questions/constants.py:6
 msgid "Yes/No"
 msgstr "Ja/Nein"
 
-#: core/settings.py:291 questions/constants.py:7
+#: core/settings.py:294 questions/constants.py:7
 msgid "Checkboxes"
 msgstr "Ankreuzfelder"
 
-#: core/settings.py:292 questions/constants.py:8
+#: core/settings.py:295 questions/constants.py:8
 msgid "Radio buttons"
 msgstr "Radio Buttons"
 
-#: core/settings.py:293 questions/constants.py:9
+#: core/settings.py:296 questions/constants.py:9
 msgid "Select drop-down"
 msgstr "Select-Dropdown-Menü"
 
-#: core/settings.py:294 questions/constants.py:10
+#: core/settings.py:297 questions/constants.py:10
 msgid "Autocomplete"
 msgstr "Autocomplete"
 
-#: core/settings.py:295 questions/constants.py:11
+#: core/settings.py:298 questions/constants.py:11
 msgid "Range slider"
 msgstr "Schieberegler"
 
-#: core/settings.py:296 questions/constants.py:12
+#: core/settings.py:299 questions/constants.py:12
 msgid "Date picker"
 msgstr "Datumspicker"
 
-#: core/settings.py:297 questions/constants.py:13
+#: core/settings.py:300 questions/constants.py:13
 msgid "File upload"
 msgstr "Dateien-Upload"
 
@@ -1490,6 +1495,7 @@ msgid "Attribute"
 msgstr "Attribut"
 
 #: domain/models.py:51
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:20
 msgid "Attributes"
 msgstr "Attribute"
 
@@ -1521,11 +1527,11 @@ msgstr "Es werden auch die folgenden Attribute entfernt:"
 #: domain/templates/domain/domain_modal_show_attributes.html:15
 #, python-format
 msgid ""
-"This attribute is used for <b>%(values_count)s values</b> in <b>"
-"%(projects_count)s projects</b>."
+"This attribute is used for <b>%(values_count)s values</b> in "
+"<b>%(projects_count)s projects</b>."
 msgstr ""
-"Dieses Attribut wird für <b>%(values_count)s Werte</b> in <b>"
-"%(projects_count)s Projekten</b> verwendet."
+"Dieses Attribut wird für <b>%(values_count)s Werte</b> in "
+"<b>%(projects_count)s Projekten</b> verwendet."
 
 #: domain/templates/domain/domain_modal_delete_attributes.html:42
 #: domain/templates/domain/domain_modal_show_attributes.html:18
@@ -1675,14 +1681,18 @@ msgstr "Elemente importieren"
 msgid "Import error"
 msgstr "Fehler beim Import"
 
-#: management/views.py:47 management/views.py:108
-msgid "This is not a RDMO XML file."
-msgstr "Dies is keine RDMO XML Datei."
+#: management/views.py:47
+msgid "This is not a valid RDMO XML file."
+msgstr "Dies ist keine valide RDMO-XML Datei."
 
 #: management/views.py:63 management/views.py:125
 msgid "Forbidden."
 msgstr "Unzulässig."
 
+#: management/views.py:108
+msgid "This is not a RDMO XML file."
+msgstr "Dies is keine RDMO XML Datei."
+
 #: options/models.py:16
 msgid "The Uniform Resource Identifier of this option set (auto-generated)."
 msgstr ""
@@ -1883,8 +1893,8 @@ msgstr ""
 #: options/templates/options/options_modal_show_options.html:15
 #, python-format
 msgid ""
-"This option is used for <b>%(values_count)s values</b> in <b>"
-"%(projects_count)s projects</b>."
+"This option is used for <b>%(values_count)s values</b> in "
+"<b>%(projects_count)s projects</b>."
 msgstr ""
 "Diese Option wird für <b>%(values_count)s Werte</b> in <b>%(projects_count)s "
 "Projekten</b> verwendet."
@@ -2068,7 +2078,7 @@ msgstr ""
 msgid "Reset overlays"
 msgstr "Einblendungen zurücksetzen"
 
-#: projects/apps.py:7 projects/models/project.py:71
+#: projects/apps.py:8 projects/models/project.py:71
 msgid "Projects"
 msgstr "Projekte"
 
@@ -2827,11 +2837,11 @@ msgstr "Sehr geerte Damen und Herren,"
 #: projects/templates/projects/issue_send_message.txt:3
 #, python-format
 msgid ""
-"The following task was identified in the project \"%(project_title)s\" <"
-"%(project_url)s>:"
+"The following task was identified in the project \"%(project_title)s\" "
+"<%(project_url)s>:"
 msgstr ""
-"Die folgende Aufgabe wurde im Projekt \"%(project_title)s\" <"
-"%(project_url)s> identifiziert:"
+"Die folgende Aufgabe wurde im Projekt \"%(project_title)s\" "
+"<%(project_url)s> identifiziert:"
 
 #: projects/templates/projects/issue_send_message.txt:13
 #, python-format
@@ -2856,8 +2866,8 @@ msgid ""
 "You are about to remove the user <strong>%(user)s</strong> from the project "
 "<strong>%(title)s</strong>."
 msgstr ""
-"Sie sind dabei den User <strong>%(user)s</strong> aus dem Projekt <strong>"
-"%(title)s</strong> zu entfernen."
+"Sie sind dabei den User <strong>%(user)s</strong> aus dem Projekt "
+"<strong>%(title)s</strong> zu entfernen."
 
 #: projects/templates/projects/membership_form.html:9
 #: projects/templates/projects/membership_form.html:11
@@ -3376,9 +3386,10 @@ msgstr "Keine Optionen vorhanden."
 msgid "Please select"
 msgstr "Bitte auswählen"
 
-#: projects/templates/projects/project_questions_head.html:4
-msgid "Questionnaire"
-msgstr "Fragebogen"
+#: projects/templates/projects/project_questions_head.html:5
+#: projects/templates/projects/projects.html:113
+msgid "My Projects"
+msgstr "Meine Projekte"
 
 #: projects/templates/projects/project_questions_modal_delete_valuesets.html:17
 #, python-format
@@ -3419,11 +3430,11 @@ msgstr ""
 
 #: projects/templates/projects/project_questions_navigation_help.html:14
 msgid ""
-"Entries with <i class=\"fa fa-question-circle-o small\" aria-hidden=\"true"
-"\"></i> might be skipped based on your input."
+"Entries with <i class=\"fa fa-question-circle-o small\" aria-"
+"hidden=\"true\"></i> might be skipped based on your input."
 msgstr ""
-"Einträge mit <i class=\"fa fa-question-circle-o small\" aria-hidden=\"true"
-"\"></i> können aufgrund Ihrer Eingabe übersprungen werden."
+"Einträge mit <i class=\"fa fa-question-circle-o small\" aria-"
+"hidden=\"true\"></i> können aufgrund Ihrer Eingabe übersprungen werden."
 
 #: projects/templates/projects/project_questions_overview.html:14
 #: projects/templates/projects/site_projects.html:27
@@ -3448,9 +3459,9 @@ msgid ""
 msgstr ""
 "Warnung: In der Datenbank sind mehrere Antworten vorhanden. Dies kann "
 "aufgrund eines technischen Problems in der Vergangenheit geschehen. Sie "
-"können unerwünschte Antworten über das Feld \"Eintrag entfernen\" (<i class="
-"\"fa fa-times\"></i>) entfernen. Bitte kontaktieren Sie den Support, wenn "
-"das Problem weiterhin besteht."
+"können unerwünschte Antworten über das Feld \"Eintrag entfernen\" (<i "
+"class=\"fa fa-times\"></i>) entfernen. Bitte kontaktieren Sie den Support, "
+"wenn das Problem weiterhin besteht."
 
 #: projects/templates/projects/project_questions_questionset_head.html:34
 #, python-format
@@ -3491,7 +3502,7 @@ msgid "Navigation"
 msgstr "Navigation"
 
 #: projects/templates/projects/project_view.html:90
-#: projects/views/project.py:165
+#: projects/views/project.py:175
 msgid "Error"
 msgstr "Fehler"
 
@@ -3528,10 +3539,6 @@ msgstr "Ausstehende Einladungen"
 msgid "Click on one of the links to join the projects."
 msgstr "Klicken Sie auf einen der Links, um an den Projekten teilzunehmen."
 
-#: projects/templates/projects/projects.html:113
-msgid "My Projects"
-msgstr "Meine Projekte"
-
 #: projects/templates/projects/projects.html:120
 #: projects/templates/projects/site_projects.html:41
 msgid "Last changed"
@@ -3582,16 +3589,16 @@ msgstr "Set"
 msgid "You reached the file quota for this project."
 msgstr "Sie haben die Quota für dieses Projekt erreicht."
 
-#: projects/views/project.py:145
+#: projects/views/project.py:155
 msgid "Sorry, your invitation has been expired."
 msgstr "Entschuldigung, Ihre Einladung ist abgelaufen."
 
-#: projects/views/project.py:148
+#: projects/views/project.py:158
 #, python-format
 msgid "Sorry, but this invitation is for the user \"%s\"."
 msgstr "Entschuldigung, aber diese Einladung ist für den Benutzer \"%s\"."
 
-#: projects/views/project.py:162
+#: projects/views/project.py:172
 msgid "Sorry, the invitation link is not valid."
 msgstr "Der Einladungslink ist leider nicht gültig."
 
@@ -3753,7 +3760,7 @@ msgstr "Zusätzliche interne Informationen über diesen Abschnitt."
 
 #: questions/models/question.py:48
 msgid "Designates whether this question can be changed."
-msgstr "Designates whether this task can be changed."
+msgstr "Bezeichnet, ob diese Frage geändert werden kann."
 
 #: questions/models/question.py:53
 msgid "The attribute this question belongs to."
@@ -4299,8 +4306,8 @@ msgstr "Optional"
 #: questions/templates/questions/catalogs_modal_delete_catalogs.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the catalog <code class=\"text-primary\">"
-"%(object)s</code>."
+"You are about to permanently delete the catalog <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
 "Sie sind dabei den Katalog <code class=\"text-primary\">%(object)s</code> "
 "permanent zu entfernen."
@@ -4324,8 +4331,8 @@ msgstr ""
 #: questions/templates/questions/catalogs_modal_delete_questions.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the question <code class=\"text-primary"
-"\">%(object)s</code>."
+"You are about to permanently delete the question <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
 "Sie sind dabei die Frage <code class=\"text-primary\">%(object)s</code> "
 "permanent zu entfernen."
@@ -4342,8 +4349,8 @@ msgstr ""
 #: questions/templates/questions/catalogs_modal_delete_sections.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the section <code class=\"text-primary\">"
-"%(object)s</code>."
+"You are about to permanently delete the section <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
 "Sie sind dabei den Abschnitt <code class=\"text-primary\">%(object)s</code> "
 "permanent zu entfernen."
@@ -4354,7 +4361,7 @@ msgstr "Neuen Katalog erstellen"
 
 #: questions/templates/questions/catalogs_modal_form_catalogs.html:13
 #: questions/templates/questions/catalogs_options_catalog.html:16
-#: questions/templates/questions/catalogs_sidebar.html:63
+#: questions/templates/questions/catalogs_sidebar.html:89
 msgid "Copy catalog"
 msgstr "Katalog kopieren"
 
@@ -4551,7 +4558,7 @@ msgid "Export catalog as XML"
 msgstr "Katalog als XML exportieren"
 
 #: questions/templates/questions/catalogs_options_catalog.html:26
-#: questions/templates/questions/catalogs_sidebar.html:68
+#: questions/templates/questions/catalogs_sidebar.html:94
 msgid "Delete catalog"
 msgstr "Katalog entfernen"
 
@@ -4596,39 +4603,47 @@ msgstr "Abschnitt als XML exportieren"
 msgid "Delete section"
 msgstr "Abschnitt entfernen"
 
-#: questions/templates/questions/catalogs_sidebar.html:11
+#: questions/templates/questions/catalogs_sidebar.html:18
+msgid "Filter catalogs for"
+msgstr "Kataloge filtern"
+
+#: questions/templates/questions/catalogs_sidebar.html:24
 msgid "Filter questions"
 msgstr "Fragen filtern"
 
-#: questions/templates/questions/catalogs_sidebar.html:38
+#: questions/templates/questions/catalogs_sidebar.html:51
 msgid "Show questionsets"
 msgstr "Fragensets anzeigen"
 
-#: questions/templates/questions/catalogs_sidebar.html:47
+#: questions/templates/questions/catalogs_sidebar.html:60
 msgid "Show questions"
 msgstr "Fragen anzeigen"
 
-#: questions/templates/questions/catalogs_sidebar.html:57
+#: questions/templates/questions/catalogs_sidebar.html:69
+msgid "Show URIs"
+msgstr "URIs anzeigen"
+
+#: questions/templates/questions/catalogs_sidebar.html:83
 msgid "Update catalog details"
 msgstr "Katalogeigenschaften bearbeiten"
 
-#: questions/templates/questions/catalogs_sidebar.html:76
+#: questions/templates/questions/catalogs_sidebar.html:102
 msgid "Create new catalog"
 msgstr "Neuen Katalog erstellen"
 
-#: questions/templates/questions/catalogs_sidebar.html:81
+#: questions/templates/questions/catalogs_sidebar.html:107
 msgid "Create new section"
 msgstr "Neuen Abschnitt erstellen"
 
-#: questions/templates/questions/catalogs_sidebar.html:86
+#: questions/templates/questions/catalogs_sidebar.html:112
 msgid "Create new questionset"
 msgstr "Neues Fragenset erstellen"
 
-#: questions/templates/questions/catalogs_sidebar.html:91
+#: questions/templates/questions/catalogs_sidebar.html:117
 msgid "Create new question"
 msgstr "Neue Frage erstellen"
 
-#: questions/templates/questions/catalogs_sidebar.html:143
+#: questions/templates/questions/catalogs_sidebar.html:169
 #, python-format
 msgid "This catalog is used in <b>%(projects_count)s projects</b>."
 msgstr "Dieser Katalog wird in <b>%(projects_count)s Projekten</b> verwendet."
@@ -5049,6 +5064,9 @@ msgstr ""
 "Eine leere Liste bedeutet, dass die Ansicht mit jedem Katalog verwendet "
 "werden kann."
 
+#~ msgid "Questionnaire"
+#~ msgstr "Fragebogen"
+
 #~ msgid "Send error"
 #~ msgstr "Fehler beim Senden"
 
@@ -5268,8 +5286,8 @@ msgstr ""
 #~ "You are about to permanently delete the subsection <code class=\"text-"
 #~ "primary\">%(object)s</code>."
 #~ msgstr ""
-#~ "Sie sind dabei den Unterabschnitt <code class=\"text-primary\">"
-#~ "%(object)s</code> permanent zu entfernen."
+#~ "Sie sind dabei den Unterabschnitt <code class=\"text-"
+#~ "primary\">%(object)s</code> permanent zu entfernen."
 
 #~ msgid "Update subsection"
 #~ msgstr "Unterabschnitt bearbeiten"
diff --git a/rdmo/locale/es/LC_MESSAGES/django.mo b/rdmo/locale/es/LC_MESSAGES/django.mo
index fa5b4f039d..f2b57b43fe 100644
Binary files a/rdmo/locale/es/LC_MESSAGES/django.mo and b/rdmo/locale/es/LC_MESSAGES/django.mo differ
diff --git a/rdmo/locale/es/LC_MESSAGES/django.po b/rdmo/locale/es/LC_MESSAGES/django.po
index b0e919de19..aefdce02d9 100644
--- a/rdmo/locale/es/LC_MESSAGES/django.po
+++ b/rdmo/locale/es/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-29 11:51+0200\n"
+"POT-Creation-Date: 2022-11-28 11:07+0100\n"
 "PO-Revision-Date: 2022-07-29 13:45+0200\n"
 "Last-Translator: DAVID MARTINEZ <dmartinezmu@cem.es>\n"
 "Language-Team: \n"
@@ -331,8 +331,8 @@ msgstr "Confirmar"
 #: accounts/templates/account/email_confirm.html:29
 #, python-format
 msgid ""
-"This e-mail confirmation link expired or is invalid. Please <a href="
-"\"%(email_url)s\">issue a new e-mail confirmation request</a>."
+"This e-mail confirmation link expired or is invalid. Please <a "
+"href=\"%(email_url)s\">issue a new e-mail confirmation request</a>."
 msgstr ""
 "Este enlace de confirmación del e-mail ha expirado o no es válido. Por favor "
 "<<a href=\"%(email_url)s\">emita un nueva petición de confirmación del e-"
@@ -353,20 +353,20 @@ msgstr "Login con Shibboleth"
 #: accounts/templates/account/login_form_account.html:7
 #, python-format
 msgid ""
-"If you have not created an account yet, then please <a href=\"%(signup_url)s"
-"\">sign up</a> first."
+"If you have not created an account yet, then please <a "
+"href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
-"Si todavía no ha creado una cuenta, por favor primero <a href="
-"\"%(signup_url)s\">regístrese</a>."
+"Si todavía no ha creado una cuenta, por favor primero <a "
+"href=\"%(signup_url)s\">regístrese</a>."
 
 #: accounts/templates/account/login_form_account.html:14
 #, python-format
 msgid ""
-"If you forgot your password and want to reset it, click <a href="
-"\"%(reset_url)s\">here</a>."
+"If you forgot your password and want to reset it, click <a "
+"href=\"%(reset_url)s\">here</a>."
 msgstr ""
-"Si ha olvidado su contraseña y quiere una nueva, pulse <a href="
-"\"%(reset_url)s\">aquí</a>."
+"Si ha olvidado su contraseña y quiere una nueva, pulse <a "
+"href=\"%(reset_url)s\">aquí</a>."
 
 #: accounts/templates/account/login_form_socialaccount.html:9
 msgid ""
@@ -494,8 +494,8 @@ msgstr "Crear nueva cuenta"
 msgid ""
 "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
 msgstr ""
-"¿Ya dispone de una cuenta? Entonces por favor <a href=\"%(login_url)s"
-"\">acceda</a>."
+"¿Ya dispone de una cuenta? Entonces por favor <a "
+"href=\"%(login_url)s\">acceda</a>."
 
 #: accounts/templates/account/signup.html:34
 #: accounts/templates/socialaccount/signup.html:33
@@ -611,7 +611,7 @@ msgstr ""
 #: accounts/templates/profile/profile_remove_form.html:7
 #: accounts/templates/profile/profile_remove_form.html:17
 #: accounts/templates/profile/profile_remove_success.html:6
-#: accounts/templates/profile/profile_update_form.html:28
+#: accounts/templates/profile/profile_update_form.html:30
 #: accounts/templates/profile/profile_update_form.html:37
 #: core/templates/core/base_navigation.html:123
 msgid "Delete profile"
@@ -733,12 +733,12 @@ msgstr "Acceso cancelado"
 #, python-format
 msgid ""
 "You decided to cancel logging in to our site using one of your existing "
-"accounts. If this was a mistake, please proceed to <a href=\"%(login_url)s"
-"\">sign in</a>."
+"accounts. If this was a mistake, please proceed to <a "
+"href=\"%(login_url)s\">sign in</a>."
 msgstr ""
 "Usted ha cancelado el acceso a nuestro site mediante una de sus cuentas "
-"registradas. Si esto ha sido un error, por favor proceda a <a href="
-"\"%(login_url)s\">acceder</a>."
+"registradas. Si esto ha sido un error, por favor proceda a <a "
+"href=\"%(login_url)s\">acceder</a>."
 
 #: accounts/templates/socialaccount/signup.html:9
 #, python-format
@@ -769,6 +769,7 @@ msgstr "Nombre"
 #: questions/templates/questions/catalogs_modal_form_questions.html:369
 #: questions/templates/questions/catalogs_modal_form_questionsets.html:158
 #: questions/templates/questions/catalogs_modal_form_questionsets.html:288
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:14
 #: tasks/models.py:131 tasks/templates/tasks/tasks_export.html:48
 #: tasks/templates/tasks/tasks_modal_form_conditions.html:11
 #: tasks/templates/tasks/tasks_modal_form_conditions.html:19
@@ -792,9 +793,10 @@ msgstr "Condiciones"
 #: questions/templates/questions/catalogs.html:58
 #: questions/templates/questions/catalogs.html:101
 #: questions/templates/questions/catalogs_element.html:23
-#: questions/templates/questions/catalogs_element.html:56 tasks/models.py:21
-#: tasks/templates/tasks/tasks_export.html:15 views/models.py:21
-#: views/templates/views/views_export.html:15
+#: questions/templates/questions/catalogs_element.html:56
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:8
+#: tasks/models.py:21 tasks/templates/tasks/tasks_export.html:15
+#: views/models.py:21 views/templates/views/views_export.html:15
 msgid "URI"
 msgstr "URI"
 
@@ -903,6 +905,7 @@ msgstr ""
 #: options/templates/options/options.html:151
 #: questions/templates/questions/catalogs_element.html:30
 #: questions/templates/questions/catalogs_element.html:63
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:14
 msgid "Condition"
 msgstr "Condición"
 
@@ -913,7 +916,7 @@ msgstr "Condiciones de filtrado"
 #: conditions/templates/conditions/conditions.html:31
 #: domain/templates/domain/domain.html:31
 #: options/templates/options/options.html:31
-#: questions/templates/questions/catalogs_sidebar.html:16
+#: questions/templates/questions/catalogs_sidebar.html:29
 #: tasks/templates/tasks/tasks.html:32 views/templates/views/views.html:31
 msgid "Search"
 msgstr "Búsqueda"
@@ -921,7 +924,7 @@ msgstr "Búsqueda"
 #: conditions/templates/conditions/conditions.html:42
 #: domain/templates/domain/domain.html:42
 #: options/templates/options/options.html:42
-#: questions/templates/questions/catalogs_sidebar.html:27
+#: questions/templates/questions/catalogs_sidebar.html:40
 #: tasks/templates/tasks/tasks.html:43 views/templates/views/views.html:42
 msgid "All URI prefixes"
 msgstr "Todos los prefijos del URI"
@@ -941,7 +944,8 @@ msgstr "Todos los prefijos del URI"
 #: projects/templates/projects/projects.html:25
 #: projects/templates/projects/site_projects.html:23
 #: questions/templates/questions/catalog_tree.html:104
-#: questions/templates/questions/catalogs_sidebar.html:52
+#: questions/templates/questions/catalogs_sidebar.html:78
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:26
 #: tasks/templates/tasks/tasks.html:50 views/templates/views/views.html:49
 msgid "Options"
 msgstr "Opciones"
@@ -956,8 +960,8 @@ msgstr "Crear nueva condición"
 #: projects/templates/projects/project_answers.html:35
 #: projects/templates/projects/project_detail_sidebar.html:111
 #: projects/templates/projects/project_view.html:50
-#: questions/templates/questions/catalogs_sidebar.html:96
-#: questions/templates/questions/catalogs_sidebar.html:114
+#: questions/templates/questions/catalogs_sidebar.html:122
+#: questions/templates/questions/catalogs_sidebar.html:140
 #: tasks/templates/tasks/tasks.html:60 views/templates/views/views.html:59
 msgid "Export"
 msgstr "Exportar"
@@ -965,7 +969,7 @@ msgstr "Exportar"
 #: conditions/templates/conditions/conditions.html:73
 #: domain/templates/domain/domain.html:86
 #: options/templates/options/options.html:88
-#: questions/templates/questions/catalogs_sidebar.html:103
+#: questions/templates/questions/catalogs_sidebar.html:129
 #: tasks/templates/tasks/tasks.html:75 views/templates/views/views.html:74
 msgid "XML"
 msgstr "XML"
@@ -975,7 +979,7 @@ msgstr "XML"
 #: management/templates/management/upload.html:21
 #: options/templates/options/options.html:93
 #: projects/templates/projects/project_detail_sidebar_parent_import.html:15
-#: questions/templates/questions/catalogs_sidebar.html:131
+#: questions/templates/questions/catalogs_sidebar.html:157
 #: tasks/templates/tasks/tasks.html:80 views/templates/views/views.html:79
 msgid "Import"
 msgstr "Importar"
@@ -1160,6 +1164,7 @@ msgstr "Conjuntos de preguntas"
 #: projects/templates/projects/issue_detail.html:37 questions/apps.py:7
 #: questions/models/question.py:259
 #: questions/templates/questions/catalogs.html:37
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:8
 msgid "Questions"
 msgstr "Preguntas"
 
@@ -1179,7 +1184,7 @@ msgstr "Tareas"
 msgid "This field is required."
 msgstr "Este campo es obligatorio."
 
-#: core/constants.py:14 core/settings.py:288
+#: core/constants.py:14 core/settings.py:291
 #: options/templates/options/options_export.html:39
 #: options/templates/options/options_modal_form_options.html:163
 #: projects/models/value.py:64 questions/constants.py:4
@@ -1241,83 +1246,83 @@ msgstr "Inglés"
 msgid "German"
 msgstr "Alemán"
 
-#: core/settings.py:233
+#: core/settings.py:234
 msgid "PDF"
 msgstr "PDF"
 
-#: core/settings.py:234
+#: core/settings.py:235
 msgid "Rich Text Format"
 msgstr "Rich Text Format"
 
-#: core/settings.py:235
+#: core/settings.py:236
 msgid "Open Office"
 msgstr "Open Office"
 
-#: core/settings.py:236
+#: core/settings.py:237
 msgid "Microsoft Office"
 msgstr "Microsoft Office"
 
-#: core/settings.py:237
+#: core/settings.py:238
 msgid "HTML"
 msgstr "HTML"
 
-#: core/settings.py:238
+#: core/settings.py:239
 msgid "Markdown"
 msgstr "Markdown"
 
-#: core/settings.py:239
+#: core/settings.py:240
 msgid "mediawiki"
 msgstr "mediawiki"
 
-#: core/settings.py:240
+#: core/settings.py:241
 msgid "LaTeX"
 msgstr "LaTeX"
 
-#: core/settings.py:260 core/settings.py:266
+#: core/settings.py:261 core/settings.py:267
 msgid "RDMO XML"
 msgstr "RDMO XML"
 
-#: core/settings.py:261 domain/templates/domain/domain.html:74
+#: core/settings.py:262 domain/templates/domain/domain.html:74
 msgid "CSV comma separated"
 msgstr "CSV separado por comas"
 
-#: core/settings.py:262 domain/templates/domain/domain.html:79
+#: core/settings.py:263 domain/templates/domain/domain.html:79
 msgid "CSV semicolon separated"
 msgstr "CSV separado por punto y coma"
 
-#: core/settings.py:289 questions/constants.py:5
+#: core/settings.py:292 questions/constants.py:5
 msgid "Textarea"
 msgstr "Área de texto"
 
-#: core/settings.py:290 questions/constants.py:6
+#: core/settings.py:293 questions/constants.py:6
 msgid "Yes/No"
 msgstr "Sí/No"
 
-#: core/settings.py:291 questions/constants.py:7
+#: core/settings.py:294 questions/constants.py:7
 msgid "Checkboxes"
 msgstr "Casillas de comprobación"
 
-#: core/settings.py:292 questions/constants.py:8
+#: core/settings.py:295 questions/constants.py:8
 msgid "Radio buttons"
 msgstr "Botones de radio"
 
-#: core/settings.py:293 questions/constants.py:9
+#: core/settings.py:296 questions/constants.py:9
 msgid "Select drop-down"
 msgstr "Menú desplegable de selección"
 
-#: core/settings.py:294 questions/constants.py:10
+#: core/settings.py:297 questions/constants.py:10
 msgid "Autocomplete"
 msgstr "Auto-completar"
 
-#: core/settings.py:295 questions/constants.py:11
+#: core/settings.py:298 questions/constants.py:11
 msgid "Range slider"
 msgstr "Deslizador de rango"
 
-#: core/settings.py:296 questions/constants.py:12
+#: core/settings.py:299 questions/constants.py:12
 msgid "Date picker"
 msgstr "Selección de fecha"
 
-#: core/settings.py:297 questions/constants.py:13
+#: core/settings.py:300 questions/constants.py:13
 msgid "File upload"
 msgstr "Subida de archivo"
 
@@ -1502,6 +1507,7 @@ msgid "Attribute"
 msgstr "Atributo"
 
 #: domain/models.py:51
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:20
 msgid "Attributes"
 msgstr "Atributos"
 
@@ -1534,11 +1540,11 @@ msgstr "Esto también borrará los siguientes atributos:"
 #: domain/templates/domain/domain_modal_show_attributes.html:15
 #, python-format
 msgid ""
-"This attribute is used for <b>%(values_count)s values</b> in <b>"
-"%(projects_count)s projects</b>."
+"This attribute is used for <b>%(values_count)s values</b> in "
+"<b>%(projects_count)s projects</b>."
 msgstr ""
-"Este atributo es utilizado para <b>%(values_count)s valores</b> en <b>"
-"%(projects_count)s proyectos</b>."
+"Este atributo es utilizado para <b>%(values_count)s valores</b> en "
+"<b>%(projects_count)s proyectos</b>."
 
 #: domain/templates/domain/domain_modal_delete_attributes.html:42
 #: domain/templates/domain/domain_modal_show_attributes.html:18
@@ -1685,14 +1691,20 @@ msgstr "Importar elementos"
 msgid "Import error"
 msgstr "Importar error"
 
-#: management/views.py:47 management/views.py:108
-msgid "This is not a RDMO XML file."
+#: management/views.py:47
+#, fuzzy
+#| msgid "This is not a RDMO XML file."
+msgid "This is not a valid RDMO XML file."
 msgstr "Este no es un archivo RDMO XML."
 
 #: management/views.py:63 management/views.py:125
 msgid "Forbidden."
 msgstr "Prohibido."
 
+#: management/views.py:108
+msgid "This is not a RDMO XML file."
+msgstr "Este no es un archivo RDMO XML."
+
 #: options/models.py:16
 msgid "The Uniform Resource Identifier of this option set (auto-generated)."
 msgstr ""
@@ -1896,11 +1908,11 @@ msgstr ""
 #: options/templates/options/options_modal_show_options.html:15
 #, python-format
 msgid ""
-"This option is used for <b>%(values_count)s values</b> in <b>"
-"%(projects_count)s projects</b>."
+"This option is used for <b>%(values_count)s values</b> in "
+"<b>%(projects_count)s projects</b>."
 msgstr ""
-"Esta opción es utilizada para <b>%(values_count)s valores</b> en <b>"
-"%(projects_count)s proyectos</b>."
+"Esta opción es utilizada para <b>%(values_count)s valores</b> en "
+"<b>%(projects_count)s proyectos</b>."
 
 #: options/templates/options/options_modal_delete_options.html:29
 #, python-format
@@ -1913,8 +1925,8 @@ msgstr ""
 msgid ""
 "You are about to permanently delete the option set <code>%(object)s</code>."
 msgstr ""
-"Está usted a punto de eliminar permanentemente el conjunto de opciones <code>"
-"%(object)s</code>."
+"Está usted a punto de eliminar permanentemente el conjunto de opciones "
+"<code>%(object)s</code>."
 
 #: options/templates/options/options_modal_delete_optionsets.html:23
 msgid ""
@@ -2079,7 +2091,7 @@ msgstr ""
 msgid "Reset overlays"
 msgstr "Restablecer superposiciones"
 
-#: projects/apps.py:7 projects/models/project.py:71
+#: projects/apps.py:8 projects/models/project.py:71
 msgid "Projects"
 msgstr "Proyectos"
 
@@ -2835,11 +2847,11 @@ msgstr "Para quien pueda interesar,"
 #: projects/templates/projects/issue_send_message.txt:3
 #, python-format
 msgid ""
-"The following task was identified in the project \"%(project_title)s\" <"
-"%(project_url)s>:"
+"The following task was identified in the project \"%(project_title)s\" "
+"<%(project_url)s>:"
 msgstr ""
-"Se ha identificado la siguiente tarea en el proyecto \"%(project_title)s\" <"
-"%(project_url)s>:"
+"Se ha identificado la siguiente tarea en el proyecto \"%(project_title)s\" "
+"<%(project_url)s>:"
 
 #: projects/templates/projects/issue_send_message.txt:13
 #, python-format
@@ -3386,17 +3398,18 @@ msgstr "No hay opciones disponibles."
 msgid "Please select"
 msgstr "Por favor seleccione"
 
-#: projects/templates/projects/project_questions_head.html:4
-msgid "Questionnaire"
-msgstr "Cuestionario"
+#: projects/templates/projects/project_questions_head.html:5
+#: projects/templates/projects/projects.html:113
+msgid "My Projects"
+msgstr "Mis Proyectos"
 
 #: projects/templates/projects/project_questions_modal_delete_valuesets.html:17
 #, python-format
 msgid ""
 "You are about to permanently delete the %(name)s <strong>%(object)s</strong>."
 msgstr ""
-"Usted está a punto de eliminar permanentemente el %(name)s <strong>"
-"%(object)s</strong>."
+"Usted está a punto de eliminar permanentemente el %(name)s "
+"<strong>%(object)s</strong>."
 
 #: projects/templates/projects/project_questions_modal_delete_valuesets.html:23
 #, python-format
@@ -3429,11 +3442,11 @@ msgstr ""
 
 #: projects/templates/projects/project_questions_navigation_help.html:14
 msgid ""
-"Entries with <i class=\"fa fa-question-circle-o small\" aria-hidden=\"true"
-"\"></i> might be skipped based on your input."
+"Entries with <i class=\"fa fa-question-circle-o small\" aria-"
+"hidden=\"true\"></i> might be skipped based on your input."
 msgstr ""
-"Las entradas con <i class=\"fa fa-question-circle-o small\" aria-hidden="
-"\"true\"></i> podrían ser ignoradas según lo que ha introducido."
+"Las entradas con <i class=\"fa fa-question-circle-o small\" aria-"
+"hidden=\"true\"></i> podrían ser ignoradas según lo que ha introducido."
 
 #: projects/templates/projects/project_questions_overview.html:14
 #: projects/templates/projects/site_projects.html:27
@@ -3500,7 +3513,7 @@ msgid "Navigation"
 msgstr "Navegación"
 
 #: projects/templates/projects/project_view.html:90
-#: projects/views/project.py:165
+#: projects/views/project.py:175
 msgid "Error"
 msgstr "Error"
 
@@ -3535,10 +3548,6 @@ msgstr "Invitaciones pendientes"
 msgid "Click on one of the links to join the projects."
 msgstr "Pulse en uno de los enlaces para unirse a los proyectos."
 
-#: projects/templates/projects/projects.html:113
-msgid "My Projects"
-msgstr "Mis Proyectos"
-
 #: projects/templates/projects/projects.html:120
 #: projects/templates/projects/site_projects.html:41
 msgid "Last changed"
@@ -3589,16 +3598,16 @@ msgstr "Establecer"
 msgid "You reached the file quota for this project."
 msgstr "Usted ha alcanzado la quota de archivado para este proyecto."
 
-#: projects/views/project.py:145
+#: projects/views/project.py:155
 msgid "Sorry, your invitation has been expired."
 msgstr "Lo sentimos, su invitación ha expirado."
 
-#: projects/views/project.py:148
+#: projects/views/project.py:158
 #, python-format
 msgid "Sorry, but this invitation is for the user \"%s\"."
 msgstr "Lo sentimos, pero esta invitación es para el usuario \"%s\"."
 
-#: projects/views/project.py:162
+#: projects/views/project.py:172
 msgid "Sorry, the invitation link is not valid."
 msgstr "Lo sentimos, la invitación no es válida."
 
@@ -4331,8 +4340,8 @@ msgstr "Opcional"
 #: questions/templates/questions/catalogs_modal_delete_catalogs.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the catalog <code class=\"text-primary\">"
-"%(object)s</code>."
+"You are about to permanently delete the catalog <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
 "Estás a punto de eliminar permanentemente el catálogo <code class=\"text-"
 "primary\">%(object)s</code>."
@@ -4357,11 +4366,11 @@ msgstr ""
 #: questions/templates/questions/catalogs_modal_delete_questions.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the question <code class=\"text-primary"
-"\">%(object)s</code>."
+"You are about to permanently delete the question <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
-"Usted está a punto de eliminar permanentemente la pregunta <code class="
-"\"text-primary\">%(object)s</code>."
+"Usted está a punto de eliminar permanentemente la pregunta <code "
+"class=\"text-primary\">%(object)s</code>."
 
 #: questions/templates/questions/catalogs_modal_delete_questionsets.html:17
 #, python-format
@@ -4375,8 +4384,8 @@ msgstr ""
 #: questions/templates/questions/catalogs_modal_delete_sections.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the section <code class=\"text-primary\">"
-"%(object)s</code>."
+"You are about to permanently delete the section <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
 "Usted está a punto de eliminar permanentemente la sección <code class=\"text-"
 "primary\">%(object)s</code>."
@@ -4387,7 +4396,7 @@ msgstr "Crear catálogo"
 
 #: questions/templates/questions/catalogs_modal_form_catalogs.html:13
 #: questions/templates/questions/catalogs_options_catalog.html:16
-#: questions/templates/questions/catalogs_sidebar.html:63
+#: questions/templates/questions/catalogs_sidebar.html:89
 msgid "Copy catalog"
 msgstr "Copiar catálogo"
 
@@ -4581,7 +4590,7 @@ msgid "Export catalog as XML"
 msgstr "Exportar catálogo como XML"
 
 #: questions/templates/questions/catalogs_options_catalog.html:26
-#: questions/templates/questions/catalogs_sidebar.html:68
+#: questions/templates/questions/catalogs_sidebar.html:94
 msgid "Delete catalog"
 msgstr "Eliminar catálogo"
 
@@ -4626,39 +4635,51 @@ msgstr "Exportar sección como XML"
 msgid "Delete section"
 msgstr "Eliminar sección"
 
-#: questions/templates/questions/catalogs_sidebar.html:11
+#: questions/templates/questions/catalogs_sidebar.html:18
+#, fuzzy
+#| msgid "Delete catalog"
+msgid "Filter catalogs for"
+msgstr "Eliminar catálogo"
+
+#: questions/templates/questions/catalogs_sidebar.html:24
 msgid "Filter questions"
 msgstr "Filtrar preguntas"
 
-#: questions/templates/questions/catalogs_sidebar.html:38
+#: questions/templates/questions/catalogs_sidebar.html:51
 msgid "Show questionsets"
 msgstr "Mostrar conjuntos de preguntas"
 
-#: questions/templates/questions/catalogs_sidebar.html:47
+#: questions/templates/questions/catalogs_sidebar.html:60
 msgid "Show questions"
 msgstr "Mostrar preguntas"
 
-#: questions/templates/questions/catalogs_sidebar.html:57
+#: questions/templates/questions/catalogs_sidebar.html:69
+#, fuzzy
+#| msgid "Show task"
+msgid "Show URIs"
+msgstr "Mostrar tarea"
+
+#: questions/templates/questions/catalogs_sidebar.html:83
 msgid "Update catalog details"
 msgstr "Actualizar detalles del catálogo"
 
-#: questions/templates/questions/catalogs_sidebar.html:76
+#: questions/templates/questions/catalogs_sidebar.html:102
 msgid "Create new catalog"
 msgstr "Crear nuevo catálogo"
 
-#: questions/templates/questions/catalogs_sidebar.html:81
+#: questions/templates/questions/catalogs_sidebar.html:107
 msgid "Create new section"
 msgstr "Crear nueva sección"
 
-#: questions/templates/questions/catalogs_sidebar.html:86
+#: questions/templates/questions/catalogs_sidebar.html:112
 msgid "Create new questionset"
 msgstr "Crear nuevo conjunto de preguntas"
 
-#: questions/templates/questions/catalogs_sidebar.html:91
+#: questions/templates/questions/catalogs_sidebar.html:117
 msgid "Create new question"
 msgstr "Crear nueva pregunta"
 
-#: questions/templates/questions/catalogs_sidebar.html:143
+#: questions/templates/questions/catalogs_sidebar.html:169
 #, python-format
 msgid "This catalog is used in <b>%(projects_count)s projects</b>."
 msgstr "Este catálogo se utiliza en <b>%(projects_count)s proyectos</b>."
@@ -5083,6 +5104,9 @@ msgstr ""
 "Una lista vacía implica que la vista puede ser utilizada por todos los "
 "catálogos."
 
+#~ msgid "Questionnaire"
+#~ msgstr "Cuestionario"
+
 #~ msgid "Contact"
 #~ msgstr "Contacto"
 
diff --git a/rdmo/locale/fr/LC_MESSAGES/django.mo b/rdmo/locale/fr/LC_MESSAGES/django.mo
index 7283182a6e..14135064b3 100644
Binary files a/rdmo/locale/fr/LC_MESSAGES/django.mo and b/rdmo/locale/fr/LC_MESSAGES/django.mo differ
diff --git a/rdmo/locale/fr/LC_MESSAGES/django.po b/rdmo/locale/fr/LC_MESSAGES/django.po
index d775002d93..7e7eafcd2a 100644
--- a/rdmo/locale/fr/LC_MESSAGES/django.po
+++ b/rdmo/locale/fr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: RDMO\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-29 11:51+0200\n"
-"PO-Revision-Date: 2022-07-29 13:46+0200\n"
+"POT-Creation-Date: 2022-11-28 11:07+0100\n"
+"PO-Revision-Date: 2022-11-28 11:11+0100\n"
 "Last-Translator: Yonny Cardenas <cardenas@cc.in2p3.fr>\n"
 "Language-Team: RDMO <cardenas@cc.in2p3.fr>\n"
 "Language: fr\n"
@@ -325,8 +325,8 @@ msgstr "Confirmer"
 #: accounts/templates/account/email_confirm.html:29
 #, python-format
 msgid ""
-"This e-mail confirmation link expired or is invalid. Please <a href="
-"\"%(email_url)s\">issue a new e-mail confirmation request</a>."
+"This e-mail confirmation link expired or is invalid. Please <a "
+"href=\"%(email_url)s\">issue a new e-mail confirmation request</a>."
 msgstr ""
 "Ce lien de confirmation par e-mail a expiré ou n'est pas valide. Veuillez  "
 "<a href=\"%(email_url)s\"> faire une nouvelle demande de confirmation par e-"
@@ -347,8 +347,8 @@ msgstr "Connectez-vous avec Shibboleth"
 #: accounts/templates/account/login_form_account.html:7
 #, python-format
 msgid ""
-"If you have not created an account yet, then please <a href=\"%(signup_url)s"
-"\">sign up</a> first."
+"If you have not created an account yet, then please <a "
+"href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 "Si vous n'avez pas encore créé de compte <a href=\"%(signup_url)s \"> "
 "inscrivez-vous d'abord </a>."
@@ -356,8 +356,8 @@ msgstr ""
 #: accounts/templates/account/login_form_account.html:14
 #, python-format
 msgid ""
-"If you forgot your password and want to reset it, click <a href="
-"\"%(reset_url)s\">here</a>."
+"If you forgot your password and want to reset it, click <a "
+"href=\"%(reset_url)s\">here</a>."
 msgstr ""
 "Si vous avez oublié votre mot de passe et que vous souhaitez le "
 "réinitialiser, cliquez sur <a href=\"%(reset_url)s\"> ici </a>."
@@ -440,8 +440,9 @@ msgid ""
 "a>."
 msgstr ""
 "Le lien de réinitialisation du mot de passe n'était pas valide, peut-être "
-"parce qu'il l'a déjà été utilisé. Veuillez demander une <a href="
-"\"%(passwd_reset_url)s\"> nouvelle réinitialisation du mot de passe </a>."
+"parce qu'il l'a déjà été utilisé. Veuillez demander une <a "
+"href=\"%(passwd_reset_url)s\"> nouvelle réinitialisation du mot de passe </"
+"a>."
 
 #: accounts/templates/account/password_reset_from_key.html:18
 msgid "Enter new password"
@@ -609,7 +610,7 @@ msgstr ""
 #: accounts/templates/profile/profile_remove_form.html:7
 #: accounts/templates/profile/profile_remove_form.html:17
 #: accounts/templates/profile/profile_remove_success.html:6
-#: accounts/templates/profile/profile_update_form.html:28
+#: accounts/templates/profile/profile_update_form.html:30
 #: accounts/templates/profile/profile_update_form.html:37
 #: core/templates/core/base_navigation.html:123
 msgid "Delete profile"
@@ -734,8 +735,8 @@ msgstr "Connexion annulée"
 #, python-format
 msgid ""
 "You decided to cancel logging in to our site using one of your existing "
-"accounts. If this was a mistake, please proceed to <a href=\"%(login_url)s"
-"\">sign in</a>."
+"accounts. If this was a mistake, please proceed to <a "
+"href=\"%(login_url)s\">sign in</a>."
 msgstr ""
 "Vous avez décidé d'annuler la connexion à notre site en utilisant l'un de "
 "vos comptes existants S'il s'agissait d'une erreur, veuillez passer à  <a "
@@ -747,9 +748,9 @@ msgid ""
 "You are about to use your <strong>%(provider_name)s</strong> account to "
 "login to %(site_name)s. As a final step, please complete the following form:"
 msgstr ""
-"Vous êtes sur le point d'utiliser votre compte pour <strong>"
-"%(provider_name)s</strong> se connecter à %(site_name)s. Pour terminer, "
-"veuillez remplir le formulaire suivant:"
+"Vous êtes sur le point d'utiliser votre compte pour "
+"<strong>%(provider_name)s</strong> se connecter à %(site_name)s. Pour "
+"terminer, veuillez remplir le formulaire suivant:"
 
 #: accounts/templatetags/accounts_tags.py:19
 #: projects/templates/projects/projects.html:118
@@ -771,6 +772,7 @@ msgstr "Nom"
 #: questions/templates/questions/catalogs_modal_form_questions.html:369
 #: questions/templates/questions/catalogs_modal_form_questionsets.html:158
 #: questions/templates/questions/catalogs_modal_form_questionsets.html:288
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:14
 #: tasks/models.py:131 tasks/templates/tasks/tasks_export.html:48
 #: tasks/templates/tasks/tasks_modal_form_conditions.html:11
 #: tasks/templates/tasks/tasks_modal_form_conditions.html:19
@@ -794,9 +796,10 @@ msgstr "Conditions"
 #: questions/templates/questions/catalogs.html:58
 #: questions/templates/questions/catalogs.html:101
 #: questions/templates/questions/catalogs_element.html:23
-#: questions/templates/questions/catalogs_element.html:56 tasks/models.py:21
-#: tasks/templates/tasks/tasks_export.html:15 views/models.py:21
-#: views/templates/views/views_export.html:15
+#: questions/templates/questions/catalogs_element.html:56
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:8
+#: tasks/models.py:21 tasks/templates/tasks/tasks_export.html:15
+#: views/models.py:21 views/templates/views/views_export.html:15
 msgid "URI"
 msgstr "URI"
 
@@ -907,6 +910,7 @@ msgstr ""
 #: options/templates/options/options.html:151
 #: questions/templates/questions/catalogs_element.html:30
 #: questions/templates/questions/catalogs_element.html:63
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:14
 msgid "Condition"
 msgstr "État"
 
@@ -917,7 +921,7 @@ msgstr "Filtrer condition"
 #: conditions/templates/conditions/conditions.html:31
 #: domain/templates/domain/domain.html:31
 #: options/templates/options/options.html:31
-#: questions/templates/questions/catalogs_sidebar.html:16
+#: questions/templates/questions/catalogs_sidebar.html:29
 #: tasks/templates/tasks/tasks.html:32 views/templates/views/views.html:31
 msgid "Search"
 msgstr "Rechercher"
@@ -925,7 +929,7 @@ msgstr "Rechercher"
 #: conditions/templates/conditions/conditions.html:42
 #: domain/templates/domain/domain.html:42
 #: options/templates/options/options.html:42
-#: questions/templates/questions/catalogs_sidebar.html:27
+#: questions/templates/questions/catalogs_sidebar.html:40
 #: tasks/templates/tasks/tasks.html:43 views/templates/views/views.html:42
 msgid "All URI prefixes"
 msgstr "Tous les préfixes URI"
@@ -945,7 +949,8 @@ msgstr "Tous les préfixes URI"
 #: projects/templates/projects/projects.html:25
 #: projects/templates/projects/site_projects.html:23
 #: questions/templates/questions/catalog_tree.html:104
-#: questions/templates/questions/catalogs_sidebar.html:52
+#: questions/templates/questions/catalogs_sidebar.html:78
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:26
 #: tasks/templates/tasks/tasks.html:50 views/templates/views/views.html:49
 msgid "Options"
 msgstr "Options"
@@ -960,8 +965,8 @@ msgstr "Créer une nouvelle condition"
 #: projects/templates/projects/project_answers.html:35
 #: projects/templates/projects/project_detail_sidebar.html:111
 #: projects/templates/projects/project_view.html:50
-#: questions/templates/questions/catalogs_sidebar.html:96
-#: questions/templates/questions/catalogs_sidebar.html:114
+#: questions/templates/questions/catalogs_sidebar.html:122
+#: questions/templates/questions/catalogs_sidebar.html:140
 #: tasks/templates/tasks/tasks.html:60 views/templates/views/views.html:59
 msgid "Export"
 msgstr "Exporter"
@@ -969,7 +974,7 @@ msgstr "Exporter"
 #: conditions/templates/conditions/conditions.html:73
 #: domain/templates/domain/domain.html:86
 #: options/templates/options/options.html:88
-#: questions/templates/questions/catalogs_sidebar.html:103
+#: questions/templates/questions/catalogs_sidebar.html:129
 #: tasks/templates/tasks/tasks.html:75 views/templates/views/views.html:74
 msgid "XML"
 msgstr "XML"
@@ -979,7 +984,7 @@ msgstr "XML"
 #: management/templates/management/upload.html:21
 #: options/templates/options/options.html:93
 #: projects/templates/projects/project_detail_sidebar_parent_import.html:15
-#: questions/templates/questions/catalogs_sidebar.html:131
+#: questions/templates/questions/catalogs_sidebar.html:157
 #: tasks/templates/tasks/tasks.html:80 views/templates/views/views.html:79
 msgid "Import"
 msgstr "Importer"
@@ -1019,8 +1024,8 @@ msgstr "Cible"
 msgid ""
 "You are about to permanently delete the condition <code>%(object)s</code>."
 msgstr ""
-"Vous êtes sur le point de supprimer définitivement la condition <code>"
-"%(object)s</code>."
+"Vous êtes sur le point de supprimer définitivement la condition "
+"<code>%(object)s</code>."
 
 #: conditions/templates/conditions/conditions_modal_delete_conditions.html:23
 #: conditions/templates/conditions/conditions_modal_show_conditions.html:15
@@ -1164,6 +1169,7 @@ msgstr "Ensembles de questions"
 #: projects/templates/projects/issue_detail.html:37 questions/apps.py:7
 #: questions/models/question.py:259
 #: questions/templates/questions/catalogs.html:37
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:8
 msgid "Questions"
 msgstr "Questions"
 
@@ -1183,7 +1189,7 @@ msgstr "Tâches"
 msgid "This field is required."
 msgstr "Ce champ est obligatoire."
 
-#: core/constants.py:14 core/settings.py:288
+#: core/constants.py:14 core/settings.py:291
 #: options/templates/options/options_export.html:39
 #: options/templates/options/options_modal_form_options.html:163
 #: projects/models/value.py:64 questions/constants.py:4
@@ -1245,83 +1251,83 @@ msgstr "Anglais"
 msgid "German"
 msgstr "Allemand"
 
-#: core/settings.py:233
+#: core/settings.py:234
 msgid "PDF"
 msgstr "PDF"
 
-#: core/settings.py:234
+#: core/settings.py:235
 msgid "Rich Text Format"
 msgstr "Rich Text Format"
 
-#: core/settings.py:235
+#: core/settings.py:236
 msgid "Open Office"
 msgstr "Open Office"
 
-#: core/settings.py:236
+#: core/settings.py:237
 msgid "Microsoft Office"
 msgstr "Microsoft Office"
 
-#: core/settings.py:237
+#: core/settings.py:238
 msgid "HTML"
 msgstr "HTML"
 
-#: core/settings.py:238
+#: core/settings.py:239
 msgid "Markdown"
 msgstr "Markdown"
 
-#: core/settings.py:239
+#: core/settings.py:240
 msgid "mediawiki"
 msgstr "mediawiki"
 
-#: core/settings.py:240
+#: core/settings.py:241
 msgid "LaTeX"
 msgstr "LaTeX"
 
-#: core/settings.py:260 core/settings.py:266
+#: core/settings.py:261 core/settings.py:267
 msgid "RDMO XML"
 msgstr "RDMO XML"
 
-#: core/settings.py:261 domain/templates/domain/domain.html:74
+#: core/settings.py:262 domain/templates/domain/domain.html:74
 msgid "CSV comma separated"
 msgstr "CSV séparées par des virgules"
 
-#: core/settings.py:262 domain/templates/domain/domain.html:79
+#: core/settings.py:263 domain/templates/domain/domain.html:79
 msgid "CSV semicolon separated"
 msgstr "CSV point-virgule séparé"
 
-#: core/settings.py:289 questions/constants.py:5
+#: core/settings.py:292 questions/constants.py:5
 msgid "Textarea"
 msgstr "Zone de texte"
 
-#: core/settings.py:290 questions/constants.py:6
+#: core/settings.py:293 questions/constants.py:6
 msgid "Yes/No"
 msgstr "Oui/Non"
 
-#: core/settings.py:291 questions/constants.py:7
+#: core/settings.py:294 questions/constants.py:7
 msgid "Checkboxes"
 msgstr "Cases à cocher"
 
-#: core/settings.py:292 questions/constants.py:8
+#: core/settings.py:295 questions/constants.py:8
 msgid "Radio buttons"
 msgstr "Boutons radio"
 
-#: core/settings.py:293 questions/constants.py:9
+#: core/settings.py:296 questions/constants.py:9
 msgid "Select drop-down"
 msgstr "Sélectionnez le menu déroulant"
 
-#: core/settings.py:294 questions/constants.py:10
+#: core/settings.py:297 questions/constants.py:10
 msgid "Autocomplete"
 msgstr "Autocomplétion"
 
-#: core/settings.py:295 questions/constants.py:11
+#: core/settings.py:298 questions/constants.py:11
 msgid "Range slider"
 msgstr "Curseur de gamme"
 
-#: core/settings.py:296 questions/constants.py:12
+#: core/settings.py:299 questions/constants.py:12
 msgid "Date picker"
 msgstr "Sélecteur de date"
 
-#: core/settings.py:297 questions/constants.py:13
+#: core/settings.py:300 questions/constants.py:13
 msgid "File upload"
 msgstr "Téléchargement de fichiers"
 
@@ -1507,6 +1513,7 @@ msgid "Attribute"
 msgstr "Attribut"
 
 #: domain/models.py:51
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:20
 msgid "Attributes"
 msgstr "Les attributs"
 
@@ -1528,8 +1535,8 @@ msgstr "Supprimer l'attribut"
 msgid ""
 "You are about to permanently delete the attribute <code>%(object)s</code>."
 msgstr ""
-"Vous êtes sur le point de supprimer définitivement l'attribut <code>"
-"%(object)s</code>."
+"Vous êtes sur le point de supprimer définitivement l'attribut "
+"<code>%(object)s</code>."
 
 #: domain/templates/domain/domain_modal_delete_attributes.html:23
 msgid "This will also delete the following attributes:"
@@ -1539,8 +1546,8 @@ msgstr "Cela supprimera également les attributs suivants:"
 #: domain/templates/domain/domain_modal_show_attributes.html:15
 #, python-format
 msgid ""
-"This attribute is used for <b>%(values_count)s values</b> in <b>"
-"%(projects_count)s projects</b>."
+"This attribute is used for <b>%(values_count)s values</b> in "
+"<b>%(projects_count)s projects</b>."
 msgstr ""
 "Cet attribut est utilisé pour les valeurs de <b>%(values_count)s </b> dans "
 "<b>%(projects_count)s projets</b>."
@@ -1693,14 +1700,18 @@ msgstr "Importer éléments"
 msgid "Import error"
 msgstr "Erreur d'import"
 
-#: management/views.py:47 management/views.py:108
-msgid "This is not a RDMO XML file."
-msgstr "Il ne s'agit pas d'un fichier XML RDMO."
+#: management/views.py:47
+msgid "This is not a valid RDMO XML file."
+msgstr "Il ne s'agit pas d'un fichier XML RDMO valide."
 
 #: management/views.py:63 management/views.py:125
 msgid "Forbidden."
 msgstr "Interdit."
 
+#: management/views.py:108
+msgid "This is not a RDMO XML file."
+msgstr "Il ne s'agit pas d'un fichier XML RDMO."
+
 #: options/models.py:16
 msgid "The Uniform Resource Identifier of this option set (auto-generated)."
 msgstr ""
@@ -1903,11 +1914,11 @@ msgstr ""
 #: options/templates/options/options_modal_show_options.html:15
 #, python-format
 msgid ""
-"This option is used for <b>%(values_count)s values</b> in <b>"
-"%(projects_count)s projects</b>."
+"This option is used for <b>%(values_count)s values</b> in "
+"<b>%(projects_count)s projects</b>."
 msgstr ""
-"Cette option est utilisée pour <b>%(values_count)s valeurs</b> dans <b>"
-"%(projects_count)s projets</b>."
+"Cette option est utilisée pour <b>%(values_count)s valeurs</b> dans "
+"<b>%(projects_count)s projets</b>."
 
 #: options/templates/options/options_modal_delete_options.html:29
 #, python-format
@@ -2090,7 +2101,7 @@ msgstr ""
 msgid "Reset overlays"
 msgstr "Réinitialisation des superpositions"
 
-#: projects/apps.py:7 projects/models/project.py:71
+#: projects/apps.py:8 projects/models/project.py:71
 msgid "Projects"
 msgstr "Projets"
 
@@ -2851,11 +2862,11 @@ msgstr "A qui cela peut concerner,"
 #: projects/templates/projects/issue_send_message.txt:3
 #, python-format
 msgid ""
-"The following task was identified in the project \"%(project_title)s\" <"
-"%(project_url)s>:"
+"The following task was identified in the project \"%(project_title)s\" "
+"<%(project_url)s>:"
 msgstr ""
-"La tâche suivante a été identifiée dans le projet \"%(project_title)s\" <"
-"%(project_url)s>:"
+"La tâche suivante a été identifiée dans le projet \"%(project_title)s\" "
+"<%(project_url)s>:"
 
 #: projects/templates/projects/issue_send_message.txt:13
 #, python-format
@@ -3402,17 +3413,18 @@ msgstr "Aucune option n'est disponible."
 msgid "Please select"
 msgstr "Veuillez sélectionner"
 
-#: projects/templates/projects/project_questions_head.html:4
-msgid "Questionnaire"
-msgstr "Question"
+#: projects/templates/projects/project_questions_head.html:5
+#: projects/templates/projects/projects.html:113
+msgid "My Projects"
+msgstr "Mes projets"
 
 #: projects/templates/projects/project_questions_modal_delete_valuesets.html:17
 #, python-format
 msgid ""
 "You are about to permanently delete the %(name)s <strong>%(object)s</strong>."
 msgstr ""
-"Vous êtes sur le point de supprimer définitivement les %(name)s <strong>"
-"%(object)s</strong>."
+"Vous êtes sur le point de supprimer définitivement les %(name)s "
+"<strong>%(object)s</strong>."
 
 #: projects/templates/projects/project_questions_modal_delete_valuesets.html:23
 #, python-format
@@ -3446,11 +3458,11 @@ msgstr ""
 
 #: projects/templates/projects/project_questions_navigation_help.html:14
 msgid ""
-"Entries with <i class=\"fa fa-question-circle-o small\" aria-hidden=\"true"
-"\"></i> might be skipped based on your input."
+"Entries with <i class=\"fa fa-question-circle-o small\" aria-"
+"hidden=\"true\"></i> might be skipped based on your input."
 msgstr ""
-"Les entrées avec <i class=\"fa fa-question-circle-o small\" aria-hidden="
-"\"true\"></i> peuvent être ignorées en fonction de votre saisie."
+"Les entrées avec <i class=\"fa fa-question-circle-o small\" aria-"
+"hidden=\"true\"></i> peuvent être ignorées en fonction de votre saisie."
 
 #: projects/templates/projects/project_questions_overview.html:14
 #: projects/templates/projects/site_projects.html:27
@@ -3518,7 +3530,7 @@ msgid "Navigation"
 msgstr "Navigation"
 
 #: projects/templates/projects/project_view.html:90
-#: projects/views/project.py:165
+#: projects/views/project.py:175
 msgid "Error"
 msgstr "Erreur"
 
@@ -3555,10 +3567,6 @@ msgstr "Invitations en cours"
 msgid "Click on one of the links to join the projects."
 msgstr "Cliquez sur l'un des liens pour rejoindre les projets."
 
-#: projects/templates/projects/projects.html:113
-msgid "My Projects"
-msgstr "Mes projets"
-
 #: projects/templates/projects/projects.html:120
 #: projects/templates/projects/site_projects.html:41
 msgid "Last changed"
@@ -3610,16 +3618,16 @@ msgid "You reached the file quota for this project."
 msgstr ""
 "Le titre de ce projet.Vous avez atteint le quota de dossiers pour ce projet."
 
-#: projects/views/project.py:145
+#: projects/views/project.py:155
 msgid "Sorry, your invitation has been expired."
 msgstr "Désolé, votre invitation a expiré."
 
-#: projects/views/project.py:148
+#: projects/views/project.py:158
 #, python-format
 msgid "Sorry, but this invitation is for the user \"%s\"."
 msgstr "Désolé, mais cette invitation est pour l'utilisateur \"%s\"."
 
-#: projects/views/project.py:162
+#: projects/views/project.py:172
 msgid "Sorry, the invitation link is not valid."
 msgstr "Désolé, le lien d'invitation n'est pas valide."
 
@@ -4348,11 +4356,11 @@ msgstr "En option"
 #: questions/templates/questions/catalogs_modal_delete_catalogs.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the catalog <code class=\"text-primary\">"
-"%(object)s</code>."
+"You are about to permanently delete the catalog <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
-"Vous êtes sur le point de supprimer définitivement le catalogue <code class="
-"\"text-primary\">%(object)s</code>."
+"Vous êtes sur le point de supprimer définitivement le catalogue <code "
+"class=\"text-primary\">%(object)s</code>."
 
 #: questions/templates/questions/catalogs_modal_delete_catalogs.html:24
 #, python-format
@@ -4373,11 +4381,11 @@ msgstr ""
 #: questions/templates/questions/catalogs_modal_delete_questions.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the question <code class=\"text-primary"
-"\">%(object)s</code>."
+"You are about to permanently delete the question <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
-"Vous êtes sur le point de supprimer définitivement la question <code class="
-"\"text-primary\">%(object)s</code>."
+"Vous êtes sur le point de supprimer définitivement la question <code "
+"class=\"text-primary\">%(object)s</code>."
 
 #: questions/templates/questions/catalogs_modal_delete_questionsets.html:17
 #, python-format
@@ -4391,11 +4399,11 @@ msgstr ""
 #: questions/templates/questions/catalogs_modal_delete_sections.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the section <code class=\"text-primary\">"
-"%(object)s</code>."
+"You are about to permanently delete the section <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
-"Vous êtes sur le point de supprimer définitivement la section <code class="
-"\"text-primary\">%(object)s</code>."
+"Vous êtes sur le point de supprimer définitivement la section <code "
+"class=\"text-primary\">%(object)s</code>."
 
 #: questions/templates/questions/catalogs_modal_form_catalogs.html:12
 msgid "Create catalog"
@@ -4403,7 +4411,7 @@ msgstr "Créer un nouveau catalogue"
 
 #: questions/templates/questions/catalogs_modal_form_catalogs.html:13
 #: questions/templates/questions/catalogs_options_catalog.html:16
-#: questions/templates/questions/catalogs_sidebar.html:63
+#: questions/templates/questions/catalogs_sidebar.html:89
 msgid "Copy catalog"
 msgstr "Copier le catalogue"
 
@@ -4600,7 +4608,7 @@ msgid "Export catalog as XML"
 msgstr "Exporter le catalogue en XML"
 
 #: questions/templates/questions/catalogs_options_catalog.html:26
-#: questions/templates/questions/catalogs_sidebar.html:68
+#: questions/templates/questions/catalogs_sidebar.html:94
 msgid "Delete catalog"
 msgstr "Supprimer le catalogue"
 
@@ -4645,39 +4653,47 @@ msgstr "Exporter section au format XML"
 msgid "Delete section"
 msgstr "Supprimer la section"
 
-#: questions/templates/questions/catalogs_sidebar.html:11
+#: questions/templates/questions/catalogs_sidebar.html:18
+msgid "Filter catalogs for"
+msgstr "Catalogues de filtres pour"
+
+#: questions/templates/questions/catalogs_sidebar.html:24
 msgid "Filter questions"
 msgstr "Filtrer question"
 
-#: questions/templates/questions/catalogs_sidebar.html:38
+#: questions/templates/questions/catalogs_sidebar.html:51
 msgid "Show questionsets"
 msgstr "Afficher les ensemble des questions"
 
-#: questions/templates/questions/catalogs_sidebar.html:47
+#: questions/templates/questions/catalogs_sidebar.html:60
 msgid "Show questions"
 msgstr "Afficher les questions"
 
-#: questions/templates/questions/catalogs_sidebar.html:57
+#: questions/templates/questions/catalogs_sidebar.html:69
+msgid "Show URIs"
+msgstr "Montrer des URIs"
+
+#: questions/templates/questions/catalogs_sidebar.html:83
 msgid "Update catalog details"
 msgstr "Mettre à jour les détails du catalogue"
 
-#: questions/templates/questions/catalogs_sidebar.html:76
+#: questions/templates/questions/catalogs_sidebar.html:102
 msgid "Create new catalog"
 msgstr "Créer un nouveau catalogue"
 
-#: questions/templates/questions/catalogs_sidebar.html:81
+#: questions/templates/questions/catalogs_sidebar.html:107
 msgid "Create new section"
 msgstr "Créer une nouvelle section"
 
-#: questions/templates/questions/catalogs_sidebar.html:86
+#: questions/templates/questions/catalogs_sidebar.html:112
 msgid "Create new questionset"
 msgstr "Créer un nouvel ensemble de questions"
 
-#: questions/templates/questions/catalogs_sidebar.html:91
+#: questions/templates/questions/catalogs_sidebar.html:117
 msgid "Create new question"
 msgstr "Créer une nouvelle question"
 
-#: questions/templates/questions/catalogs_sidebar.html:143
+#: questions/templates/questions/catalogs_sidebar.html:169
 #, python-format
 msgid "This catalog is used in <b>%(projects_count)s projects</b>."
 msgstr "Ce catalogue est utilisé dans <b>%(projects_count)s projets</b>."
@@ -4894,8 +4910,8 @@ msgstr "tous"
 #, python-format
 msgid "You are about to permanently delete the task <code>%(object)s</code>."
 msgstr ""
-"Vous êtes sur le point de supprimer définitivement la tâche <code>"
-"%(object)s</code>."
+"Vous êtes sur le point de supprimer définitivement la tâche "
+"<code>%(object)s</code>."
 
 #: tasks/templates/tasks/tasks_modal_form_tasks.html:12
 msgid "Create task"
@@ -5102,6 +5118,9 @@ msgid "An empty list implies that the view can be used with every catalog."
 msgstr ""
 "Une liste vide implique que la vue peut être utilisée avec chaque catalogue."
 
+#~ msgid "Questionnaire"
+#~ msgstr "Question"
+
 #~ msgid "Contact"
 #~ msgstr "Contact"
 
@@ -5362,8 +5381,8 @@ msgstr ""
 #~ msgid ""
 #~ "You are about to permanently delete the entity <code>%(object)s</code>."
 #~ msgstr ""
-#~ "Vous êtes sur le point de supprimer définitivement l'entité <code>"
-#~ "%(object)s</code>."
+#~ "Vous êtes sur le point de supprimer définitivement l'entité "
+#~ "<code>%(object)s</code>."
 
 #~ msgid "The prefix for the URI of this entity."
 #~ msgstr "Préfixe de l'URI de cette entité."
diff --git a/rdmo/locale/it/LC_MESSAGES/django.mo b/rdmo/locale/it/LC_MESSAGES/django.mo
index 9dfe200c70..49b1e8650a 100644
Binary files a/rdmo/locale/it/LC_MESSAGES/django.mo and b/rdmo/locale/it/LC_MESSAGES/django.mo differ
diff --git a/rdmo/locale/it/LC_MESSAGES/django.po b/rdmo/locale/it/LC_MESSAGES/django.po
index 20364a7c72..4a0eeb69a8 100644
--- a/rdmo/locale/it/LC_MESSAGES/django.po
+++ b/rdmo/locale/it/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-29 13:28+0200\n"
+"POT-Creation-Date: 2022-11-28 11:07+0100\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Dario Pilori <d.pilori@inrim.it>\n"
 "Language-Team: \n"
@@ -321,11 +321,11 @@ msgstr "Conferma"
 #: accounts/templates/account/email_confirm.html:29
 #, python-format
 msgid ""
-"This e-mail confirmation link expired or is invalid. Please <a href="
-"\"%(email_url)s\">issue a new e-mail confirmation request</a>."
+"This e-mail confirmation link expired or is invalid. Please <a "
+"href=\"%(email_url)s\">issue a new e-mail confirmation request</a>."
 msgstr ""
-"Il link di conferma è scaduto. È possibile <a href=\"%(email_url)s"
-"\">chiedere una nuova e-mail di conferma</a>."
+"Il link di conferma è scaduto. È possibile <a "
+"href=\"%(email_url)s\">chiedere una nuova e-mail di conferma</a>."
 
 #: accounts/templates/account/login.html:6
 #: accounts/templates/account/login_form.html:20
@@ -342,20 +342,20 @@ msgstr "Accesso con Shibboleth"
 #: accounts/templates/account/login_form_account.html:7
 #, python-format
 msgid ""
-"If you have not created an account yet, then please <a href=\"%(signup_url)s"
-"\">sign up</a> first."
+"If you have not created an account yet, then please <a "
+"href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
-"Se non hai ancora creato un account, devi prima <a href=\"%(signup_url)s"
-"\">registrarti</a>."
+"Se non hai ancora creato un account, devi prima <a "
+"href=\"%(signup_url)s\">registrarti</a>."
 
 #: accounts/templates/account/login_form_account.html:14
 #, python-format
 msgid ""
-"If you forgot your password and want to reset it, click <a href="
-"\"%(reset_url)s\">here</a>."
+"If you forgot your password and want to reset it, click <a "
+"href=\"%(reset_url)s\">here</a>."
 msgstr ""
-"Password dimenticata? Per reimpostarla, cliccare <a href=\"%(reset_url)s"
-"\">qui</a>."
+"Password dimenticata? Per reimpostarla, cliccare <a "
+"href=\"%(reset_url)s\">qui</a>."
 
 #: accounts/templates/account/login_form_socialaccount.html:9
 msgid ""
@@ -431,8 +431,8 @@ msgid ""
 "a>."
 msgstr ""
 "Il link di reimpostazione password è errato, probabilmente perché già "
-"utilizzato. È possibile richiedere una <a href=\"%(passwd_reset_url)s"
-"\">nuova reimpostazione</a>."
+"utilizzato. È possibile richiedere una <a "
+"href=\"%(passwd_reset_url)s\">nuova reimpostazione</a>."
 
 #: accounts/templates/account/password_reset_from_key.html:18
 msgid "Enter new password"
@@ -585,15 +585,15 @@ msgid ""
 "<strong>Note:</strong> you can still <a href=\"%(email_url)s\">change your e-"
 "mail address</a>."
 msgstr ""
-"<strong>Attenzione:</strong> è ancora possibile <a href=\"%(email_url)s"
-"\">cambiare il proprio indirizzo e-mail</a>."
+"<strong>Attenzione:</strong> è ancora possibile <a "
+"href=\"%(email_url)s\">cambiare il proprio indirizzo e-mail</a>."
 
 #: accounts/templates/profile/profile_remove_closed.html:6
 #: accounts/templates/profile/profile_remove_failed.html:6
 #: accounts/templates/profile/profile_remove_form.html:7
 #: accounts/templates/profile/profile_remove_form.html:17
 #: accounts/templates/profile/profile_remove_success.html:6
-#: accounts/templates/profile/profile_update_form.html:28
+#: accounts/templates/profile/profile_update_form.html:30
 #: accounts/templates/profile/profile_update_form.html:37
 #: core/templates/core/base_navigation.html:123
 msgid "Delete profile"
@@ -653,8 +653,8 @@ msgid ""
 msgstr ""
 "Inserire le informazioni aggiornate del proprio account. La password può "
 "essere cambiata con l'apposito <a href=\"%(password_url)s\">modulo</a>. Per "
-"modificare il proprio indirizzo e-mail, visitare <a href=\"%(email_url)s"
-"\">questa pagina</a>."
+"modificare il proprio indirizzo e-mail, visitare <a "
+"href=\"%(email_url)s\">questa pagina</a>."
 
 #: accounts/templates/profile/profile_update_form.html:33
 msgid ""
@@ -708,8 +708,8 @@ msgstr "Accesso annullato"
 #, python-format
 msgid ""
 "You decided to cancel logging in to our site using one of your existing "
-"accounts. If this was a mistake, please proceed to <a href=\"%(login_url)s"
-"\">sign in</a>."
+"accounts. If this was a mistake, please proceed to <a "
+"href=\"%(login_url)s\">sign in</a>."
 msgstr ""
 "L'accesso a questo sito mediante un altro account esistente è stato "
 "interrotto. In caso di errore, è possibile <a href=\"%(login_url)s\">entrare "
@@ -744,6 +744,7 @@ msgstr "Nome"
 #: questions/templates/questions/catalogs_modal_form_questions.html:369
 #: questions/templates/questions/catalogs_modal_form_questionsets.html:158
 #: questions/templates/questions/catalogs_modal_form_questionsets.html:288
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:14
 #: tasks/models.py:131 tasks/templates/tasks/tasks_export.html:48
 #: tasks/templates/tasks/tasks_modal_form_conditions.html:11
 #: tasks/templates/tasks/tasks_modal_form_conditions.html:19
@@ -767,9 +768,10 @@ msgstr "Condizioni"
 #: questions/templates/questions/catalogs.html:58
 #: questions/templates/questions/catalogs.html:101
 #: questions/templates/questions/catalogs_element.html:23
-#: questions/templates/questions/catalogs_element.html:56 tasks/models.py:21
-#: tasks/templates/tasks/tasks_export.html:15 views/models.py:21
-#: views/templates/views/views_export.html:15
+#: questions/templates/questions/catalogs_element.html:56
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:8
+#: tasks/models.py:21 tasks/templates/tasks/tasks_export.html:15
+#: views/models.py:21 views/templates/views/views_export.html:15
 msgid "URI"
 msgstr "URI"
 
@@ -879,6 +881,7 @@ msgstr ""
 #: options/templates/options/options.html:151
 #: questions/templates/questions/catalogs_element.html:30
 #: questions/templates/questions/catalogs_element.html:63
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:14
 msgid "Condition"
 msgstr "Condizione"
 
@@ -889,7 +892,7 @@ msgstr "Filtra condizioni"
 #: conditions/templates/conditions/conditions.html:31
 #: domain/templates/domain/domain.html:31
 #: options/templates/options/options.html:31
-#: questions/templates/questions/catalogs_sidebar.html:16
+#: questions/templates/questions/catalogs_sidebar.html:29
 #: tasks/templates/tasks/tasks.html:32 views/templates/views/views.html:31
 msgid "Search"
 msgstr "Cerca"
@@ -897,7 +900,7 @@ msgstr "Cerca"
 #: conditions/templates/conditions/conditions.html:42
 #: domain/templates/domain/domain.html:42
 #: options/templates/options/options.html:42
-#: questions/templates/questions/catalogs_sidebar.html:27
+#: questions/templates/questions/catalogs_sidebar.html:40
 #: tasks/templates/tasks/tasks.html:43 views/templates/views/views.html:42
 msgid "All URI prefixes"
 msgstr "Tutti i prefissi dell'URI"
@@ -917,7 +920,8 @@ msgstr "Tutti i prefissi dell'URI"
 #: projects/templates/projects/projects.html:25
 #: projects/templates/projects/site_projects.html:23
 #: questions/templates/questions/catalog_tree.html:104
-#: questions/templates/questions/catalogs_sidebar.html:52
+#: questions/templates/questions/catalogs_sidebar.html:78
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:26
 #: tasks/templates/tasks/tasks.html:50 views/templates/views/views.html:49
 msgid "Options"
 msgstr "Opzioni"
@@ -932,8 +936,8 @@ msgstr "Crea nuova condizione"
 #: projects/templates/projects/project_answers.html:35
 #: projects/templates/projects/project_detail_sidebar.html:111
 #: projects/templates/projects/project_view.html:50
-#: questions/templates/questions/catalogs_sidebar.html:96
-#: questions/templates/questions/catalogs_sidebar.html:114
+#: questions/templates/questions/catalogs_sidebar.html:122
+#: questions/templates/questions/catalogs_sidebar.html:140
 #: tasks/templates/tasks/tasks.html:60 views/templates/views/views.html:59
 msgid "Export"
 msgstr "Esporta"
@@ -941,7 +945,7 @@ msgstr "Esporta"
 #: conditions/templates/conditions/conditions.html:73
 #: domain/templates/domain/domain.html:86
 #: options/templates/options/options.html:88
-#: questions/templates/questions/catalogs_sidebar.html:103
+#: questions/templates/questions/catalogs_sidebar.html:129
 #: tasks/templates/tasks/tasks.html:75 views/templates/views/views.html:74
 msgid "XML"
 msgstr "XML"
@@ -951,7 +955,7 @@ msgstr "XML"
 #: management/templates/management/upload.html:21
 #: options/templates/options/options.html:93
 #: projects/templates/projects/project_detail_sidebar_parent_import.html:15
-#: questions/templates/questions/catalogs_sidebar.html:131
+#: questions/templates/questions/catalogs_sidebar.html:157
 #: tasks/templates/tasks/tasks.html:80 views/templates/views/views.html:79
 msgid "Import"
 msgstr "Importa"
@@ -1135,6 +1139,7 @@ msgstr "Raccolte di domande"
 #: projects/templates/projects/issue_detail.html:37 questions/apps.py:7
 #: questions/models/question.py:259
 #: questions/templates/questions/catalogs.html:37
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:8
 msgid "Questions"
 msgstr "Domande"
 
@@ -1154,7 +1159,7 @@ msgstr "Attività"
 msgid "This field is required."
 msgstr "Questo campo è richiesto."
 
-#: core/constants.py:14 core/settings.py:288
+#: core/constants.py:14 core/settings.py:291
 #: options/templates/options/options_export.html:39
 #: options/templates/options/options_modal_form_options.html:163
 #: projects/models/value.py:64 questions/constants.py:4
@@ -1216,83 +1221,83 @@ msgstr "Inglese"
 msgid "German"
 msgstr "Tedesco"
 
-#: core/settings.py:233
+#: core/settings.py:234
 msgid "PDF"
 msgstr "PDF"
 
-#: core/settings.py:234
+#: core/settings.py:235
 msgid "Rich Text Format"
 msgstr "Rich Text Format"
 
-#: core/settings.py:235
+#: core/settings.py:236
 msgid "Open Office"
 msgstr "Open Office"
 
-#: core/settings.py:236
+#: core/settings.py:237
 msgid "Microsoft Office"
 msgstr "Microsoft Office"
 
-#: core/settings.py:237
+#: core/settings.py:238
 msgid "HTML"
 msgstr "HTML"
 
-#: core/settings.py:238
+#: core/settings.py:239
 msgid "Markdown"
 msgstr "Markdown"
 
-#: core/settings.py:239
+#: core/settings.py:240
 msgid "mediawiki"
 msgstr "mediawiki"
 
-#: core/settings.py:240
+#: core/settings.py:241
 msgid "LaTeX"
 msgstr "LaTeX"
 
-#: core/settings.py:260 core/settings.py:266
+#: core/settings.py:261 core/settings.py:267
 msgid "RDMO XML"
 msgstr "RDMO XML"
 
-#: core/settings.py:261 domain/templates/domain/domain.html:74
+#: core/settings.py:262 domain/templates/domain/domain.html:74
 msgid "CSV comma separated"
 msgstr "CSV separato da virgole"
 
-#: core/settings.py:262 domain/templates/domain/domain.html:79
+#: core/settings.py:263 domain/templates/domain/domain.html:79
 msgid "CSV semicolon separated"
 msgstr "CSV separato da punto e virgola"
 
-#: core/settings.py:289 questions/constants.py:5
+#: core/settings.py:292 questions/constants.py:5
 msgid "Textarea"
 msgstr "Textarea"
 
-#: core/settings.py:290 questions/constants.py:6
+#: core/settings.py:293 questions/constants.py:6
 msgid "Yes/No"
 msgstr "Sì/No"
 
-#: core/settings.py:291 questions/constants.py:7
+#: core/settings.py:294 questions/constants.py:7
 msgid "Checkboxes"
 msgstr "Caselle di controllo"
 
-#: core/settings.py:292 questions/constants.py:8
+#: core/settings.py:295 questions/constants.py:8
 msgid "Radio buttons"
 msgstr "Pulsanti radio"
 
-#: core/settings.py:293 questions/constants.py:9
+#: core/settings.py:296 questions/constants.py:9
 msgid "Select drop-down"
 msgstr "Seleziona il menu a tendina"
 
-#: core/settings.py:294 questions/constants.py:10
+#: core/settings.py:297 questions/constants.py:10
 msgid "Autocomplete"
 msgstr "Autocompletamento"
 
-#: core/settings.py:295 questions/constants.py:11
+#: core/settings.py:298 questions/constants.py:11
 msgid "Range slider"
 msgstr "Cursore di gamma"
 
-#: core/settings.py:296 questions/constants.py:12
+#: core/settings.py:299 questions/constants.py:12
 msgid "Date picker"
 msgstr "Raccoglitore di date"
 
-#: core/settings.py:297 questions/constants.py:13
+#: core/settings.py:300 questions/constants.py:13
 msgid "File upload"
 msgstr "Caricamento dei file"
 
@@ -1477,6 +1482,7 @@ msgid "Attribute"
 msgstr "Attributo"
 
 #: domain/models.py:51
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:20
 msgid "Attributes"
 msgstr "Attributi"
 
@@ -1508,11 +1514,11 @@ msgstr "Verranno eliminati anche i seguenti attributi:"
 #: domain/templates/domain/domain_modal_show_attributes.html:15
 #, python-format
 msgid ""
-"This attribute is used for <b>%(values_count)s values</b> in <b>"
-"%(projects_count)s projects</b>."
+"This attribute is used for <b>%(values_count)s values</b> in "
+"<b>%(projects_count)s projects</b>."
 msgstr ""
-"Questo attributo è usato per <b>%(values_count)s valori</b> in <b>"
-"%(projects_count)s progetti</b>."
+"Questo attributo è usato per <b>%(values_count)s valori</b> in "
+"<b>%(projects_count)s progetti</b>."
 
 #: domain/templates/domain/domain_modal_delete_attributes.html:42
 #: domain/templates/domain/domain_modal_show_attributes.html:18
@@ -1660,14 +1666,18 @@ msgstr "Importa elementi"
 msgid "Import error"
 msgstr "Errore di importazione"
 
-#: management/views.py:47 management/views.py:108
-msgid "This is not a RDMO XML file."
-msgstr "Questo non è un file XML di RDMO."
+#: management/views.py:47
+msgid "This is not a valid RDMO XML file."
+msgstr "Questo non è un file XML RDMO valido."
 
 #: management/views.py:63 management/views.py:125
 msgid "Forbidden."
 msgstr "Proibito."
 
+#: management/views.py:108
+msgid "This is not a RDMO XML file."
+msgstr "Questo non è un file XML di RDMO."
+
 #: options/models.py:16
 msgid "The Uniform Resource Identifier of this option set (auto-generated)."
 msgstr ""
@@ -1869,11 +1879,11 @@ msgstr ""
 #: options/templates/options/options_modal_show_options.html:15
 #, python-format
 msgid ""
-"This option is used for <b>%(values_count)s values</b> in <b>"
-"%(projects_count)s projects</b>."
+"This option is used for <b>%(values_count)s values</b> in "
+"<b>%(projects_count)s projects</b>."
 msgstr ""
-"Questa opzione è usata per <b>%(values_count)s valori</b> in <b>"
-"%(projects_count)s progetti</b>."
+"Questa opzione è usata per <b>%(values_count)s valori</b> in "
+"<b>%(projects_count)s progetti</b>."
 
 #: options/templates/options/options_modal_delete_options.html:29
 #, python-format
@@ -2050,7 +2060,7 @@ msgstr ""
 msgid "Reset overlays"
 msgstr "Azzerare le sovrapposizioni"
 
-#: projects/apps.py:7 projects/models/project.py:71
+#: projects/apps.py:8 projects/models/project.py:71
 msgid "Projects"
 msgstr "Progetti"
 
@@ -2803,8 +2813,8 @@ msgstr "A chi possa interessare,"
 #: projects/templates/projects/issue_send_message.txt:3
 #, python-format
 msgid ""
-"The following task was identified in the project \"%(project_title)s\" <"
-"%(project_url)s>:"
+"The following task was identified in the project \"%(project_title)s\" "
+"<%(project_url)s>:"
 msgstr ""
 "La seguente attività è stata identificata nel progetto \"%(project_title)s\" "
 "<%(project_url)s>:"
@@ -3347,9 +3357,10 @@ msgstr "Nessuna opzione è disponibile."
 msgid "Please select"
 msgstr "Selezionare"
 
-#: projects/templates/projects/project_questions_head.html:4
-msgid "Questionnaire"
-msgstr "Questionario"
+#: projects/templates/projects/project_questions_head.html:5
+#: projects/templates/projects/projects.html:113
+msgid "My Projects"
+msgstr "I miei progetti"
 
 #: projects/templates/projects/project_questions_modal_delete_valuesets.html:17
 #, python-format
@@ -3390,8 +3401,8 @@ msgstr ""
 
 #: projects/templates/projects/project_questions_navigation_help.html:14
 msgid ""
-"Entries with <i class=\"fa fa-question-circle-o small\" aria-hidden=\"true"
-"\"></i> might be skipped based on your input."
+"Entries with <i class=\"fa fa-question-circle-o small\" aria-"
+"hidden=\"true\"></i> might be skipped based on your input."
 msgstr ""
 "Le voci con <i class=\"fa-question-circle-o small\" aria-hidden=\"true\"></"
 "i> potrebbero essere saltate in base al tuo input."
@@ -3460,7 +3471,7 @@ msgid "Navigation"
 msgstr "Navigazione"
 
 #: projects/templates/projects/project_view.html:90
-#: projects/views/project.py:165
+#: projects/views/project.py:175
 msgid "Error"
 msgstr "Errore"
 
@@ -3496,10 +3507,6 @@ msgstr "Inviti in sospeso"
 msgid "Click on one of the links to join the projects."
 msgstr "Clicca su uno dei link per unirti ai progetti."
 
-#: projects/templates/projects/projects.html:113
-msgid "My Projects"
-msgstr "I miei progetti"
-
 #: projects/templates/projects/projects.html:120
 #: projects/templates/projects/site_projects.html:41
 msgid "Last changed"
@@ -3550,16 +3557,16 @@ msgstr "Raccolta"
 msgid "You reached the file quota for this project."
 msgstr "Hai raggiunto la quota di file per questo progetto."
 
-#: projects/views/project.py:145
+#: projects/views/project.py:155
 msgid "Sorry, your invitation has been expired."
 msgstr "Spiacente, il tuo invito è scaduto."
 
-#: projects/views/project.py:148
+#: projects/views/project.py:158
 #, python-format
 msgid "Sorry, but this invitation is for the user \"%s\"."
 msgstr "Spiacente, ma questo invito è per l'utente \"%s\"."
 
-#: projects/views/project.py:162
+#: projects/views/project.py:172
 msgid "Sorry, the invitation link is not valid."
 msgstr "Spiacente, il link di invito non è valido."
 
@@ -4281,8 +4288,8 @@ msgstr "Opzionale"
 #: questions/templates/questions/catalogs_modal_delete_catalogs.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the catalog <code class=\"text-primary\">"
-"%(object)s</code>."
+"You are about to permanently delete the catalog <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
 "Il catalogo <code class=\"text-primary\">%(object)s</code> sta per essere "
 "eliminato permanentemente."
@@ -4306,8 +4313,8 @@ msgstr ""
 #: questions/templates/questions/catalogs_modal_delete_questions.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the question <code class=\"text-primary"
-"\">%(object)s</code>."
+"You are about to permanently delete the question <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
 "La domanda <code class=\"text-primary\">%(object)s</code> sta per essere "
 "eliminata permanentemente."
@@ -4324,8 +4331,8 @@ msgstr ""
 #: questions/templates/questions/catalogs_modal_delete_sections.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the section <code class=\"text-primary\">"
-"%(object)s</code>."
+"You are about to permanently delete the section <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
 "La sezione <code class=\"text-primary\">%(object)s</code> sta per essere "
 "eliminata permanentemente."
@@ -4336,7 +4343,7 @@ msgstr "Crea catalogo"
 
 #: questions/templates/questions/catalogs_modal_form_catalogs.html:13
 #: questions/templates/questions/catalogs_options_catalog.html:16
-#: questions/templates/questions/catalogs_sidebar.html:63
+#: questions/templates/questions/catalogs_sidebar.html:89
 msgid "Copy catalog"
 msgstr "Copia catalogo"
 
@@ -4533,7 +4540,7 @@ msgid "Export catalog as XML"
 msgstr "Esportazione del catalogo come XML"
 
 #: questions/templates/questions/catalogs_options_catalog.html:26
-#: questions/templates/questions/catalogs_sidebar.html:68
+#: questions/templates/questions/catalogs_sidebar.html:94
 msgid "Delete catalog"
 msgstr "Elimina catalogo"
 
@@ -4578,39 +4585,47 @@ msgstr "Esporta sezione come XML"
 msgid "Delete section"
 msgstr "Elimina sezione"
 
-#: questions/templates/questions/catalogs_sidebar.html:11
+#: questions/templates/questions/catalogs_sidebar.html:18
+msgid "Filter catalogs for"
+msgstr "Filtrare i cataloghi per"
+
+#: questions/templates/questions/catalogs_sidebar.html:24
 msgid "Filter questions"
 msgstr "Filtra domande"
 
-#: questions/templates/questions/catalogs_sidebar.html:38
+#: questions/templates/questions/catalogs_sidebar.html:51
 msgid "Show questionsets"
 msgstr "Mostra set di domande"
 
-#: questions/templates/questions/catalogs_sidebar.html:47
+#: questions/templates/questions/catalogs_sidebar.html:60
 msgid "Show questions"
 msgstr "Mostra le domande"
 
-#: questions/templates/questions/catalogs_sidebar.html:57
+#: questions/templates/questions/catalogs_sidebar.html:69
+msgid "Show URIs"
+msgstr "Mostra i URIs"
+
+#: questions/templates/questions/catalogs_sidebar.html:83
 msgid "Update catalog details"
 msgstr "Aggiorna dettagli del catalogo"
 
-#: questions/templates/questions/catalogs_sidebar.html:76
+#: questions/templates/questions/catalogs_sidebar.html:102
 msgid "Create new catalog"
 msgstr "Crea un nuovo catalogo"
 
-#: questions/templates/questions/catalogs_sidebar.html:81
+#: questions/templates/questions/catalogs_sidebar.html:107
 msgid "Create new section"
 msgstr "Crea una nuova sezione"
 
-#: questions/templates/questions/catalogs_sidebar.html:86
+#: questions/templates/questions/catalogs_sidebar.html:112
 msgid "Create new questionset"
 msgstr "Crea una nuova raccolta di opzioni"
 
-#: questions/templates/questions/catalogs_sidebar.html:91
+#: questions/templates/questions/catalogs_sidebar.html:117
 msgid "Create new question"
 msgstr "Crea una nuova domanda"
 
-#: questions/templates/questions/catalogs_sidebar.html:143
+#: questions/templates/questions/catalogs_sidebar.html:169
 #, python-format
 msgid "This catalog is used in <b>%(projects_count)s projects</b>."
 msgstr "Questo catalogo è usato in <b>%(projects_count)s projects</b>."
@@ -5030,6 +5045,9 @@ msgstr ""
 "Una lista vuota significa che questa vista può essere usata con tutti i "
 "cataloghi."
 
+#~ msgid "Questionnaire"
+#~ msgstr "Questionario"
+
 #~ msgid "Contact"
 #~ msgstr "Contatti"
 
diff --git a/rdmo/locale/nl/LC_MESSAGES/django.po b/rdmo/locale/nl/LC_MESSAGES/django.po
index ce41893459..d66e9f541e 100644
--- a/rdmo/locale/nl/LC_MESSAGES/django.po
+++ b/rdmo/locale/nl/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-29 13:28+0200\n"
+"POT-Creation-Date: 2022-11-28 11:07+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -311,8 +311,8 @@ msgstr ""
 #: accounts/templates/account/email_confirm.html:29
 #, python-format
 msgid ""
-"This e-mail confirmation link expired or is invalid. Please <a href="
-"\"%(email_url)s\">issue a new e-mail confirmation request</a>."
+"This e-mail confirmation link expired or is invalid. Please <a "
+"href=\"%(email_url)s\">issue a new e-mail confirmation request</a>."
 msgstr ""
 
 #: accounts/templates/account/login.html:6
@@ -330,15 +330,15 @@ msgstr ""
 #: accounts/templates/account/login_form_account.html:7
 #, python-format
 msgid ""
-"If you have not created an account yet, then please <a href=\"%(signup_url)s"
-"\">sign up</a> first."
+"If you have not created an account yet, then please <a "
+"href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
 #: accounts/templates/account/login_form_account.html:14
 #, python-format
 msgid ""
-"If you forgot your password and want to reset it, click <a href="
-"\"%(reset_url)s\">here</a>."
+"If you forgot your password and want to reset it, click <a "
+"href=\"%(reset_url)s\">here</a>."
 msgstr ""
 
 #: accounts/templates/account/login_form_socialaccount.html:9
@@ -557,7 +557,7 @@ msgstr ""
 #: accounts/templates/profile/profile_remove_form.html:7
 #: accounts/templates/profile/profile_remove_form.html:17
 #: accounts/templates/profile/profile_remove_success.html:6
-#: accounts/templates/profile/profile_update_form.html:28
+#: accounts/templates/profile/profile_update_form.html:30
 #: accounts/templates/profile/profile_update_form.html:37
 #: core/templates/core/base_navigation.html:123
 msgid "Delete profile"
@@ -664,8 +664,8 @@ msgstr ""
 #, python-format
 msgid ""
 "You decided to cancel logging in to our site using one of your existing "
-"accounts. If this was a mistake, please proceed to <a href=\"%(login_url)s"
-"\">sign in</a>."
+"accounts. If this was a mistake, please proceed to <a "
+"href=\"%(login_url)s\">sign in</a>."
 msgstr ""
 
 #: accounts/templates/socialaccount/signup.html:9
@@ -695,6 +695,7 @@ msgstr ""
 #: questions/templates/questions/catalogs_modal_form_questions.html:369
 #: questions/templates/questions/catalogs_modal_form_questionsets.html:158
 #: questions/templates/questions/catalogs_modal_form_questionsets.html:288
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:14
 #: tasks/models.py:131 tasks/templates/tasks/tasks_export.html:48
 #: tasks/templates/tasks/tasks_modal_form_conditions.html:11
 #: tasks/templates/tasks/tasks_modal_form_conditions.html:19
@@ -718,9 +719,10 @@ msgstr ""
 #: questions/templates/questions/catalogs.html:58
 #: questions/templates/questions/catalogs.html:101
 #: questions/templates/questions/catalogs_element.html:23
-#: questions/templates/questions/catalogs_element.html:56 tasks/models.py:21
-#: tasks/templates/tasks/tasks_export.html:15 views/models.py:21
-#: views/templates/views/views_export.html:15
+#: questions/templates/questions/catalogs_element.html:56
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:8
+#: tasks/models.py:21 tasks/templates/tasks/tasks_export.html:15
+#: views/models.py:21 views/templates/views/views_export.html:15
 msgid "URI"
 msgstr ""
 
@@ -824,6 +826,7 @@ msgstr ""
 #: options/templates/options/options.html:151
 #: questions/templates/questions/catalogs_element.html:30
 #: questions/templates/questions/catalogs_element.html:63
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:14
 msgid "Condition"
 msgstr ""
 
@@ -834,7 +837,7 @@ msgstr ""
 #: conditions/templates/conditions/conditions.html:31
 #: domain/templates/domain/domain.html:31
 #: options/templates/options/options.html:31
-#: questions/templates/questions/catalogs_sidebar.html:16
+#: questions/templates/questions/catalogs_sidebar.html:29
 #: tasks/templates/tasks/tasks.html:32 views/templates/views/views.html:31
 msgid "Search"
 msgstr ""
@@ -842,7 +845,7 @@ msgstr ""
 #: conditions/templates/conditions/conditions.html:42
 #: domain/templates/domain/domain.html:42
 #: options/templates/options/options.html:42
-#: questions/templates/questions/catalogs_sidebar.html:27
+#: questions/templates/questions/catalogs_sidebar.html:40
 #: tasks/templates/tasks/tasks.html:43 views/templates/views/views.html:42
 msgid "All URI prefixes"
 msgstr ""
@@ -862,7 +865,8 @@ msgstr ""
 #: projects/templates/projects/projects.html:25
 #: projects/templates/projects/site_projects.html:23
 #: questions/templates/questions/catalog_tree.html:104
-#: questions/templates/questions/catalogs_sidebar.html:52
+#: questions/templates/questions/catalogs_sidebar.html:78
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:26
 #: tasks/templates/tasks/tasks.html:50 views/templates/views/views.html:49
 msgid "Options"
 msgstr ""
@@ -877,8 +881,8 @@ msgstr ""
 #: projects/templates/projects/project_answers.html:35
 #: projects/templates/projects/project_detail_sidebar.html:111
 #: projects/templates/projects/project_view.html:50
-#: questions/templates/questions/catalogs_sidebar.html:96
-#: questions/templates/questions/catalogs_sidebar.html:114
+#: questions/templates/questions/catalogs_sidebar.html:122
+#: questions/templates/questions/catalogs_sidebar.html:140
 #: tasks/templates/tasks/tasks.html:60 views/templates/views/views.html:59
 msgid "Export"
 msgstr ""
@@ -886,7 +890,7 @@ msgstr ""
 #: conditions/templates/conditions/conditions.html:73
 #: domain/templates/domain/domain.html:86
 #: options/templates/options/options.html:88
-#: questions/templates/questions/catalogs_sidebar.html:103
+#: questions/templates/questions/catalogs_sidebar.html:129
 #: tasks/templates/tasks/tasks.html:75 views/templates/views/views.html:74
 msgid "XML"
 msgstr ""
@@ -896,7 +900,7 @@ msgstr ""
 #: management/templates/management/upload.html:21
 #: options/templates/options/options.html:93
 #: projects/templates/projects/project_detail_sidebar_parent_import.html:15
-#: questions/templates/questions/catalogs_sidebar.html:131
+#: questions/templates/questions/catalogs_sidebar.html:157
 #: tasks/templates/tasks/tasks.html:80 views/templates/views/views.html:79
 msgid "Import"
 msgstr ""
@@ -1075,6 +1079,7 @@ msgstr ""
 #: projects/templates/projects/issue_detail.html:37 questions/apps.py:7
 #: questions/models/question.py:259
 #: questions/templates/questions/catalogs.html:37
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:8
 msgid "Questions"
 msgstr ""
 
@@ -1094,7 +1099,7 @@ msgstr ""
 msgid "This field is required."
 msgstr ""
 
-#: core/constants.py:14 core/settings.py:288
+#: core/constants.py:14 core/settings.py:291
 #: options/templates/options/options_export.html:39
 #: options/templates/options/options_modal_form_options.html:163
 #: projects/models/value.py:64 questions/constants.py:4
@@ -1156,83 +1161,83 @@ msgstr ""
 msgid "German"
 msgstr ""
 
-#: core/settings.py:233
+#: core/settings.py:234
 msgid "PDF"
 msgstr ""
 
-#: core/settings.py:234
+#: core/settings.py:235
 msgid "Rich Text Format"
 msgstr ""
 
-#: core/settings.py:235
+#: core/settings.py:236
 msgid "Open Office"
 msgstr ""
 
-#: core/settings.py:236
+#: core/settings.py:237
 msgid "Microsoft Office"
 msgstr ""
 
-#: core/settings.py:237
+#: core/settings.py:238
 msgid "HTML"
 msgstr ""
 
-#: core/settings.py:238
+#: core/settings.py:239
 msgid "Markdown"
 msgstr ""
 
-#: core/settings.py:239
+#: core/settings.py:240
 msgid "mediawiki"
 msgstr ""
 
-#: core/settings.py:240
+#: core/settings.py:241
 msgid "LaTeX"
 msgstr ""
 
-#: core/settings.py:260 core/settings.py:266
+#: core/settings.py:261 core/settings.py:267
 msgid "RDMO XML"
 msgstr ""
 
-#: core/settings.py:261 domain/templates/domain/domain.html:74
+#: core/settings.py:262 domain/templates/domain/domain.html:74
 msgid "CSV comma separated"
 msgstr ""
 
-#: core/settings.py:262 domain/templates/domain/domain.html:79
+#: core/settings.py:263 domain/templates/domain/domain.html:79
 msgid "CSV semicolon separated"
 msgstr ""
 
-#: core/settings.py:289 questions/constants.py:5
+#: core/settings.py:292 questions/constants.py:5
 msgid "Textarea"
 msgstr ""
 
-#: core/settings.py:290 questions/constants.py:6
+#: core/settings.py:293 questions/constants.py:6
 msgid "Yes/No"
 msgstr ""
 
-#: core/settings.py:291 questions/constants.py:7
+#: core/settings.py:294 questions/constants.py:7
 msgid "Checkboxes"
 msgstr ""
 
-#: core/settings.py:292 questions/constants.py:8
+#: core/settings.py:295 questions/constants.py:8
 msgid "Radio buttons"
 msgstr ""
 
-#: core/settings.py:293 questions/constants.py:9
+#: core/settings.py:296 questions/constants.py:9
 msgid "Select drop-down"
 msgstr ""
 
-#: core/settings.py:294 questions/constants.py:10
+#: core/settings.py:297 questions/constants.py:10
 msgid "Autocomplete"
 msgstr ""
 
-#: core/settings.py:295 questions/constants.py:11
+#: core/settings.py:298 questions/constants.py:11
 msgid "Range slider"
 msgstr ""
 
-#: core/settings.py:296 questions/constants.py:12
+#: core/settings.py:299 questions/constants.py:12
 msgid "Date picker"
 msgstr ""
 
-#: core/settings.py:297 questions/constants.py:13
+#: core/settings.py:300 questions/constants.py:13
 msgid "File upload"
 msgstr ""
 
@@ -1414,6 +1419,7 @@ msgid "Attribute"
 msgstr ""
 
 #: domain/models.py:51
+#: questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html:20
 msgid "Attributes"
 msgstr ""
 
@@ -1444,8 +1450,8 @@ msgstr ""
 #: domain/templates/domain/domain_modal_show_attributes.html:15
 #, python-format
 msgid ""
-"This attribute is used for <b>%(values_count)s values</b> in <b>"
-"%(projects_count)s projects</b>."
+"This attribute is used for <b>%(values_count)s values</b> in "
+"<b>%(projects_count)s projects</b>."
 msgstr ""
 
 #: domain/templates/domain/domain_modal_delete_attributes.html:42
@@ -1582,14 +1588,18 @@ msgstr ""
 msgid "Import error"
 msgstr ""
 
-#: management/views.py:47 management/views.py:108
-msgid "This is not a RDMO XML file."
+#: management/views.py:47
+msgid "This is not a valid RDMO XML file."
 msgstr ""
 
 #: management/views.py:63 management/views.py:125
 msgid "Forbidden."
 msgstr ""
 
+#: management/views.py:108
+msgid "This is not a RDMO XML file."
+msgstr ""
+
 #: options/models.py:16
 msgid "The Uniform Resource Identifier of this option set (auto-generated)."
 msgstr ""
@@ -1784,8 +1794,8 @@ msgstr ""
 #: options/templates/options/options_modal_show_options.html:15
 #, python-format
 msgid ""
-"This option is used for <b>%(values_count)s values</b> in <b>"
-"%(projects_count)s projects</b>."
+"This option is used for <b>%(values_count)s values</b> in "
+"<b>%(projects_count)s projects</b>."
 msgstr ""
 
 #: options/templates/options/options_modal_delete_options.html:29
@@ -1945,7 +1955,7 @@ msgstr ""
 msgid "Reset overlays"
 msgstr ""
 
-#: projects/apps.py:7 projects/models/project.py:71
+#: projects/apps.py:8 projects/models/project.py:71
 msgid "Projects"
 msgstr ""
 
@@ -2672,8 +2682,8 @@ msgstr ""
 #: projects/templates/projects/issue_send_message.txt:3
 #, python-format
 msgid ""
-"The following task was identified in the project \"%(project_title)s\" <"
-"%(project_url)s>:"
+"The following task was identified in the project \"%(project_title)s\" "
+"<%(project_url)s>:"
 msgstr ""
 
 #: projects/templates/projects/issue_send_message.txt:13
@@ -3169,8 +3179,9 @@ msgstr ""
 msgid "Please select"
 msgstr ""
 
-#: projects/templates/projects/project_questions_head.html:4
-msgid "Questionnaire"
+#: projects/templates/projects/project_questions_head.html:5
+#: projects/templates/projects/projects.html:113
+msgid "My Projects"
 msgstr ""
 
 #: projects/templates/projects/project_questions_modal_delete_valuesets.html:17
@@ -3206,8 +3217,8 @@ msgstr ""
 
 #: projects/templates/projects/project_questions_navigation_help.html:14
 msgid ""
-"Entries with <i class=\"fa fa-question-circle-o small\" aria-hidden=\"true"
-"\"></i> might be skipped based on your input."
+"Entries with <i class=\"fa fa-question-circle-o small\" aria-"
+"hidden=\"true\"></i> might be skipped based on your input."
 msgstr ""
 
 #: projects/templates/projects/project_questions_overview.html:14
@@ -3266,7 +3277,7 @@ msgid "Navigation"
 msgstr ""
 
 #: projects/templates/projects/project_view.html:90
-#: projects/views/project.py:165
+#: projects/views/project.py:175
 msgid "Error"
 msgstr ""
 
@@ -3301,10 +3312,6 @@ msgstr ""
 msgid "Click on one of the links to join the projects."
 msgstr ""
 
-#: projects/templates/projects/projects.html:113
-msgid "My Projects"
-msgstr ""
-
 #: projects/templates/projects/projects.html:120
 #: projects/templates/projects/site_projects.html:41
 msgid "Last changed"
@@ -3353,16 +3360,16 @@ msgstr ""
 msgid "You reached the file quota for this project."
 msgstr ""
 
-#: projects/views/project.py:145
+#: projects/views/project.py:155
 msgid "Sorry, your invitation has been expired."
 msgstr ""
 
-#: projects/views/project.py:148
+#: projects/views/project.py:158
 #, python-format
 msgid "Sorry, but this invitation is for the user \"%s\"."
 msgstr ""
 
-#: projects/views/project.py:162
+#: projects/views/project.py:172
 msgid "Sorry, the invitation link is not valid."
 msgstr ""
 
@@ -4048,8 +4055,8 @@ msgstr ""
 #: questions/templates/questions/catalogs_modal_delete_catalogs.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the catalog <code class=\"text-primary\">"
-"%(object)s</code>."
+"You are about to permanently delete the catalog <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
 
 #: questions/templates/questions/catalogs_modal_delete_catalogs.html:24
@@ -4068,8 +4075,8 @@ msgstr ""
 #: questions/templates/questions/catalogs_modal_delete_questions.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the question <code class=\"text-primary"
-"\">%(object)s</code>."
+"You are about to permanently delete the question <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
 
 #: questions/templates/questions/catalogs_modal_delete_questionsets.html:17
@@ -4082,8 +4089,8 @@ msgstr ""
 #: questions/templates/questions/catalogs_modal_delete_sections.html:17
 #, python-format
 msgid ""
-"You are about to permanently delete the section <code class=\"text-primary\">"
-"%(object)s</code>."
+"You are about to permanently delete the section <code class=\"text-"
+"primary\">%(object)s</code>."
 msgstr ""
 
 #: questions/templates/questions/catalogs_modal_form_catalogs.html:12
@@ -4092,7 +4099,7 @@ msgstr ""
 
 #: questions/templates/questions/catalogs_modal_form_catalogs.html:13
 #: questions/templates/questions/catalogs_options_catalog.html:16
-#: questions/templates/questions/catalogs_sidebar.html:63
+#: questions/templates/questions/catalogs_sidebar.html:89
 msgid "Copy catalog"
 msgstr ""
 
@@ -4273,7 +4280,7 @@ msgid "Export catalog as XML"
 msgstr ""
 
 #: questions/templates/questions/catalogs_options_catalog.html:26
-#: questions/templates/questions/catalogs_sidebar.html:68
+#: questions/templates/questions/catalogs_sidebar.html:94
 msgid "Delete catalog"
 msgstr ""
 
@@ -4318,39 +4325,47 @@ msgstr ""
 msgid "Delete section"
 msgstr ""
 
-#: questions/templates/questions/catalogs_sidebar.html:11
+#: questions/templates/questions/catalogs_sidebar.html:18
+msgid "Filter catalogs for"
+msgstr ""
+
+#: questions/templates/questions/catalogs_sidebar.html:24
 msgid "Filter questions"
 msgstr ""
 
-#: questions/templates/questions/catalogs_sidebar.html:38
+#: questions/templates/questions/catalogs_sidebar.html:51
 msgid "Show questionsets"
 msgstr ""
 
-#: questions/templates/questions/catalogs_sidebar.html:47
+#: questions/templates/questions/catalogs_sidebar.html:60
 msgid "Show questions"
 msgstr ""
 
-#: questions/templates/questions/catalogs_sidebar.html:57
+#: questions/templates/questions/catalogs_sidebar.html:69
+msgid "Show URIs"
+msgstr ""
+
+#: questions/templates/questions/catalogs_sidebar.html:83
 msgid "Update catalog details"
 msgstr ""
 
-#: questions/templates/questions/catalogs_sidebar.html:76
+#: questions/templates/questions/catalogs_sidebar.html:102
 msgid "Create new catalog"
 msgstr ""
 
-#: questions/templates/questions/catalogs_sidebar.html:81
+#: questions/templates/questions/catalogs_sidebar.html:107
 msgid "Create new section"
 msgstr ""
 
-#: questions/templates/questions/catalogs_sidebar.html:86
+#: questions/templates/questions/catalogs_sidebar.html:112
 msgid "Create new questionset"
 msgstr ""
 
-#: questions/templates/questions/catalogs_sidebar.html:91
+#: questions/templates/questions/catalogs_sidebar.html:117
 msgid "Create new question"
 msgstr ""
 
-#: questions/templates/questions/catalogs_sidebar.html:143
+#: questions/templates/questions/catalogs_sidebar.html:169
 #, python-format
 msgid "This catalog is used in <b>%(projects_count)s projects</b>."
 msgstr ""
diff --git a/rdmo/management/views.py b/rdmo/management/views.py
index d35e764bc6..913db301b3 100644
--- a/rdmo/management/views.py
+++ b/rdmo/management/views.py
@@ -41,10 +41,10 @@ def post(self, request):
         else:
             try:
                 elements = flat_xml_to_elements(root)
-            except (KeyError, TypeError):
+            except (KeyError, TypeError, AttributeError):
                 return render(request, 'core/error.html', {
                     'title': _('Import error'),
-                    'errors': [_('This is not a RDMO XML file.')]
+                    'errors': [_('This is not a valid RDMO XML file.')]
                 }, status=400)
 
             if check_permissions(elements, request.user):
diff --git a/rdmo/projects/admin.py b/rdmo/projects/admin.py
index 276e733beb..aff75c3c69 100644
--- a/rdmo/projects/admin.py
+++ b/rdmo/projects/admin.py
@@ -1,4 +1,5 @@
 from django.contrib import admin
+from django.db.models import Prefetch
 
 from .models import (Continuation, Integration, IntegrationOption, Invite,
                      Issue, IssueResource, Membership, Project, Snapshot,
@@ -7,10 +8,19 @@
 
 class ProjectAdmin(admin.ModelAdmin):
     search_fields = ('title', 'user__username')
-    list_display = ('title', 'owners')
+    list_display = ('title', 'owners', 'updated', 'created')
+
+    def get_queryset(self, request):
+        return Project.objects.prefetch_related(
+            Prefetch(
+                'memberships',
+                queryset=Membership.objects.filter(role='owner').select_related('user'),
+                to_attr='owner_memberships'
+            )
+        )
 
     def owners(self, obj):
-        return ', '.join([user.username for user in obj.owners])
+        return ', '.join([membership.user.username for membership in obj.owner_memberships])
 
 
 class MembershipAdmin(admin.ModelAdmin):
@@ -52,7 +62,19 @@ class IssueResourceAdmin(admin.ModelAdmin):
 
 class SnapshotAdmin(admin.ModelAdmin):
     search_fields = ('title', 'project__title', 'project__user__username')
-    list_display = ('title', 'project')
+    list_display = ('title', 'project', 'owners', 'updated', 'created')
+
+    def get_queryset(self, request):
+        return Snapshot.objects.prefetch_related(
+            Prefetch(
+                'project__memberships',
+                queryset=Membership.objects.filter(role='owner').select_related('user'),
+                to_attr='owner_memberships'
+            )
+        ).select_related('project')
+
+    def owners(self, obj):
+        return ', '.join([membership.user.username for membership in obj.project.owner_memberships])
 
 
 class ValueAdmin(admin.ModelAdmin):
diff --git a/rdmo/projects/apps.py b/rdmo/projects/apps.py
index 5116ddd681..4664adcbad 100644
--- a/rdmo/projects/apps.py
+++ b/rdmo/projects/apps.py
@@ -1,4 +1,5 @@
 from django.apps import AppConfig
+from django.conf import settings
 from django.utils.translation import gettext_lazy as _
 
 
@@ -8,3 +9,6 @@ class ProjectsConfig(AppConfig):
 
     def ready(self):
         from . import rules
+
+        if settings.PROJECT_REMOVE_VIEWS:
+            from . import handlers
diff --git a/rdmo/projects/exports.py b/rdmo/projects/exports.py
index 73ec06ff87..16cbfcbad1 100644
--- a/rdmo/projects/exports.py
+++ b/rdmo/projects/exports.py
@@ -88,7 +88,7 @@ def render(self):
         for question in Question.objects.order_by_catalog(self.project.catalog):
             if question.questionset.is_collection and question.questionset.attribute:
                 if question.questionset.attribute.uri.endswith('/id'):
-                    set_attribute_uri = question.questionset.attribute
+                    set_attribute_uri = question.questionset.attribute.uri
                 else:
                     set_attribute_uri = question.questionset.attribute.uri.rstrip('/') + '/id'
 
diff --git a/rdmo/projects/handlers.py b/rdmo/projects/handlers.py
new file mode 100644
index 0000000000..b6cf047684
--- /dev/null
+++ b/rdmo/projects/handlers.py
@@ -0,0 +1,60 @@
+import logging
+
+from django.contrib.auth.models import User
+from django.contrib.sites.models import Site
+from django.db.models.signals import m2m_changed
+from django.dispatch import receiver
+
+from rdmo.questions.models import Catalog
+from rdmo.projects.models import Project, Membership
+from rdmo.views.models import View
+
+logger = logging.getLogger(__name__)
+
+
+@receiver(m2m_changed, sender=View.catalogs.through)
+def m2m_changed_view_catalog_signal(sender, instance, **kwargs):
+    catalogs = instance.catalogs.all()
+
+    if catalogs:
+        catalog_candidates = Catalog.objects.exclude(id__in=[catalog.id for catalog in catalogs])
+
+        # Remove catalog candidates for all sites
+        projects = Project.objects.filter(catalog__in=catalog_candidates, views=instance)
+        for proj in projects:
+            proj.views.remove(instance)
+
+
+@receiver(m2m_changed, sender=View.sites.through)
+def m2m_changed_view_sites_signal(sender, instance, **kwargs):
+    sites = instance.sites.all()
+    catalogs = instance.catalogs.all()
+
+    if sites:
+        site_candidates = Site.objects.exclude(id__in=[site.id for site in sites])
+        if not catalogs:
+            # if no catalogs are selected, update all
+            catalogs = Catalog.objects.all()
+
+        # Restrict chosen catalogs for chosen sites
+        projects = Project.objects.filter(site__in=site_candidates, catalog__in=catalogs, views=instance)
+        for project in projects:
+            project.views.remove(instance)
+
+
+@receiver(m2m_changed, sender=View.groups.through)
+def m2m_changed_view_groups_signal(sender, instance, **kwargs):
+    groups = instance.groups.all()
+    catalogs = instance.catalogs.all()
+
+    if groups:
+        users = User.objects.exclude(groups__in=groups)
+        memberships = [membership.id for membership in Membership.objects.filter(role='owner', user__in=users)]
+        if not catalogs:
+            # if no catalogs are selected, update all
+            catalogs = Catalog.objects.all()
+
+        # Restrict chosen catalogs for chosen groups
+        projects = Project.objects.filter(memberships__in=list(memberships), catalog__in=catalogs, views=instance)
+        for project in projects:
+            project.views.remove(instance)
diff --git a/rdmo/projects/serializers/v1/__init__.py b/rdmo/projects/serializers/v1/__init__.py
index 927e16c25f..49b8c4d6f8 100644
--- a/rdmo/projects/serializers/v1/__init__.py
+++ b/rdmo/projects/serializers/v1/__init__.py
@@ -52,7 +52,9 @@ class Meta:
             'owners',
             'managers',
             'authors',
-            'guests'
+            'guests',
+            'created',
+            'updated'
         )
         read_only_fields = (
             'snapshots',
@@ -251,7 +253,9 @@ class Meta:
             'id',
             'project',
             'title',
-            'description'
+            'description',
+            'created',
+            'updated'
         )
 
 
diff --git a/rdmo/projects/serializers/v1/overview.py b/rdmo/projects/serializers/v1/overview.py
index e04e898125..775f85d70f 100644
--- a/rdmo/projects/serializers/v1/overview.py
+++ b/rdmo/projects/serializers/v1/overview.py
@@ -52,7 +52,9 @@ class Meta:
             'id',
             'title',
             'catalog',
-            'read_only'
+            'read_only',
+            'created',
+            'updated'
         )
 
     def get_read_only(self, obj):
diff --git a/rdmo/projects/static/projects/css/project_questions.scss b/rdmo/projects/static/projects/css/project_questions.scss
index 6620644f52..9f1a92f117 100644
--- a/rdmo/projects/static/projects/css/project_questions.scss
+++ b/rdmo/projects/static/projects/css/project_questions.scss
@@ -22,7 +22,7 @@
         }
     }
     h2 {
-        margin-top: 0;
+        margin-top: 70px;
     }
     .well {
         margin-top: 10px;
@@ -258,6 +258,14 @@
             white-space: nowrap;
         }
     }
+
+    .breadcrumb {
+        margin-top: 20px;
+        margin-bottom: 12px;
+
+        background-color: transparent;
+        border: 1px solid #ccc;
+    }
 }
 
 .project-questions-overview {
diff --git a/rdmo/projects/static/projects/js/project_questions/services.js b/rdmo/projects/static/projects/js/project_questions/services.js
index a3ce0cca8a..021c8bdc94 100644
--- a/rdmo/projects/static/projects/js/project_questions/services.js
+++ b/rdmo/projects/static/projects/js/project_questions/services.js
@@ -173,7 +173,9 @@ angular.module('project_questions')
                 }
 
                 // focus the first field
-                if (service.values && Object.keys(service.values).length && service.questionset.questionsets.length == 0) {
+                if (service.values && Object.keys(service.values).length > 0
+                                   && service.questionset.questionsets.length == 0
+                                   && service.questionset.questions.length > 0) {
                     var first_question = service.questionset.questions[0];
                     if (first_question.widget_class == 'text') {
                         service.focusField(first_question.attribute, service.set_prefix, service.set_index, 0);
@@ -356,61 +358,46 @@ angular.module('project_questions')
             future.progress = response;
         }).$promise);
 
-        // fetch all values for the set from the server
-        promises.push(resources.values.query({
-            project: service.project.id,
-            attribute: future.attributes
-        }, function(response) {
-            // init values
-            future.values = {};
-
-            // loop over all values to sort them by attribute -> set_prefix -> set_index -> collection_index
-            angular.forEach(response, function(value) {
-                // add an object for each attribute found
-                if (angular.isUndefined(future.values[value.attribute])) {
-                    future.values[value.attribute] = {};
-                }
-                // add an object for each set_prefix found
-                if (angular.isUndefined(future.values[value.attribute][value.set_prefix])) {
-                    future.values[value.attribute][value.set_prefix] = {};
-                }
-                // add an array for each (new) set_index found
-                if (angular.isUndefined(future.values[value.attribute][value.set_prefix][value.set_index])) {
-                    future.values[value.attribute][value.set_prefix][value.set_index] = [];
-                }
-                // push the value, the collection_index might be off but this is intended to close gaps
-                future.values[value.attribute][value.set_prefix][value.set_index].push(value);
-            });
-
-            // init valuesets
-            future.valuesets = {};
+        if (future.attributes.length > 0) {
+            // fetch all values for the set from the server
+            promises.push(resources.values.query({
+                project: service.project.id,
+                attribute: future.attributes
+            }, function(response) {
+                // init values
+                future.values = {};
+
+                // loop over all values to sort them by attribute -> set_prefix -> set_index -> collection_index
+                angular.forEach(response, function(value) {
+                    // add an object for each attribute found
+                    if (angular.isUndefined(future.values[value.attribute])) {
+                        future.values[value.attribute] = {};
+                    }
+                    // add an object for each set_prefix found
+                    if (angular.isUndefined(future.values[value.attribute][value.set_prefix])) {
+                        future.values[value.attribute][value.set_prefix] = {};
+                    }
+                    // add an array for each (new) set_index found
+                    if (angular.isUndefined(future.values[value.attribute][value.set_prefix][value.set_index])) {
+                        future.values[value.attribute][value.set_prefix][value.set_index] = [];
+                    }
+                    // push the value, the collection_index might be off but this is intended to close gaps
+                    future.values[value.attribute][value.set_prefix][value.set_index].push(value);
+                });
 
-            // loop over all questionsets to initlize valuesets
-            // valuesets store the set_index for each questionset and set_prefix
-            angular.forEach(future.questionsets, function(questionset) {
-                // add a valueset for each questionset
-                if (angular.isUndefined(future.valuesets[questionset.id])) {
-                    future.valuesets[questionset.id] = {};
-                }
+                // init valuesets
+                future.valuesets = {};
 
-                // add the set_index for every value for the attribute of this questionset
-                angular.forEach(future.values[questionset.attribute], function(sets, set_prefix) {
-                    if (angular.isUndefined(future.valuesets[questionset.id][set_prefix])) {
-                        future.valuesets[questionset.id][set_prefix] = [];
+                // loop over all questionsets to initlize valuesets
+                // valuesets store the set_index for each questionset and set_prefix
+                angular.forEach(future.questionsets, function(questionset) {
+                    // add a valueset for each questionset
+                    if (angular.isUndefined(future.valuesets[questionset.id])) {
+                        future.valuesets[questionset.id] = {};
                     }
-                    angular.forEach(sets, function(set, set_index) {
-                        var valuesets = $filter('filter')(future.valuesets[questionset.id][set_prefix], function(valueset) {
-                            return (valueset.set_prefix == set_prefix) && (valueset.set_index == set_index);
-                        });
-                        if (valuesets.length === 0) {
-                            future.valuesets[questionset.id][set_prefix].push(factories.valuesets(set_prefix, set_index))
-                        }
-                    });
-                });
 
-                // add the set_index for every value for the attribute of each question of this questionset
-                angular.forEach(questionset.questions, function(question) {
-                    angular.forEach(future.values[question.attribute], function(sets, set_prefix) {
+                    // add the set_index for every value for the attribute of this questionset
+                    angular.forEach(future.values[questionset.attribute], function(sets, set_prefix) {
                         if (angular.isUndefined(future.valuesets[questionset.id][set_prefix])) {
                             future.valuesets[questionset.id][set_prefix] = [];
                         }
@@ -423,14 +410,35 @@ angular.module('project_questions')
                             }
                         });
                     });
-                });
 
-                // sort valuesets
-                angular.forEach(future.valuesets[questionset.id], function(valuesets, set_prefix) {
-                    valuesets.sort(function(a, b) { return a.set_index - b.set_index; });
+                    // add the set_index for every value for the attribute of each question of this questionset
+                    angular.forEach(questionset.questions, function(question) {
+                        angular.forEach(future.values[question.attribute], function(sets, set_prefix) {
+                            if (angular.isUndefined(future.valuesets[questionset.id][set_prefix])) {
+                                future.valuesets[questionset.id][set_prefix] = [];
+                            }
+                            angular.forEach(sets, function(set, set_index) {
+                                var valuesets = $filter('filter')(future.valuesets[questionset.id][set_prefix], function(valueset) {
+                                    return (valueset.set_prefix == set_prefix) && (valueset.set_index == set_index);
+                                });
+                                if (valuesets.length === 0) {
+                                    future.valuesets[questionset.id][set_prefix].push(factories.valuesets(set_prefix, set_index))
+                                }
+                            });
+                        });
+                    });
+
+                    // sort valuesets
+                    angular.forEach(future.valuesets[questionset.id], function(valuesets, set_prefix) {
+                        valuesets.sort(function(a, b) { return a.set_index - b.set_index; });
+                    });
                 });
-            });
-        }).$promise);
+            }).$promise);
+        } else {
+            // init values and valuesets
+            future.values = {};
+            future.valuesets = {};
+        }
 
         return $q.all(promises).then(function() {
             service.initValues(future.questionset, '');
@@ -808,7 +816,16 @@ angular.module('project_questions')
                 if (angular.isDefined(questionset)) {
                     service.initView(questionset.id);
                 } else if (angular.isDefined(section)) {
-                    service.initView(section.questionsets[0].id);
+                    if (angular.isDefined(section.questionset)) {
+                        service.initView(section.questionsets[0].id);
+                    } else {
+                        // jump to first questionset of the section in breadcrumb
+                        // let section_from_service = service.project.catalog.sections.find(x => x.id === section.id)
+                        var section_from_service = $filter('filter')(service.project.catalog.sections, {
+                            id: section.id
+                        })[0]
+                        service.initView(section_from_service.questionsets[0].id);
+                    }
                 } else {
                     service.initView(null);
                 }
@@ -817,7 +834,16 @@ angular.module('project_questions')
             if (angular.isDefined(questionset)) {
                 service.initView(questionset.id);
             } else if (angular.isDefined(section)) {
-                service.initView(section.questionsets[0].id);
+                if (angular.isDefined(section.questionset)) {
+                    service.initView(section.questionsets[0].id);
+                } else {
+                    // jump to first questionset of the section in breadcrumb
+                    // let section_from_service = service.project.catalog.sections.find(x => x.id === section.id)
+                    var section_from_service = $filter('filter')(service.project.catalog.sections, {
+                        id: section.id
+                    })[0]
+                    service.initView(section_from_service.questionsets[0].id);
+                }
             } else {
                 service.initView(null);
             }
@@ -1140,7 +1166,8 @@ angular.module('project_questions')
     };
 
     service.removeValueSet = function(questionset, set_prefix, set_index) {
-        if (questionset.attribute) {
+        // check if this is the main questionset and not a questionset-in-questionset
+        if (service.questionset.id == questionset.id && questionset.attribute) {
             // delete all values of this set in the project using the special /set endpoint
             if (angular.isDefined(service.values[questionset.attribute])) {
                 angular.forEach(service.values[questionset.attribute][set_prefix][set_index], function(value) {
diff --git a/rdmo/projects/templates/projects/project_detail_issues.html b/rdmo/projects/templates/projects/project_detail_issues.html
index 495fae06b4..075ce2665f 100644
--- a/rdmo/projects/templates/projects/project_detail_issues.html
+++ b/rdmo/projects/templates/projects/project_detail_issues.html
@@ -4,7 +4,7 @@
 
 {% has_perm 'projects.change_project_object' request.user project as can_change_project %}
 
-{% if settings.PROJECT_ISSUES %}
+{% if settings.PROJECT_ISSUES and tasks_available %}
 
 <div id="project-issues">
 
diff --git a/rdmo/projects/templates/projects/project_detail_views.html b/rdmo/projects/templates/projects/project_detail_views.html
index 95af123862..593aa57c2a 100644
--- a/rdmo/projects/templates/projects/project_detail_views.html
+++ b/rdmo/projects/templates/projects/project_detail_views.html
@@ -4,7 +4,7 @@
 
 {% has_perm 'projects.change_project_object' request.user project as can_change_project %}
 
-{% if settings.PROJECT_VIEWS %}
+{% if settings.PROJECT_VIEWS and views_available %}
 
 <div id="project-views">
 
diff --git a/rdmo/projects/templates/projects/project_questions.html b/rdmo/projects/templates/projects/project_questions.html
index 2e55cfc466..a36fe34c5d 100644
--- a/rdmo/projects/templates/projects/project_questions.html
+++ b/rdmo/projects/templates/projects/project_questions.html
@@ -47,13 +47,11 @@
 {% endblock %}
 
 {% block page %}
-
-    {% include 'projects/project_questions_head.html' %}
-
+    
     <div class="project-questions-form" ng-show="service.questionset.id" ng-cloak>
-
+        {% include 'projects/project_questions_head.html' %}
         <h2>
-            {$ service.questionset.section.title $} / {$ service.questionset.title $}
+            {$ service.questionset.title $}
         </h2>
 
         <div class="help-text" ng-bind-html="service.questionset.help"></div>
diff --git a/rdmo/projects/templates/projects/project_questions_head.html b/rdmo/projects/templates/projects/project_questions_head.html
index f7e8d01b0d..5b50efc9db 100644
--- a/rdmo/projects/templates/projects/project_questions_head.html
+++ b/rdmo/projects/templates/projects/project_questions_head.html
@@ -1,5 +1,15 @@
 {% load i18n %}
 
-<h1>
-    {% trans 'Questionnaire' %}
-</h1>
+<ul class="breadcrumb">
+    <li>
+        <a href="{% url 'projects' %}">{% trans 'My Projects' %}</a>
+    </li>
+    <li>
+        <a href="{% url 'project' project.id %}"> {$ service.project.title $} </a>
+    </li>
+    <li>
+        <a href="" ng-click="service.jump(service.questionset.section)">
+        <span> {$ service.questionset.section.title $} </span>
+        </a>
+    </li>
+</ul>
diff --git a/rdmo/projects/views/project.py b/rdmo/projects/views/project.py
index 8bcca5e223..9a25701caf 100644
--- a/rdmo/projects/views/project.py
+++ b/rdmo/projects/views/project.py
@@ -20,6 +20,8 @@
 from rdmo.core.views import ObjectPermissionMixin, RedirectViewMixin
 from rdmo.questions.models import Catalog
 from rdmo.questions.utils import get_widgets
+from rdmo.tasks.models import Task
+from rdmo.views.models import View
 
 from ..filters import ProjectFilter
 from ..models import Integration, Invite, Membership, Project, Value
@@ -116,6 +118,14 @@ def get_context_data(self, **kwargs):
         context['catalogs'] = Catalog.objects.filter_current_site() \
                                              .filter_group(self.request.user) \
                                              .filter_availability(self.request.user)
+        context['tasks_available'] = Task.objects.filter_current_site() \
+                                                 .filter_catalog(self.object.catalog) \
+                                                 .filter_group(self.request.user) \
+                                                 .filter_availability(self.request.user).exists()
+        context['views_available'] = View.objects.filter_current_site() \
+                                                 .filter_catalog(self.object.catalog) \
+                                                 .filter_group(self.request.user) \
+                                                 .filter_availability(self.request.user).exists()
         context['memberships'] = memberships.order_by('user__last_name', '-project__level')
         context['integrations'] = integrations.order_by('provider_key', '-project__level')
         context['providers'] = get_plugins('PROJECT_ISSUE_PROVIDERS')
diff --git a/rdmo/questions/serializers/v1.py b/rdmo/questions/serializers/v1.py
index e74edb2e62..65cef3e979 100644
--- a/rdmo/questions/serializers/v1.py
+++ b/rdmo/questions/serializers/v1.py
@@ -166,7 +166,8 @@ class Meta:
             'id',
             'title',
             'uri',
-            'key'
+            'key',
+            'sites',
         )
 
 
diff --git a/rdmo/questions/static/questions/css/catalogs.scss b/rdmo/questions/static/questions/css/catalogs.scss
index 15af4e74b2..8f73efc261 100644
--- a/rdmo/questions/static/questions/css/catalogs.scss
+++ b/rdmo/questions/static/questions/css/catalogs.scss
@@ -11,3 +11,19 @@
 .indent {
     margin-left: 20px;
 }
+
+.list-showURI-checkboxes {
+    list-style: none;
+    padding-left: 0;
+    column-count: 2;
+    margin-bottom: 0;
+}
+
+.showURI-checkbox {
+    margin-top: 0 !important;
+    margin-bottom: 0 !important;
+
+    &:nth-child(odd) {
+        margin-bottom: 15px !important;
+    }
+}
diff --git a/rdmo/questions/static/questions/js/catalogs.js b/rdmo/questions/static/questions/js/catalogs.js
index e90097b252..4568737750 100644
--- a/rdmo/questions/static/questions/js/catalogs.js
+++ b/rdmo/questions/static/questions/js/catalogs.js
@@ -7,11 +7,12 @@ angular.module('catalogs', ['core'])
 
 }])
 
-.factory('CatalogsService', ['$resource', '$timeout', '$window', '$q', '$location', 'utils', function($resource, $timeout, $window, $q, $location, utils) {
+.factory('CatalogsService', ['$resource', '$timeout', '$window', '$q', '$location', '$filter', 'utils', function($resource, $timeout, $window, $q, $location, $filter, utils) {
 
-    /* get the base url */
+    /* get the base url and the site_id */
 
     var baseurl = angular.element('meta[name="baseurl"]').attr('content');
+    var site_id = angular.element('meta[name="site_id"]').attr('content') || 1;
 
     /* configure resources */
 
@@ -93,20 +94,57 @@ angular.module('catalogs', ['core'])
         service.filter = sessionStorage.getItem('questions_filter') || '';
         service.showQuestionSets = !(sessionStorage.getItem('options_showQuestionSets') === 'false');
         service.showQuestions = !(sessionStorage.getItem('options_showOptions') === 'false');
+        // showURI* attributes for blending out the URIs via checkboxes
+        service.showURIs = Boolean(sessionStorage.getItem('options_showURIs'));
+        service.showURIQuestions = Boolean(sessionStorage.getItem('options_showURIQuestions'));
+        service.showURIConditions = Boolean(sessionStorage.getItem('options_showURIConditions'));
+        service.showURIOptions = Boolean(sessionStorage.getItem('options_showURIOptions'));
+        service.showURIAttributes = Boolean(sessionStorage.getItem('options_showURIAttributes'));
+
+        if (angular.isUndefined(service.filterCatalogsCurrentSite)) {
+            if (sessionStorage.getItem('options_filterCatalogsCurrentSite') === null) {
+                // when user arrives on page for the first time, set filterCatalogsCurrentSite to true
+                service.filterCatalogsCurrentSite = true;
+            } else if (sessionStorage.getItem('options_filterCatalogsCurrentSite') === 'false') {
+                // when user switches language and options_filterCatalogsCurrentSite was false before
+                service.filterCatalogsCurrentSite = false;
+            } else if (sessionStorage.getItem('options_filterCatalogsCurrentSite') === 'true') {
+                // when user switches language and options_filterCatalogsCurrentSite was true before
+                service.filterCatalogsCurrentSite = true;
+            }
+        }
+
+        var catalogs_params = {
+            list_action: 'index'
+        }
+        if (service.filterCatalogsCurrentSite) {
+            // query only catalogs for this site
+            catalogs_params['sites'] = site_id
+        }
 
-        resources.catalogs.query({list_action: 'index'}, function(response) {
+        resources.catalogs.query(catalogs_params, function(response) {
             service.catalogs = response;
 
             // try to get the catalog from the address bar
             var catalog_id = $location.path().replace(/\//g,'');
 
+            // check if catalog_id is in the array of catalogs
             if (catalog_id) {
-                service.current_catalog_id = catalog_id;
-            } else if (service.catalogs.length) {
+                // check if catalog_id is in catalogs
+                // required for when user switches filterCatalogsCurrentSite
+                var catalog_id_isin_catalogs = $filter('filter')(service.catalogs, {'id': catalog_id});
+                if (catalog_id_isin_catalogs.length > 0) {
+                    service.current_catalog_id = catalog_id;
+                } else {
+                    // the catalog is (propably) not available for this site
+                    service.current_catalog_id = service.catalogs[0].id;
+                }
+            } else if (service.catalogs.length > 0) {
                 service.current_catalog_id = service.catalogs[0].id;
             } else {
+                // no catalogs are available
                 service.current_catalog_id = null;
-            }
+            };
 
             service.initView().then(function() {
                 var current_scroll_pos = sessionStorage.getItem('questions_scroll_pos');
@@ -123,6 +161,12 @@ angular.module('catalogs', ['core'])
             sessionStorage.setItem('questions_filter', service.filter);
             sessionStorage.setItem('options_showQuestionSets', service.showQuestionSets);
             sessionStorage.setItem('options_showOptions', service.showQuestions);
+            sessionStorage.setItem('options_showURIs', service.showURIs);
+            sessionStorage.setItem('options_showURIQuestions', service.showURIQuestions);
+            sessionStorage.setItem('options_showURIConditions', service.showURIConditions);
+            sessionStorage.setItem('options_showURIOptions', service.showURIOptions);
+            sessionStorage.setItem('options_showURIAttributes', service.showURIAttributes);
+            sessionStorage.setItem('options_filterCatalogsCurrentSite', service.filterCatalogsCurrentSite);
         });
     };
 
diff --git a/rdmo/questions/templates/questions/catalogs.html b/rdmo/questions/templates/questions/catalogs.html
index b6bb1e380e..98f7491e26 100644
--- a/rdmo/questions/templates/questions/catalogs.html
+++ b/rdmo/questions/templates/questions/catalogs.html
@@ -54,7 +54,7 @@ <h1>{% trans 'Questions' %}</h1>
                 <p>
                     {$ service.catalog.help $}
                 </p>
-                <div>
+                <div ng-show="service.showURIs">
                     <code class="code-questions" title="{% trans 'URI' %}">{$ service.catalog.uri $}</code>
                     <code class="code-order">{$ service.catalog.order $}</code>
                 </div>
@@ -93,11 +93,11 @@ <h1>{% trans 'Questions' %}</h1>
 
                         {% include 'questions/catalogs_options_sections.html' %}
                     </div>
-                    <p>
+                    <p ng-style="(!service.showURIs) && {'margin-bottom': '0px'}">
                         <strong>{% trans 'Section' %}</strong>
                         <span>{$ section.title $}</span>
                     </p>
-                    <div>
+                    <div ng-show="service.showURIs">
                         <code class="code-questions" title="{% trans 'URI' %}">{$ section.uri $}</code>
                         <code class="code-order">{$ section.order $}</code>
                     </div>
diff --git a/rdmo/questions/templates/questions/catalogs_element.html b/rdmo/questions/templates/questions/catalogs_element.html
index 751105c0a1..5944b5708c 100644
--- a/rdmo/questions/templates/questions/catalogs_element.html
+++ b/rdmo/questions/templates/questions/catalogs_element.html
@@ -15,18 +15,18 @@
             {% include 'questions/catalogs_options_questionsets.html' %}
         </div>
 
-        <p>
+        <p ng-style="!service.showURIs && {'margin-bottom':'0px'}">
             <strong>{% trans 'Question set' %}</strong>
             <span>{$ questionset.title $}</span>
         </p>
-        <div>
+        <div ng-show="service.showURIs">
             <code class="code-questions" title="{% trans 'URI' %}">{$ questionset.uri $}</code>
             <code class="code-order">{$ questionset.order $}</code>
         </div>
-        <div ng-show="questionset.is_collection">
+        <div ng-show="questionset.is_collection && service.showURIs && service.showURIAttributes">
             <code title="{% trans 'Attribute' %}">{$ questionset.attribute.uri $}</code>
         </div>
-        <div ng-show="questionset.conditions" ng-repeat="condition in questionset.conditions">
+        <div ng-show="questionset.conditions && service.showURIs && service.showURIConditions" ng-repeat="condition in questionset.conditions">
             <code class="code-conditions" title="{% trans 'Condition' %}">{$ condition.uri $}</code>
         </div>
     </div>
@@ -48,21 +48,21 @@
                 ng-show="question.is_optional" ></span>
             {% include 'questions/catalogs_options_questions.html' %}
         </div>
-        <p>
+        <p ng-style="(!service.showURIs) && {'margin-bottom':'0px'}">
             <strong ng-class="{'text-muted': question.is_optional}">{% trans 'Question' %}</strong>
             <span>{$ question.text $}</span>
         </p>
-        <div>
+        <div ng-show="service.showURIs && service.showURIQuestions">
             <code class="code-questions" title="{% trans 'URI' %}">{$ question.uri $}</code>
             <code class="code-order">{$ question.order $}</code>
         </div>
-        <div ng-show="question.attribute">
+        <div ng-show="question.attribute && service.showURIs && service.showURIAttributes">
             <code title="{% trans 'Attribute' %}">{$ question.attribute.uri $}</code>
         </div>
-        <div ng-show="question.conditions" ng-repeat="condition in question.conditions">
+        <div ng-show="question.conditions && service.showURIs && service.showURIConditions" ng-repeat="condition in question.conditions">
             <code class="code-conditions" title="{% trans 'Condition' %}">{$ condition.uri $}</code>
         </div>
-        <div ng-show="question.optionsets" ng-repeat="optionset in question.optionsets">
+        <div ng-show="question.optionsets && service.showURIs && service.showURIOptions" ng-repeat="optionset in question.optionsets">
             <code class="code-options" title="{% trans 'Option set' %}">{$ optionset.uri $}</code>
         </div>
     </div>
diff --git a/rdmo/questions/templates/questions/catalogs_sidebar.html b/rdmo/questions/templates/questions/catalogs_sidebar.html
index afb91b9328..eb45baad70 100644
--- a/rdmo/questions/templates/questions/catalogs_sidebar.html
+++ b/rdmo/questions/templates/questions/catalogs_sidebar.html
@@ -2,11 +2,24 @@
 
     <div ng-cloak>
 
-		<h2>{% trans 'Catalog' %}</h2>
+        <h2>{% trans 'Catalog' %}</h2>
 
-	    <select class="form-control" ng-model="service.current_catalog_id" ng-change="service.initView()" by-number ng-cloak>
-	        <option ng-repeat="catalog in service.catalogs | orderBy : 'title'" value="{$ catalog.id $}">{$ catalog.title $}</option>
-	    </select>
+        <select class="form-control" ng-model="service.current_catalog_id" ng-change="service.initView()" by-number ng-cloak>
+            <option ng-repeat="catalog in service.catalogs | orderBy : 'title'" value="{$ catalog.id $}">{$ catalog.title $}</option>
+        </select>
+
+        {% if settings.MULTISITE %}
+        <div class="form-group">
+            <div class="checkbox">
+                <label>
+                    <input type="checkbox"
+                    ng-model="service.filterCatalogsCurrentSite"
+                    ng-change="service.init()">
+                    {% trans 'Filter catalogs for' %} {{ request.site.domain }}
+                </label>
+            </div>
+        </div>
+        {% endif %}
 
         <h2>{% trans 'Filter questions' %}</h2>
 
@@ -49,6 +62,19 @@ <h2>{% trans 'Filter questions' %}</h2>
             </div>
         </div>
 
+        <div class="form-group">
+            <span class="checkbox">
+                <label>
+                    <input type="checkbox" ng-model="service.showURIs">
+                    {% trans 'Show URIs' %} 
+                </label>
+            </span>
+        </div>
+
+        <div ng-show="service.showURIs">
+            {% include 'questions/catalogs_sidebar_showuri_checkboxes.html' %}
+        </div>
+
         <h2>{% trans 'Options' %}</h2>
 
         <ul class="list-unstyled">
diff --git a/rdmo/questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html b/rdmo/questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html
new file mode 100644
index 0000000000..1958469e1a
--- /dev/null
+++ b/rdmo/questions/templates/questions/catalogs_sidebar_showuri_checkboxes.html
@@ -0,0 +1,31 @@
+{% load i18n %}
+<div class="form-group" ng-show="service.showURIs && service.showQuestionSets">
+  <div class="input-group">
+    <ul class="list-showURI-checkboxes" ng-show="service.showURIs">
+      <li class="form-group showURI-checkbox checkbox" ng-show="service.showQuestionSets && service.showQuestions">
+        <label>
+          <input type="checkbox" ng-model="service.showURIQuestions">
+          <code class="code-questions" title="{% trans 'URI' %}">{% trans 'Questions' %}</code>
+        </label>
+      </li>
+      <li class="form-group showURI-checkbox checkbox" ng-show="service.showQuestionSets">
+        <label>
+          <input type="checkbox" ng-model="service.showURIConditions">
+          <code class="code-conditions" title="{% trans 'Condition' %}">{% trans 'Conditions' %}</code>
+        </label>
+      </li>
+      <li class="form-group showURI-checkbox checkbox" ng-show="service.showQuestionSets">
+        <label>
+          <input type="checkbox" ng-model="service.showURIAttributes">
+          <code title="{% trans 'Attributes' %}">{% trans 'Attributes' %}</code>
+        </label>
+      </li>
+      <li class="form-group showURI-checkbox checkbox" ng-show="service.showQuestionSets && service.showQuestions">
+        <label>
+          <input type="checkbox" ng-model="service.showURIOptions">
+          <code class="code-options" title="{% trans 'Options' %}">{% trans 'Options' %}</code>
+        </label>
+      </li>
+    </ul>
+  </div>
+</div>
diff --git a/rdmo/questions/viewsets.py b/rdmo/questions/viewsets.py
index 3e21576701..cfae124c0a 100644
--- a/rdmo/questions/viewsets.py
+++ b/rdmo/questions/viewsets.py
@@ -37,7 +37,8 @@ class CatalogViewSet(CopyModelMixin, ModelViewSet):
     filterset_fields = (
         'uri',
         'key',
-        'comment'
+        'comment',
+        'sites'
     )
 
     def get_queryset(self):
@@ -72,7 +73,7 @@ def nested(self, request, pk):
 
     @action(detail=False)
     def index(self, request):
-        queryset = Catalog.objects.all()
+        queryset = self.filter_queryset(self.get_queryset())
         serializer = CatalogIndexSerializer(queryset, many=True)
         return Response(serializer.data)
 
@@ -132,7 +133,7 @@ def nested(self, request, pk):
 
     @action(detail=False)
     def index(self, request):
-        queryset = Section.objects.all()
+        queryset = self.filter_queryset(self.get_queryset())
         serializer = SectionIndexSerializer(queryset, many=True)
         return Response(serializer.data)
 
@@ -192,7 +193,7 @@ def nested(self, request, pk):
 
     @action(detail=False)
     def index(self, request):
-        queryset = QuestionSet.objects.all()
+        queryset = self.filter_queryset(self.get_queryset())
         serializer = QuestionSetIndexSerializer(queryset, many=True)
         return Response(serializer.data)
 
@@ -247,7 +248,7 @@ def nested(self, request, pk):
 
     @action(detail=False)
     def index(self, request):
-        queryset = Question.objects.all()
+        queryset = self.filter_queryset(self.get_queryset())
         serializer = QuestionIndexSerializer(queryset, many=True)
         return Response(serializer.data)
 
diff --git a/rdmo/views/templates/views/tags/value_inline_list.html b/rdmo/views/templates/views/tags/value_inline_list.html
index e959cfe8cb..b446d846c4 100644
--- a/rdmo/views/templates/views/tags/value_inline_list.html
+++ b/rdmo/views/templates/views/tags/value_inline_list.html
@@ -1,3 +1,3 @@
 {% for value in values %}
-    {{ value.value_and_unit }}{% if not forloop.last %}, {% endif %}
+    {{ value.value_and_unit }}{% if not forloop.last %}; {% endif %}
 {% endfor %}


Test patch:
diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml
index 8623980a00..4bb00975da 100644
--- a/.github/workflows/pytest.yml
+++ b/.github/workflows/pytest.yml
@@ -8,7 +8,7 @@ jobs:
     strategy:
       matrix:
         db-backend: [mysql, postgres, sqlite3]
-        python-version: ['3.6', '3.7', '3.8', '3.9', '3.10']
+        python-version: ['3.6', '3.10']
 
     services:
       postgres:
diff --git a/rdmo/projects/tests/test_handlers.py b/rdmo/projects/tests/test_handlers.py
new file mode 100644
index 0000000000..6ee2a928a5
--- /dev/null
+++ b/rdmo/projects/tests/test_handlers.py
@@ -0,0 +1,60 @@
+import itertools
+import pytest
+
+from django.contrib.auth.models import Group
+from django.contrib.sites.models import Site
+
+from rdmo.projects.models import Project
+from rdmo.questions.models import Catalog
+from rdmo.views.models import View
+
+view_update_tests = [
+    # tuples of: view_id, sites, catalogs, groups, project_id, project_exists
+    ('3', [],         [],      [], '10', True),
+    ('3', [2],        [],      [], '10', False),
+    ('3', [1, 2, 3],  [],      [], '10', True),
+    ('3', [],         [2],     [], '10', False),
+    ('3', [2],        [2],     [], '10', False),
+    ('3', [1, 2, 3],  [2],     [], '10', False),
+    ('3', [],         [1, 2],  [], '10', True),
+    ('3', [2],        [1, 2],  [], '10', False),
+    ('3', [1, 2, 3],  [1, 2],  [], '10', True),
+
+    ('3', [],         [],      [1], '10', False),
+    ('3', [2],        [],      [1], '10', False),
+    ('3', [1, 2, 3],  [],      [1], '10', False),
+    ('3', [],         [2],     [1], '10', False),
+    ('3', [2],        [2],     [1], '10', False),
+    ('3', [1, 2, 3],  [2],     [1], '10', False),
+    ('3', [],         [1, 2],  [1], '10', False),
+    ('3', [2],        [1, 2],  [1], '10', False),
+    ('3', [1, 2, 3],  [1, 2],  [1], '10', False),
+
+    ('3', [],         [],      [1, 2, 3, 4], '10', True),
+    ('3', [2],        [],      [1, 2, 3, 4], '10', False),
+    ('3', [1, 2, 3],  [],      [1, 2, 3, 4], '10', True),
+    ('3', [],         [2],     [1, 2, 3, 4], '10', False),
+    ('3', [2],        [2],     [1, 2, 3, 4], '10', False),
+    ('3', [1, 2, 3],  [2],     [1, 2, 3, 4], '10', False),
+    ('3', [],         [1, 2],  [1, 2, 3, 4], '10', True),
+    ('3', [2],        [1, 2],  [1, 2, 3, 4], '10', False),
+    ('3', [1, 2, 3],  [1, 2],  [1, 2, 3, 4], '10', True)
+]
+
+@pytest.mark.parametrize('view_id,sites,catalogs,groups,project_id,project_exists', view_update_tests)
+def test_update_projects(db, view_id, sites, catalogs, groups, project_id, project_exists):
+    view = View.objects.get(pk=view_id)
+
+    view.sites.set(Site.objects.filter(pk__in=sites))
+    view.catalogs.set(Catalog.objects.filter(pk__in=catalogs))
+    view.groups.set(Group.objects.filter(pk__in=groups))
+
+    assert sorted(list(itertools.chain.from_iterable(view.sites.all().values_list('pk')))) == sites
+    assert sorted(list(itertools.chain.from_iterable(view.catalogs.all().values_list('pk')))) == catalogs
+    assert sorted(list(itertools.chain.from_iterable(view.groups.all().values_list('pk')))) == groups
+
+    if not project_exists:
+        with pytest.raises(Project.DoesNotExist):
+            Project.objects.filter(views=view).get(pk=project_id)
+    else:
+        assert Project.objects.filter(views=view).get(pk=project_id)
diff --git a/rdmo/projects/tests/test_view_project.py b/rdmo/projects/tests/test_view_project.py
index 4ed39189f6..4ae7cde300 100644
--- a/rdmo/projects/tests/test_view_project.py
+++ b/rdmo/projects/tests/test_view_project.py
@@ -18,35 +18,35 @@
 )
 
 view_project_permission_map = {
-    'owner': [1, 2, 3, 4, 5],
+    'owner': [1, 2, 3, 4, 5, 10],
     'manager': [1, 3, 5, 7],
     'author': [1, 3, 5, 8],
     'guest': [1, 3, 5, 9],
     'api': [1, 2, 3, 4, 5],
-    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9]
+    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 }
 
 change_project_permission_map = {
-    'owner': [1, 2, 3, 4, 5],
+    'owner': [1, 2, 3, 4, 5, 10],
     'manager': [1, 3, 5, 7],
     'api': [1, 2, 3, 4, 5],
-    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9]
+    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 }
 
 delete_project_permission_map = {
-    'owner': [1, 2, 3, 4, 5],
+    'owner': [1, 2, 3, 4, 5, 10],
     'api': [1, 2, 3, 4, 5],
-    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9]
+    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 }
 
 export_project_permission_map = {
-    'owner': [1, 2, 3, 4, 5],
+    'owner': [1, 2, 3, 4, 5, 10],
     'manager': [1, 3, 5, 7],
     'api': [1, 2, 3, 4, 5],
-    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9]
+    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 }
 
-projects = [1, 2, 3, 4, 5, 6, 7, 8, 9]
+projects = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 
 export_formats = ('rtf', 'odt', 'docx', 'html', 'markdown', 'tex', 'pdf')
 
diff --git a/rdmo/projects/tests/test_viewset_issue.py b/rdmo/projects/tests/test_viewset_issue.py
index dec720b27d..6966c46cac 100644
--- a/rdmo/projects/tests/test_viewset_issue.py
+++ b/rdmo/projects/tests/test_viewset_issue.py
@@ -15,12 +15,12 @@
 )
 
 view_issue_permission_map = {
-    'owner': [1, 2, 3, 4, 5],
+    'owner': [1, 2, 3, 4, 5, 10],
     'manager': [1, 3, 5],
     'author': [1, 3, 5],
     'guest': [1, 3, 5],
-    'api': [1, 2, 3, 4, 5],
-    'site': [1, 2, 3, 4, 5]
+    'api': [1, 2, 3, 4, 5, 10],
+    'site': [1, 2, 3, 4, 5, 10]
 }
 
 urlnames = {
@@ -28,7 +28,7 @@
     'detail': 'v1-projects:issue-detail'
 }
 
-projects = [1, 2, 3, 4, 5]
+projects = [1, 2, 3, 4, 5, 10]
 issues = [1, 2, 3, 4]
 
 site_id = 1
diff --git a/rdmo/projects/tests/test_viewset_membership.py b/rdmo/projects/tests/test_viewset_membership.py
index 3bde01359b..47519ca9f7 100644
--- a/rdmo/projects/tests/test_viewset_membership.py
+++ b/rdmo/projects/tests/test_viewset_membership.py
@@ -15,12 +15,12 @@
 )
 
 view_membership_permission_map = {
-    'owner': [1, 2, 3, 4, 5],
+    'owner': [1, 2, 3, 4, 5, 10],
     'manager': [1, 3, 5, 7],
     'author': [1, 3, 5, 8],
     'guest': [1, 3, 5, 9],
-    'api': [1, 2, 3, 4, 5, 6, 7, 8, 9],
-    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9]
+    'api': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
+    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 }
 
 urlnames = {
@@ -28,7 +28,7 @@
     'detail': 'v1-projects:membership-detail'
 }
 
-projects = [1, 2, 3, 4, 5, 6, 7, 8, 9]
+projects = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 memberships = [1, 2, 3, 4]
 membership_roles = ('owner', 'manager', 'author', 'guest')
 
diff --git a/rdmo/projects/tests/test_viewset_project.py b/rdmo/projects/tests/test_viewset_project.py
index ffe7c3a2d1..104b157fcb 100644
--- a/rdmo/projects/tests/test_viewset_project.py
+++ b/rdmo/projects/tests/test_viewset_project.py
@@ -15,25 +15,25 @@
 )
 
 view_project_permission_map = {
-    'owner': [1, 2, 3, 4, 5],
+    'owner': [1, 2, 3, 4, 5, 10],
     'manager': [1, 3, 5, 7],
     'author': [1, 3, 5, 8],
     'guest': [1, 3, 5, 9],
-    'api': [1, 2, 3, 4, 5, 6, 7, 8, 9],
-    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9]
+    'api': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
+    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 }
 
 change_project_permission_map = {
-    'owner': [1, 2, 3, 4, 5],
+    'owner': [1, 2, 3, 4, 5, 10],
     'manager': [1, 3, 5, 7],
-    'api': [1, 2, 3, 4, 5, 6, 7, 8, 9],
-    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9]
+    'api': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
+    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 }
 
 delete_project_permission_map = {
-    'owner': [1, 2, 3, 4, 5],
-    'api': [1, 2, 3, 4, 5, 6, 7, 8, 9],
-    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9]
+    'owner': [1, 2, 3, 4, 5, 10],
+    'api': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
+    'site': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 }
 
 urlnames = {
diff --git a/testing/config/settings/base.py b/testing/config/settings/base.py
index b2519d7a72..52b6c65657 100644
--- a/testing/config/settings/base.py
+++ b/testing/config/settings/base.py
@@ -31,6 +31,8 @@
 
 PROJECT_SEND_INVITE = True
 
+PROJECT_REMOVE_VIEWS = True
+
 EMAIL_RECIPIENTS_CHOICES = [
     ('email@example.com', 'Emmi Email <email@example.com>'),
 ]
diff --git a/testing/fixtures/groups.json b/testing/fixtures/groups.json
index 06b4b67a3a..81187dcba4 100644
--- a/testing/fixtures/groups.json
+++ b/testing/fixtures/groups.json
@@ -22,5 +22,13 @@
       "name": "api",
       "permissions": []
     }
+  },
+  {
+    "model": "auth.group",
+    "pk": 4,
+    "fields": {
+      "name": "view_test",
+      "permissions": []
+    }
   }
 ]
\ No newline at end of file
diff --git a/testing/fixtures/projects.json b/testing/fixtures/projects.json
index d831d38ce9..5198e8c6d1 100644
--- a/testing/fixtures/projects.json
+++ b/testing/fixtures/projects.json
@@ -111,6 +111,24 @@
       "status": "open"
     }
   },
+  {
+    "model": "projects.issue",
+    "pk": 6,
+    "fields": {
+      "project": 10,
+      "task": 2,
+      "status": "open"
+    }
+  },
+  {
+    "model": "projects.issue",
+    "pk": 7,
+    "fields": {
+      "project": 10,
+      "task": 1,
+      "status": "open"
+    }
+  },
   {
     "model": "projects.issueresource",
     "pk": 1,
@@ -246,6 +264,15 @@
       "role": "guest"
     }
   },
+  {
+    "model": "projects.membership",
+    "pk": 15,
+    "fields": {
+      "project": 10,
+      "user": 5,
+      "role": "owner"
+    }
+  },
   {
     "model": "projects.project",
     "pk": 1,
@@ -426,6 +453,28 @@
       ]
     }
   },
+  {
+    "model": "projects.project",
+    "pk": 10,
+    "fields": {
+      "created": "2022-03-18T09:22:57.948Z",
+      "updated": "2022-03-18T09:26:17.893Z",
+      "parent": null,
+      "site": 1,
+      "title": "View Test",
+      "description": "",
+      "catalog": 1,
+      "lft": 1,
+      "rght": 2,
+      "tree_id": 7,
+      "level": 0,
+      "views": [
+        1,
+        2,
+        3
+      ]
+    }
+  },
   {
     "model": "projects.snapshot",
     "pk": 1,
diff --git a/testing/fixtures/users.json b/testing/fixtures/users.json
index 525181ef09..05f1991419 100644
--- a/testing/fixtures/users.json
+++ b/testing/fixtures/users.json
@@ -89,7 +89,9 @@
       "is_staff": false,
       "is_active": true,
       "date_joined": "2017-03-01T13:52:11Z",
-      "groups": [],
+      "groups": [
+        4
+      ],
       "user_permissions": []
     }
   },
diff --git a/testing/fixtures/views.json b/testing/fixtures/views.json
index e3d89f2f86..4246f9e555 100644
--- a/testing/fixtures/views.json
+++ b/testing/fixtures/views.json
@@ -58,5 +58,33 @@
       ],
       "groups": []
     }
+  },
+  {
+    "model": "views.view",
+    "pk": 3,
+    "fields": {
+      "uri": "http://example.com/terms/views/view_c",
+      "uri_prefix": "http://example.com/terms",
+      "key": "view_c",
+      "comment": "",
+      "locked": false,
+      "template": "{% load view_tags %}\n\n<h2>Empty</h2>",
+      "title_lang1": "Project Test View C",
+      "title_lang2": "Projekt Test Ansicht C",
+      "title_lang3": "",
+      "title_lang4": "",
+      "title_lang5": "",
+      "help_lang1": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
+      "help_lang2": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
+      "help_lang3": "",
+      "help_lang4": "",
+      "help_lang5": "",
+      "available": true,
+      "catalogs": [],
+      "sites": [
+        1
+      ],
+      "groups": []
+    }
   }
 ]
\ No newline at end of file
diff --git a/testing/xml/conditions.xml b/testing/xml/conditions.xml
index baa5f090b1..b9ff06af35 100644
--- a/testing/xml/conditions.xml
+++ b/testing/xml/conditions.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" ?>
 <rdmo xmlns:dc="http://purl.org/dc/elements/1.1/">
 	<condition dc:uri="http://example.com/terms/conditions/options_empty">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>options_empty</key>
 		<dc:comment/>
 		<source dc:uri="http://example.com/terms/domain/conditions/option"/>
@@ -10,7 +10,7 @@
 		<target_option/>
 	</condition>
 	<condition dc:uri="http://example.com/terms/conditions/options_equal_one">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>options_equal_one</key>
 		<dc:comment/>
 		<source dc:uri="http://example.com/terms/domain/conditions/option"/>
@@ -19,7 +19,7 @@
 		<target_option dc:uri="http://example.com/terms/options/one_two_three/one"/>
 	</condition>
 	<condition dc:uri="http://example.com/terms/conditions/options_not_empty">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>options_not_empty</key>
 		<dc:comment/>
 		<source dc:uri="http://example.com/terms/domain/conditions/option"/>
@@ -28,7 +28,7 @@
 		<target_option/>
 	</condition>
 	<condition dc:uri="http://example.com/terms/conditions/options_not_equal_one">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>options_not_equal_one</key>
 		<dc:comment/>
 		<source dc:uri="http://example.com/terms/domain/conditions/option"/>
@@ -37,7 +37,7 @@
 		<target_option dc:uri="http://example.com/terms/options/one_two_three/one"/>
 	</condition>
 	<condition dc:uri="http://example.com/terms/conditions/text_contains_test">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text_contains_test</key>
 		<dc:comment/>
 		<source dc:uri="http://example.com/terms/domain/conditions/text"/>
@@ -46,7 +46,7 @@
 		<target_option/>
 	</condition>
 	<condition dc:uri="http://example.com/terms/conditions/text_empty">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text_empty</key>
 		<dc:comment/>
 		<source dc:uri="http://example.com/terms/domain/conditions/text"/>
@@ -55,7 +55,7 @@
 		<target_option/>
 	</condition>
 	<condition dc:uri="http://example.com/terms/conditions/text_equal_test">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text_equal_test</key>
 		<dc:comment/>
 		<source dc:uri="http://example.com/terms/domain/conditions/text"/>
@@ -64,7 +64,7 @@
 		<target_option/>
 	</condition>
 	<condition dc:uri="http://example.com/terms/conditions/text_greater_than_0">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text_greater_than_0</key>
 		<dc:comment/>
 		<source dc:uri="http://example.com/terms/domain/conditions/text"/>
@@ -73,7 +73,7 @@
 		<target_option/>
 	</condition>
 	<condition dc:uri="http://example.com/terms/conditions/text_greater_than_equal_0">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text_greater_than_equal_0</key>
 		<dc:comment/>
 		<source dc:uri="http://example.com/terms/domain/conditions/text"/>
@@ -82,7 +82,7 @@
 		<target_option/>
 	</condition>
 	<condition dc:uri="http://example.com/terms/conditions/text_lesser_than_0">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text_lesser_than_0</key>
 		<dc:comment/>
 		<source dc:uri="http://example.com/terms/domain/conditions/text"/>
@@ -91,7 +91,7 @@
 		<target_option/>
 	</condition>
 	<condition dc:uri="http://example.com/terms/conditions/text_lesser_than_equal_0">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text_lesser_than_equal_0</key>
 		<dc:comment/>
 		<source dc:uri="http://example.com/terms/domain/conditions/text"/>
@@ -100,7 +100,7 @@
 		<target_option/>
 	</condition>
 	<condition dc:uri="http://example.com/terms/conditions/text_not_empty">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text_not_empty</key>
 		<dc:comment/>
 		<source dc:uri="http://example.com/terms/domain/conditions/text"/>
@@ -109,7 +109,7 @@
 		<target_option/>
 	</condition>
 	<condition dc:uri="http://example.com/terms/conditions/text_not_equal_test">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text_not_equal_test</key>
 		<dc:comment/>
 		<source dc:uri="http://example.com/terms/domain/conditions/text"/>
diff --git a/testing/xml/domain.xml b/testing/xml/domain.xml
index eb86454af4..5712a13e6a 100644
--- a/testing/xml/domain.xml
+++ b/testing/xml/domain.xml
@@ -1,1001 +1,1001 @@
 <?xml version="1.0" ?>
 <rdmo xmlns:dc="http://purl.org/dc/elements/1.1/">
 	<attribute dc:uri="http://example.com/terms/domain/set">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>set</key>
 		<path>set</path>
 		<dc:comment/>
 		<parent/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>collection</key>
 		<path>set/collection</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>set/collection/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/textarea">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>textarea</key>
 		<path>set/collection/textarea</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/bool">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>bool</key>
 		<path>set/collection/bool</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/datetime">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>datetime</key>
 		<path>set/collection/datetime</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/float">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>float</key>
 		<path>set/collection/float</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/integer">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>integer</key>
 		<path>set/collection/integer</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/radio">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>radio</key>
 		<path>set/collection/radio</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/range">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>range</key>
 		<path>set/collection/range</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/select">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>select</key>
 		<path>set/collection/select</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/url">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>url</key>
 		<path>set/collection/url</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/checkbox">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>checkbox</key>
 		<path>set/collection/checkbox</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>single</key>
 		<path>set/single</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>set/single/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/textarea">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>textarea</key>
 		<path>set/single/textarea</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/bool">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>bool</key>
 		<path>set/single/bool</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/datetime">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>datetime</key>
 		<path>set/single/datetime</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/float">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>float</key>
 		<path>set/single/float</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/integer">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>integer</key>
 		<path>set/single/integer</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/radio">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>radio</key>
 		<path>set/single/radio</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/range">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>range</key>
 		<path>set/single/range</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/select">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>select</key>
 		<path>set/single/select</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/url">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>url</key>
 		<path>set/single/url</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/id">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>id</key>
 		<path>set/id</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>collection</key>
 		<path>set/collection</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>set/collection/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/textarea">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>textarea</key>
 		<path>set/collection/textarea</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/bool">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>bool</key>
 		<path>set/collection/bool</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/datetime">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>datetime</key>
 		<path>set/collection/datetime</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/float">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>float</key>
 		<path>set/collection/float</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/integer">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>integer</key>
 		<path>set/collection/integer</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/radio">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>radio</key>
 		<path>set/collection/radio</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/range">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>range</key>
 		<path>set/collection/range</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/select">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>select</key>
 		<path>set/collection/select</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/url">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>url</key>
 		<path>set/collection/url</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/checkbox">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>checkbox</key>
 		<path>set/collection/checkbox</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>set/collection/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/textarea">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>textarea</key>
 		<path>set/collection/textarea</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/bool">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>bool</key>
 		<path>set/collection/bool</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/datetime">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>datetime</key>
 		<path>set/collection/datetime</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/float">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>float</key>
 		<path>set/collection/float</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/integer">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>integer</key>
 		<path>set/collection/integer</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/radio">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>radio</key>
 		<path>set/collection/radio</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/range">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>range</key>
 		<path>set/collection/range</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/select">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>select</key>
 		<path>set/collection/select</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/url">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>url</key>
 		<path>set/collection/url</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/collection/checkbox">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>checkbox</key>
 		<path>set/collection/checkbox</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>single</key>
 		<path>set/single</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>set/single/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/textarea">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>textarea</key>
 		<path>set/single/textarea</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/bool">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>bool</key>
 		<path>set/single/bool</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/datetime">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>datetime</key>
 		<path>set/single/datetime</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/float">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>float</key>
 		<path>set/single/float</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/integer">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>integer</key>
 		<path>set/single/integer</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/radio">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>radio</key>
 		<path>set/single/radio</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/range">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>range</key>
 		<path>set/single/range</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/select">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>select</key>
 		<path>set/single/select</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/url">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>url</key>
 		<path>set/single/url</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>set/single/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/textarea">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>textarea</key>
 		<path>set/single/textarea</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/bool">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>bool</key>
 		<path>set/single/bool</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/datetime">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>datetime</key>
 		<path>set/single/datetime</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/float">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>float</key>
 		<path>set/single/float</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/integer">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>integer</key>
 		<path>set/single/integer</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/radio">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>radio</key>
 		<path>set/single/radio</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/range">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>range</key>
 		<path>set/single/range</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/select">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>select</key>
 		<path>set/single/select</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/single/url">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>url</key>
 		<path>set/single/url</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/set/id">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>id</key>
 		<path>set/id</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/set"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>individual</key>
 		<path>individual</path>
 		<dc:comment/>
 		<parent/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>single</key>
 		<path>individual/single</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/bool">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>bool</key>
 		<path>individual/single/bool</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/datetime">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>datetime</key>
 		<path>individual/single/datetime</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/float">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>float</key>
 		<path>individual/single/float</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/integer">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>integer</key>
 		<path>individual/single/integer</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/radio">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>radio</key>
 		<path>individual/single/radio</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/range">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>range</key>
 		<path>individual/single/range</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/select">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>select</key>
 		<path>individual/single/select</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>individual/single/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/textarea">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>textarea</key>
 		<path>individual/single/textarea</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/url">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>url</key>
 		<path>individual/single/url</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>collection</key>
 		<path>individual/collection</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/bool">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>bool</key>
 		<path>individual/collection/bool</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/checkbox">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>checkbox</key>
 		<path>individual/collection/checkbox</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/datetime">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>datetime</key>
 		<path>individual/collection/datetime</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/float">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>float</key>
 		<path>individual/collection/float</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/integer">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>integer</key>
 		<path>individual/collection/integer</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/radio">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>radio</key>
 		<path>individual/collection/radio</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/range">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>range</key>
 		<path>individual/collection/range</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/select">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>select</key>
 		<path>individual/collection/select</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>individual/collection/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/textarea">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>textarea</key>
 		<path>individual/collection/textarea</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/url">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>url</key>
 		<path>individual/collection/url</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>single</key>
 		<path>individual/single</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/bool">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>bool</key>
 		<path>individual/single/bool</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/datetime">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>datetime</key>
 		<path>individual/single/datetime</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/float">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>float</key>
 		<path>individual/single/float</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/integer">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>integer</key>
 		<path>individual/single/integer</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/radio">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>radio</key>
 		<path>individual/single/radio</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/range">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>range</key>
 		<path>individual/single/range</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/select">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>select</key>
 		<path>individual/single/select</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>individual/single/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/textarea">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>textarea</key>
 		<path>individual/single/textarea</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/url">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>url</key>
 		<path>individual/single/url</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/bool">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>bool</key>
 		<path>individual/single/bool</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/datetime">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>datetime</key>
 		<path>individual/single/datetime</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/float">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>float</key>
 		<path>individual/single/float</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/integer">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>integer</key>
 		<path>individual/single/integer</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/radio">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>radio</key>
 		<path>individual/single/radio</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/range">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>range</key>
 		<path>individual/single/range</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/select">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>select</key>
 		<path>individual/single/select</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>individual/single/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/textarea">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>textarea</key>
 		<path>individual/single/textarea</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/single/url">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>url</key>
 		<path>individual/single/url</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/single"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>collection</key>
 		<path>individual/collection</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/bool">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>bool</key>
 		<path>individual/collection/bool</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/checkbox">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>checkbox</key>
 		<path>individual/collection/checkbox</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/datetime">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>datetime</key>
 		<path>individual/collection/datetime</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/float">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>float</key>
 		<path>individual/collection/float</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/integer">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>integer</key>
 		<path>individual/collection/integer</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/radio">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>radio</key>
 		<path>individual/collection/radio</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/range">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>range</key>
 		<path>individual/collection/range</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/select">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>select</key>
 		<path>individual/collection/select</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>individual/collection/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/textarea">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>textarea</key>
 		<path>individual/collection/textarea</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/url">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>url</key>
 		<path>individual/collection/url</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/bool">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>bool</key>
 		<path>individual/collection/bool</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/checkbox">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>checkbox</key>
 		<path>individual/collection/checkbox</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/datetime">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>datetime</key>
 		<path>individual/collection/datetime</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/float">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>float</key>
 		<path>individual/collection/float</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/integer">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>integer</key>
 		<path>individual/collection/integer</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/radio">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>radio</key>
 		<path>individual/collection/radio</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/range">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>range</key>
 		<path>individual/collection/range</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/select">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>select</key>
 		<path>individual/collection/select</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>individual/collection/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/textarea">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>textarea</key>
 		<path>individual/collection/textarea</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/individual/collection/url">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>url</key>
 		<path>individual/collection/url</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/individual/collection"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/conditions">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>conditions</key>
 		<path>conditions</path>
 		<dc:comment/>
 		<parent/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/conditions/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>conditions/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/conditions"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/conditions/option">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>option</key>
 		<path>conditions/option</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/conditions"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/conditions/text">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>text</key>
 		<path>conditions/text</path>
 		<dc:comment/>
 		<parent dc:uri="http://example.com/terms/domain/conditions"/>
 	</attribute>
 	<attribute dc:uri="http://example.com/terms/domain/conditions/option">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>option</key>
 		<path>conditions/option</path>
 		<dc:comment/>
diff --git a/testing/xml/options.xml b/testing/xml/options.xml
index af7f7c32c6..4cc2f07294 100644
--- a/testing/xml/options.xml
+++ b/testing/xml/options.xml
@@ -1,14 +1,14 @@
 <?xml version="1.0" ?>
 <rdmo xmlns:dc="http://purl.org/dc/elements/1.1/">
 	<optionset dc:uri="http://example.com/terms/options/one_two_three">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>one_two_three</key>
 		<dc:comment/>
 		<order>0</order>
 		<conditions/>
 	</optionset>
 	<option dc:uri="http://example.com/terms/options/one_two_three/one">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>one</key>
 		<path>one_two_three/one</path>
 		<dc:comment/>
@@ -19,7 +19,7 @@
 		<additional_input>False</additional_input>
 	</option>
 	<option dc:uri="http://example.com/terms/options/one_two_three/two">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>two</key>
 		<path>one_two_three/two</path>
 		<dc:comment/>
@@ -30,7 +30,7 @@
 		<additional_input>False</additional_input>
 	</option>
 	<option dc:uri="http://example.com/terms/options/one_two_three/three">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>three</key>
 		<path>one_two_three/three</path>
 		<dc:comment/>
@@ -41,14 +41,14 @@
 		<additional_input>False</additional_input>
 	</option>
 	<optionset dc:uri="http://example.com/terms/options/one_two_three_other">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>one_two_three_other</key>
 		<dc:comment/>
 		<order>1</order>
 		<conditions/>
 	</optionset>
 	<option dc:uri="http://example.com/terms/options/one_two_three_other/one">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>one</key>
 		<path>one_two_three_other/one</path>
 		<dc:comment/>
@@ -59,7 +59,7 @@
 		<additional_input>False</additional_input>
 	</option>
 	<option dc:uri="http://example.com/terms/options/one_two_three_other/two">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>two</key>
 		<path>one_two_three_other/two</path>
 		<dc:comment/>
@@ -70,7 +70,7 @@
 		<additional_input>False</additional_input>
 	</option>
 	<option dc:uri="http://example.com/terms/options/one_two_three_other/three">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>three</key>
 		<path>one_two_three_other/three</path>
 		<dc:comment/>
@@ -81,7 +81,7 @@
 		<additional_input>False</additional_input>
 	</option>
 	<option dc:uri="http://example.com/terms/options/one_two_three_other/other">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>other</key>
 		<path>one_two_three_other/other</path>
 		<dc:comment/>
diff --git a/testing/xml/tasks.xml b/testing/xml/tasks.xml
index 8c4f11f2d4..13563a17ef 100644
--- a/testing/xml/tasks.xml
+++ b/testing/xml/tasks.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" ?>
 <rdmo xmlns:dc="http://purl.org/dc/elements/1.1/">
 	<task dc:uri="http://example.com/terms/tasks/options_contains_one">
-		<uri_prefix/>
+		<uri_prefix>http://example.com/terms</uri_prefix>
 		<key>options_contains_one</key>
 		<dc:comment>1</dc:comment>
 		<title lang="en">options_contains_one</title>