02-16-2023 07:54 AM
Hello,
Situation:
We're creating generic aspects that we want to re-use in different Types.
So now I have the shared-model.xml
<?xml version="1.0" encoding="UTF-8"?>
<model name="doc:contentModel"
xmlns="http://www.alfresco.org/model/dictionary/1.0">
<description>
Dossier document Datamodel
</description>
<author>Author</author>
<version>1.0.0</version>
<imports>
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
<import uri="http://www.alfresco.org/model/system/1.0" prefix="sys"/>
</imports>
<namespaces>
<namespace uri="http://www.site.tld/model/content/socialedienst/1.0" prefix="sd" />
<namespace uri="http://www.site.tld/model/content/document/1.0" prefix="doc" />
<namespace uri="http://www.site.tld/model/content/folder/klant/1.0" prefix="klant" />
<namespace uri="http://www.site.tld/model/content/folder/medewerker/1.0" prefix="medewerker" />
</namespaces>
<types>
<!-- Types
Socialedienst document: Socialedienst-model.xml
Socialedienst folder: socialedienstfolder-model.xml
-->
</types>
<aspects>
<aspect name="doc:dossierDocument">
<title>Dossier document</title>
<properties>
<property name="doc:documentSoort">
<type>d:text</type>
</property>
<--snip-->
</properties>
</aspect>
<aspect name="sd:socialeDienst">
<title>Sociale Dienst</title>
<properties>
<property name="sd:contactPersoon">
<type>d:text</type>
</property>
<--snip-->
</properties>
</aspect>
<aspect name="klant:Folder">
<title>Sociale Dienst Folder</title>
<properties>
<property name="klant:rrnr">
<type>d:text</type>
</property>
<--snip-->
</properties>
</aspect>
<aspect name="medewerker:Folder">
<title>Medewerker Folder</title>
<properties>
<property name="medewerker:rrnr">
<type>d:text</type>
</property>
<--snip-->
</properties>
</aspect>
</aspects>
</model>As you can see I want to have the Types in socialedienst-model.xml and socialedienstfolder-xml
Content of socialedienst-model.xml
<?xml version="1.0" encoding="UTF-8"?>
<model name="sd:contentModel"
xmlns="http://www.alfresco.org/model/dictionary/1.0">
<description>
Sociale Dienst Contentmodel
</description>
<author>Author</author>
<version>1.0.0</version>
<imports>
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
<import uri="http://www.alfresco.org/model/system/1.0" prefix="sys"/>
<import uri="http://www.site.tld/model/content/socialedienst/1.0" prefix="sd" />
<import uri="http://www.site.tld/model/content/document/1.0" prefix="doc" />
</imports>
<namespaces>
<namespace uri="http://www.site.tld/model/content/socialedienst/1.0" prefix="sd" />
<namespace uri="http://www.site.tld/model/content/document/1.0" prefix="doc" />
</namespaces>
<types>
<type name="sd:sociaalDossier">
<title>Sociaal Dossier</title>
<parent>cm:content</parent>
<properties>
<property name="sd:naam">
<type>d:text</type>
</property>
</properties>
<mandatory-aspects>
<aspect>sd:socialeDienst</aspect>
<aspect>doc:dossierDocument</aspect>
</mandatory-aspects>
</type>
</types>
<aspects>
<!-- Aspects in shared-model.xml -->
</aspects>
</model>But this results in
Caused by: org.alfresco.service.namespace.NamespaceException: URI http://www.site.tld/model/content/socialedienst/1.0 has already been defined
Is this even possible or what is the best practice here?
TIA
Jonathan
02-16-2023 01:32 PM
You can't define the same namespaces with related prefixes in two different models.
So you have to change the namespaces and prefixes in your second model, I mean the <namespaces> xml element.
It should be enough for making it work correctly ![]()
Explore our Alfresco products with the links below. Use labels to filter content by product module.