cancel
Showing results for 
Search instead for 
Did you mean: 

Cannot define class X as namespace Y is not defined by model

nicolasraoul
Star Contributor
Star Contributor
After upgrading to Alfresco 3.4, I get the following error at startup:

DictionaryException: 03040001 Cannot define class sec:startTask as namespace http://www.someco.co.jp/ is not defined by model sec:workflowmodel

Looks like it is due to Alfresco getting more strict starting from 3.3SP1.
BUT I have defined a custom namespace and used it for all new elements (see model definition below).
So any idea what could be wrong?

<?xml version="1.0" encoding="UTF-8"?>
<model xmlns="http://www.alfresco.org/model/dictionary/1.0" name="sec:somecoModel">
   <description>Custom Model for someco</description>
   <author>Nicolas Raoul</author>
   <version>1.0</version>

   <imports>
      <!– Import Alfresco Dictionary Definitions –>
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
      <!– Import Alfresco Content Domain Model Definitions –>
      <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
   </imports>

   <!– Introduction of new namespaces defined by this model –>
   <namespaces>
      <namespace uri="http://www.someco.co.jp/" prefix="sec"/>
      <namespace uri="http://www.someco.co.jp/sf" prefix="sf"/>
   </namespaces>

   <constraints>
      <constraint name="sec:confidentialityClass" type="LIST">
         <parameter name="allowedValues">
            <list>
               <value>なし</value>
               <value>秘</value>
               <value>関係者外秘</value>
               <value>極秘</value>
            </list>
         </parameter>
      </constraint>
   </constraints>
   <types>
      <type name="sec:standardDocument">
         <title>someco Standard Document</title>
         <parent>cm:content</parent>
         <properties>
            <property name="sec:confidentiality">
               <type>d:text</type>
               <mandatory>true</mandatory>
               <default>なし</default>
               <constraints>
                  <constraint ref="sec:confidentialityClass"/>
               </constraints>
            </property>
            <property name="sec:isQMS">
               <type>d:boolean</type>
               <mandatory>true</mandatory>
               <default>false</default>
            </property>
            <property name="sec:isEMS">
               <type>d:boolean</type>
               <mandatory>true</mandatory>
               <default>false</default>
            </property>
            <property name="sec:isSOX">
               <type>d:boolean</type>
               <mandatory>true</mandatory>
               <default>false</default>
            </property>
         </properties>
         <mandatory-aspects>
            <aspect>cm:generalclassifiable</aspect>
         </mandatory-aspects>
      </type>
      <type name="sec:approvedDocument">
         <title>someco Approved Document</title>
         <parent>sec:standardDocument</parent>
         <properties>
            <property name="sec:originalVersionNumber">
               <type>d:text</type>
            </property>
            <property name="sec:originalVersionMemo">
               <type>d:text</type>
            </property>
            <property name="sec:approvalHistory">
               <type>d:text</type>
            </property>
         </properties>
         <associations>
            <association name="sec:originalVersion">
               <title>Document for editing</title>
               <source>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </source>
               <target>
                  <class>sec:standardDocument</class>
                  <mandatory>true</mandatory>
                  <many>true</many>
               </target>
            </association>
         </associations>
      </type>
   </types>
   <aspects>
      <aspect name="sec:approvable">
         <title>someco approved</title>
         <associations>
            <child-association name="sec:approvedVersion">
               <title>Approved Document</title>
               <source>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </source>
               <target>
                  <class>sec:approvedDocument</class>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </target>
            </child-association>
         </associations>
      </aspect>
      <aspect name="sec:recordable">
         <title>someco recordable</title>
         <properties>
            <property name="sec:recordStartDate">
               <type>d:date</type>
            </property>
            <property name="sec:recordEndDate">
               <type>d:date</type>
            </property>
            <property name="sec:recordDisposeDate">
               <type>d:date</type>
            </property>
         </properties>
      </aspect>
      <aspect name="sec:workflow">
         <title>someco workflow parameters</title>
         <properties>
            <property name="sec:publicationMethod">
               <type>d:text</type>
            </property>
            <property name="sec:firstNode">
               <type>d:text</type>
               <default>this is the default value</default>
            </property>
         </properties>
      </aspect>
      
       <aspect name="sec:from">
            <properties>
               <property name="sec:from">
                  <type>d:text</type>
               </property>
            </properties>
       </aspect>
       <aspect name="sec:firstNodeName">
            <properties>
               <property name="sec:firstNodeName">
                  <type>d:text</type>
               </property>
            </properties>
       </aspect>
   </aspects>
</model>
1 REPLY 1

nicolasraoul
Star Contributor
Star Contributor
I have found:
I had other model elements defined in another file (workflow tasks definitions).
I solved the problem by using different namespaces in each file.