<?xml version="1.0" encoding="UTF-8"?>
<!-- xsi:schemaLocation="http://www.alfresco.org/model/dictionary/1.0 modelSchema.xsd" -->
<model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       name="cm:contentmodel"
       xmlns="http://www.alfresco.org/model/dictionary/1.0">

    <description>Alfresco Content Domain Model</description>
    <author>Alfresco</author>
    <published>2009-06-04</published>
    <version>1.1</version>

    <imports>
        <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
        <import uri="http://www.alfresco.org/model/system/1.0" prefix="sys"/>
    </imports>

    <namespaces>
        <namespace uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
        <namespace uri="http://www.alfresco.org/model/rendition/1.0" prefix="rn"/>
        <namespace uri="http://www.alfresco.org/model/exif/1.0" prefix="exif"/>
    </namespaces>

    <constraints>
        <constraint name="cm:filename" type="REGEX">
            <parameter name="expression">
                <value><![CDATA[(.*[\"\*\\\>\<\?\/\:\|]+.*)|(.*[\.]?.*[\.]+$)|(.*[ ]+$)]]></value>
            </parameter>
            <parameter name="requiresMatch">
                <value>false</value>
            </parameter>
        </constraint>
        <constraint name="cm:userNameConstraint" type="org.alfresco.repo.dictionary.constraint.UserNameConstraint"/>
        <constraint name="cm:authorityNameConstraint"
                    type="org.alfresco.repo.dictionary.constraint.AuthorityNameConstraint"/>
        <constraint name="cm:storeSelectorConstraint" type="REGISTERED">
            <parameter name="registeredName">
                <value>defaultStoreSelector</value>
            </parameter>
        </constraint>
    </constraints>

    <types>

        <type name="cm:cmobject">
            <title>Object</title>
            <parent>sys:base</parent>
            <properties>
                <property name="cm:name">
                    <title>Name</title>
                    <type>d:text</type>
                    <mandatory enforced="true">true</mandatory>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>both</tokenised>
                    </index>
                    <constraints>
                        <constraint ref="cm:filename"/>
                    </constraints>
                </property>
            </properties>
            <mandatory-aspects>
                <aspect>cm:auditable</aspect>
            </mandatory-aspects>
        </type>

        <type name="cm:folder">
            <title>Folder</title>
            <parent>cm:cmobject</parent>
            <archive>false</archive>
            <associations>
                <child-association name="cm:contains">
                    <source>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </source>
                    <target>
                        <class>sys:base</class>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                    <duplicate>false</duplicate>
                    <propagateTimestamps>true</propagateTimestamps>
                </child-association>
            </associations>
        </type>

        <type name="cm:content">
            <title>Content</title>
            <parent>cm:cmobject</parent>
            <archive>false</archive>
            <properties>
                <property name="cm:content">
                    <type>d:content</type>
                    <mandatory>false</mandatory>
                    <!-- Although content is marked as indexed atomically it may end up asynchronous -->
                    <!-- if the content conversion will take too long. Content that does not require conversion -->
                    <!-- to UTF8 test/plain will always be indexed atomically -->
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>true</tokenised>
                    </index>
                </property>
            </properties>
        </type>

        <type name="cm:dictionaryModel">
            <title>Dictionary Model</title>
            <parent>cm:content</parent>
            <properties>
                <property name="cm:modelName">
                    <title>Model name</title>
                    <type>d:qname</type>
                    <protected>true</protected>
                </property>
                <property name="cm:modelDescription">
                    <title>Description</title>
                    <type>d:text</type>
                    <protected>true</protected>
                </property>
                <property name="cm:modelAuthor">
                    <title>Author</title>
                    <type>d:text</type>
                    <protected>true</protected>
                </property>
                <property name="cm:modelPublishedDate">
                    <title>Published Date</title>
                    <type>d:date</type>
                    <protected>true</protected>
                </property>
                <property name="cm:modelVersion">
                    <title>Version</title>
                    <type>d:text</type>
                    <protected>true</protected>
                </property>
                <property name="cm:modelActive">
                    <title>Model Active</title>
                    <type>d:boolean</type>
                    <default>false</default>
                </property>
            </properties>
        </type>

        <type name="cm:link">
            <title>Link Object</title>
            <parent>cm:cmobject</parent>
            <properties>
                <property name="cm:destination">
                    <title>Link Destination</title>
                    <type>d:noderef</type>
                    <mandatory>true</mandatory>
                </property>
            </properties>
        </type>

        <type name="cm:savedquery">
            <title>Saved Query</title>
            <parent>cm:content</parent>
        </type>

        <type name="cm:systemfolder">
            <title>System Folder</title>
            <parent>cm:folder</parent>
        </type>

        <type name="cm:authority">
            <title>Alfresco Authority Abstract Type</title>
            <parent>sys:base</parent>
        </type>

        <type name="cm:person">
            <title>Person</title>
            <parent>cm:authority</parent>
            <properties>
                <!-- The tokenisation set here is ignored - it is fixed for this type -->
                <!-- This is so you can not break person lookup -->
                <property name="cm:userName">
                    <type>d:text</type>
                    <mandatory>true</mandatory>
                    <constraints>
                        <constraint ref="cm:userNameConstraint"/>
                    </constraints>
                </property>
                <property name="cm:homeFolder">
                    <type>d:noderef</type>
                    <mandatory>true</mandatory>
                </property>
                <property name="cm:firstName">
                    <type>d:text</type>
                    <mandatory>true</mandatory>
                </property>
                <property name="cm:lastName">
                    <type>d:text</type>
                    <mandatory>true</mandatory>
                </property>
                <property name="cm:middleName">
                    <type>d:text</type>
                </property>
                <property name="cm:email">
                    <type>d:text</type>
                </property>
                <property name="cm:organizationId">
                    <type>d:text</type>
                </property>
                <property name="cm:homeFolderProvider">
                    <type>d:text</type>
                </property>
                <property name="cm:defaultHomeFolderPath">
                    <type>d:text</type>
                </property>
                <property name="cm:presenceProvider">
                    <type>d:text</type>
                </property>
                <property name="cm:presenceUsername">
                    <type>d:text</type>
                </property>
                <property name="cm:organization">
                    <type>d:text</type>
                </property>
                <property name="cm:jobtitle">
                    <type>d:text</type>
                </property>
                <property name="cm:location">
                    <type>d:text</type>
                </property>
                <property name="cm:persondescription">
                    <type>d:content</type>
                </property>
                <property name="cm:telephone">
                    <type>d:text</type>
                </property>
                <property name="cm:mobile">
                    <type>d:text</type>
                </property>
                <property name="cm:companyaddress1">
                    <type>d:text</type>
                </property>
                <property name="cm:companyaddress2">
                    <type>d:text</type>
                </property>
                <property name="cm:companyaddress3">
                    <type>d:text</type>
                </property>
                <property name="cm:companypostcode">
                    <type>d:text</type>
                </property>
                <property name="cm:companytelephone">
                    <type>d:text</type>
                </property>
                <property name="cm:companyfax">
                    <type>d:text</type>
                </property>
                <property name="cm:companyemail">
                    <type>d:text</type>
                </property>
                <property name="cm:skype">
                    <type>d:text</type>
                </property>
                <property name="cm:instantmsg">
                    <type>d:text</type>
                </property>
                <property name="cm:userStatus">
                    <type>d:text</type>
                </property>
                <property name="cm:userStatusTime">
                    <type>d:datetime</type>
                </property>
                <property name="cm:googleusername">
                    <type>d:text</type>
                </property>

                <!-- system maintained values -->
                <property name="cm:sizeCurrent">
                    <type>d:long</type>
                    <protected>true</protected>
                    <mandatory enforced="true">true</mandatory>
                </property>
                <property name="cm:sizeQuota">
                    <type>d:long</type>
                    <protected>true</protected>
                </property>
            </properties>

            <associations>
                <association name="cm:avatar">
                    <source>
                        <role>cm:avatarOf</role>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </source>
                    <target>
                        <class>cm:content</class>
                        <role>cm:hasAvatar</role>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </target>
                </association>
            </associations>
        </type>

        <type name="cm:authorityContainer">
            <title>Alfresco Authority Type</title>
            <parent>cm:authority</parent>
            <properties>
                <!-- The tokenisation set here is ignored - it is fixed for this type -->
                <!-- This is so you can not break group lookup -->
                <property name="cm:authorityName">
                    <type>d:text</type>
                    <constraints>
                        <constraint ref="cm:authorityNameConstraint"/>
                    </constraints>
                </property>
                <property name="cm:authorityDisplayName">
                    <type>d:text</type>
                </property>
            </properties>
            <associations>
                <child-association name="cm:member">
                    <source>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </source>
                    <target>
                        <class>cm:authority</class>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                    <duplicate>false</duplicate>
                </child-association>
            </associations>
        </type>

        <type name="cm:zone">
            <title>Alfresco Authentication Zone Type</title>
            <parent>cm:cmobject</parent>
            <properties>
            </properties>
            <associations>
                <child-association name="cm:inZone">
                    <source>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </source>
                    <target>
                        <class>cm:authority</class>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                    <duplicate>false</duplicate>
                </child-association>
            </associations>
        </type>

        <!-- Classification -->

        <type name="cm:category_root">
            <title>Category Root</title>
            <parent>cm:cmobject</parent>
            <associations>
                <child-association name="cm:categories">
                    <source>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </source>
                    <target>
                        <class>cm:category</class>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                </child-association>
            </associations>
            <mandatory-aspects>
                <aspect>sys:aspect_root</aspect>
            </mandatory-aspects>
        </type>

        <type name="cm:category">
            <title>Category</title>
            <parent>cm:cmobject</parent>
            <associations>
                <child-association name="cm:subcategories">
                    <source>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </source>
                    <target>
                        <class>cm:category</class>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                    <duplicate>false</duplicate>
                </child-association>
            </associations>
        </type>

        <!-- Multilingual -->
        <type name="cm:mlRoot">
            <title>Multilingual Root</title>
            <parent>sys:container</parent>
            <associations>
                <child-association name="cm:mlContainer">
                    <source>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </source>
                    <target>
                        <class>cm:mlContainer</class>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                </child-association>
            </associations>
        </type>

        <type name="cm:mlContainer">
            <title>Multilingual Container</title>
            <parent>sys:container</parent>
            <associations>
                <child-association name="cm:mlChild">
                    <source>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </source>
                    <target>
                        <class>cm:mlDocument</class>
                        <mandatory>true</mandatory>
                        <many>true</many>
                    </target>
                </child-association>
            </associations>
            <mandatory-aspects>
                <aspect>cm:versionable</aspect>
                <aspect>cm:author</aspect>
                <aspect>sys:localized</aspect>
            </mandatory-aspects>
        </type>

        <type name="cm:rating">
            <title>Rating</title>
            <properties>
                <property name="cm:ratingScore">
                    <title>Rating</title>
                    <type>d:float</type>
                    <mandatory>true</mandatory>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>false</tokenised>
                    </index>
                </property>
                <property name="cm:ratingScheme">
                    <title>Rating Scheme</title>
                    <type>d:text</type>
                    <mandatory>true</mandatory>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>false</tokenised>
                    </index>
                </property>
                <property name="cm:ratedAt">
                    <title>Rated at</title>
                    <type>d:datetime</type>
                    <mandatory>true</mandatory>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>false</tokenised>
                    </index>
                </property>
            </properties>
        </type>

        <!--              -->
        <!--  DEPRECATED  -->
        <!--              -->

        <!-- Thumbnail content type -->
        <type name="cm:thumbnail">
            <title>Thumbnail</title>
            <parent>cm:content</parent>
            <archive>true</archive>
            <includedInSuperTypeQuery>false</includedInSuperTypeQuery>
            <properties>
                <property name="cm:thumbnailName">
                    <title>Thumbnail Name</title>
                    <type>d:text</type>
                    <mandatory>false</mandatory>
                </property>
                <property name="cm:contentPropertyName">
                    <title>Thumbnailed Content Property Name</title>
                    <type>d:qname</type>
                    <mandatory>true</mandatory>
                </property>
            </properties>
        </type>

        <!--                      -->
        <!--  DEPRECATED (end of) -->
        <!--                      -->

    </types>


    <aspects>

        <aspect name="cm:titled">
            <title>Titled</title>
            <properties>
                <property name="cm:title">
                    <title>Title</title>
                    <type>d:mltext</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
                <property name="cm:description">
                    <title>Description</title>
                    <type>d:mltext</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:auditable">
            <title>Auditable</title>
            <properties>
                <property name="cm:created">
                    <title>Created</title>
                    <type>d:datetime</type>
                    <protected>true</protected>
                    <mandatory enforced="true">true</mandatory>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
                <property name="cm:creator">
                    <title>Creator</title>
                    <type>d:text</type>
                    <protected>true</protected>
                    <mandatory enforced="true">true</mandatory>
                </property>
                <property name="cm:modified">
                    <title>Modified</title>
                    <type>d:datetime</type>
                    <protected>true</protected>
                    <mandatory enforced="true">true</mandatory>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
                <property name="cm:modifier">
                    <title>Modifier</title>
                    <type>d:text</type>
                    <protected>true</protected>
                    <mandatory enforced="true">true</mandatory>
                </property>
                <property name="cm:accessed">
                    <title>Accessed</title>
                    <type>d:datetime</type>
                    <protected>true</protected>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:transformable">
            <title>Transformable</title>
            <associations>
                <association name="cm:formats">
                    <title>Formats</title>
                    <source>
                        <role>cm:formatOf</role>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </source>
                    <target>
                        <class>cm:content</class>
                        <role>cm:hasFormat</role>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                </association>
            </associations>
        </aspect>

        <aspect name="cm:templatable">
            <title>Templatable</title>
            <properties>
                <property name="cm:template">
                    <title>Template</title>
                    <type>d:noderef</type>
                    <mandatory>false</mandatory>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:webscriptable">
            <title>Webscriptable</title>
            <properties>
                <property name="cm:webscript">
                    <title>Webscript</title>
                    <type>d:text</type>
                    <mandatory>false</mandatory>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:projectsummary">
            <title>Project Summary</title>
            <properties>
                <property name="cm:summaryWebscript">
                    <title>Project Summary Webscript</title>
                    <type>d:text</type>
                    <mandatory>false</mandatory>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:complianceable">
            <title>Complianceable</title>
            <properties>
                <property name="cm:removeAfter">
                    <title>Remove After</title>
                    <type>d:datetime</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
            </properties>
            <mandatory-aspects>
                <aspect>cm:auditable</aspect>
            </mandatory-aspects>
        </aspect>

        <aspect name="cm:ownable">
            <title>Ownable</title>
            <properties>
                <property name="cm:owner">
                    <title>Owner</title>
                    <type>d:text</type>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:author">
            <title>Author</title>
            <properties>
                <property name="cm:author">
                    <title>Author</title>
                    <type>d:text</type>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:dublincore">
            <title>Dublin Core</title>
            <parent>cm:titled</parent>
            <properties>
                <property name="cm:publisher">
                    <title>Publisher</title>
                    <type>d:text</type>
                    <mandatory enforced="false">true</mandatory>
                </property>
                <property name="cm:contributor">
                    <title>Contributor</title>
                    <type>d:text</type>
                    <mandatory enforced="false">true</mandatory>
                </property>
                <property name="cm:type">
                    <title>Type</title>
                    <type>d:text</type>
                    <mandatory enforced="false">true</mandatory>
                </property>
                <property name="cm:identifier">
                    <title>Identifier</title>
                    <type>d:text</type>
                    <mandatory enforced="false">true</mandatory>
                </property>
                <property name="cm:dcsource">
                    <title>Source</title>
                    <type>d:text</type>
                    <mandatory enforced="false">true</mandatory>
                </property>
                <property name="cm:coverage">
                    <title>Coverage</title>
                    <type>d:text</type>
                    <mandatory enforced="false">true</mandatory>
                </property>
                <property name="cm:rights">
                    <title>Rights</title>
                    <type>d:text</type>
                    <mandatory enforced="false">true</mandatory>
                </property>
                <property name="cm:subject">
                    <title>Subject</title>
                    <type>d:text</type>
                    <mandatory enforced="false">true</mandatory>
                </property>
            </properties>
            <mandatory-aspects>
                <aspect>cm:auditable</aspect>
                <aspect>cm:author</aspect>
            </mandatory-aspects>
        </aspect>

        <aspect name="cm:basable">
            <title>Basable</title>
            <associations>
                <association name="cm:basis">
                    <source>
                        <role>cm:basedOn</role>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </source>
                    <target>
                        <class>cm:content</class>
                        <role>cm:hasBasis</role>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                </association>
            </associations>
        </aspect>

        <aspect name="cm:partable">
            <title>Partable</title>
            <associations>
                <association name="cm:parts">
                    <source>
                        <role>cm:partOf</role>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </source>
                    <target>
                        <class>cm:content</class>
                        <role>cm:hasPart</role>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                </association>
            </associations>
        </aspect>

        <aspect name="cm:referencing">
            <title>Referencing</title>
            <associations>
                <association name="cm:references">
                    <source>
                        <role>cm:referencedBy</role>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </source>
                    <target>
                        <class>cm:content</class>
                        <role>cm:references</role>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                </association>
            </associations>
        </aspect>

        <aspect name="cm:replaceable">
            <title>Replacable</title>
            <associations>
                <association name="cm:replaces">
                    <source>
                        <role>cm:replacedBy</role>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </source>
                    <target>
                        <class>cm:content</class>
                        <role>cm:replaces</role>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                </association>
            </associations>
        </aspect>

        <aspect name="cm:effectivity">
            <title>Effectivity</title>
            <properties>
                <property name="cm:from">
                    <title>Effective From</title>
                    <type>d:datetime</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
                <property name="cm:to">
                    <title>Effective To</title>
                    <type>d:datetime</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:summarizable">
            <title>Summarizable</title>
            <properties>
                <property name="cm:summary">
                    <title>Summary</title>
                    <type>d:text</type>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:countable">
            <title>Countable</title>
            <properties>
                <property name="cm:hits">
                    <type>d:int</type>
                </property>
                <property name="cm:counter">
                    <type>d:int</type>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:copiedfrom">
            <title>Copied From</title>
            <properties>
                <property name="cm:source">
                    <type>d:noderef</type>
                    <protected>true</protected>
                    <mandatory>true</mandatory>
                    <multiple>false</multiple>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>true</tokenised>
                    </index>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:workingcopy">
            <title>Working Copy</title>
            <!-- Explicitly turn off archiving for all nodes with this aspect -->
            <archive>false</archive>
            <properties>
                <property name="cm:workingCopyOwner">
                    <type>d:text</type>
                    <protected>true</protected>
                    <mandatory>true</mandatory>
                </property>
                <property name="cm:workingCopyMode">
                    <type>d:text</type>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:versionable">
            <title>Versionable</title>
            <properties>
                <property name="cm:versionLabel">
                    <title>Version Label</title>
                    <type>d:text</type>
                    <protected>true</protected>
                </property>
                <property name="cm:versionType">
                    <title>Version Type</title>
                    <type>d:text</type>
                    <protected>true</protected>
                </property>
                <property name="cm:initialVersion">
                    <title>Initial Version</title>
                    <type>d:boolean</type>
                    <default>true</default>
                </property>
                <property name="cm:autoVersion">
                    <title>Auto Version</title>
                    <type>d:boolean</type>
                    <default>true</default>
                </property>
                <property name="cm:autoVersionOnUpdateProps">
                    <title>Auto Version - on update properties only</title>
                    <type>d:boolean</type>
                    <default>true</default>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:lockable">
            <title>Lockable</title>
            <properties>
                <property name="cm:lockOwner">
                    <type>d:text</type>
                    <protected>true</protected>
                </property>
                <property name="cm:lockType">
                    <type>d:text</type>
                    <protected>true</protected>
                </property>
                <property name="cm:expiryDate">
                    <type>d:date</type>
                    <protected>true</protected>
                    <mandatory>false</mandatory>
                </property>
                <property name="cm:lockIsDeep">
                    <type>d:boolean</type>
                    <protected>true</protected>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:subscribable">
            <associations>
                <association name="cm:subscribedBy">
                    <source>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </source>
                    <target>
                        <class>cm:person</class>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                </association>
            </associations>
        </aspect>

        <aspect name="cm:classifiable">
            <title>Classifiable</title>
        </aspect>

        <aspect name="cm:generalclassifiable">
            <title>General Classifiable</title>
            <parent>cm:classifiable</parent>
            <properties>
                <property name="cm:categories">
                    <title>Categories</title>
                    <type>d:category</type>
                    <mandatory>false</mandatory>
                    <multiple>true</multiple>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>false</tokenised>
                    </index>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:taggable">
            <title>Taggable</title>
            <parent>cm:classifiable</parent>
            <properties>
                <property name="cm:taggable">
                    <title>Tags</title>
                    <type>d:category</type>
                    <mandatory>false</mandatory>
                    <multiple>true</multiple>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>false</tokenised>
                    </index>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:tagscope">
            <title>Tag Scope</title>
            <properties>
                <property name="cm:tagScopeCache">
                    <title>Tags</title>
                    <type>d:content</type>
                    <protected>true</protected>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:rateable">
            <title>Rateable</title>
            <associations>
                <child-association name="cm:ratings">
                    <source>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </source>
                    <target>
                        <class>cm:rating</class>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                    <duplicate>false</duplicate>
                </child-association>
            </associations>
        </aspect>

        <aspect name="cm:attachable">
            <title>Attachable</title>
            <associations>
                <association name="cm:attachments">
                    <source>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </source>
                    <target>
                        <class>cm:cmobject</class>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                </association>
            </associations>
        </aspect>

        <aspect name="cm:emailed">
            <title>Emailed</title>
            <properties>
                <property name="cm:originator">
                    <title>Originator</title>
                    <type>d:text</type>
                </property>
                <property name="cm:addressee">
                    <title>Addressee</title>
                    <type>d:text</type>
                </property>
                <property name="cm:addressees">
                    <title>Addressees</title>
                    <type>d:text</type>
                    <multiple>true</multiple>
                </property>
                <property name="cm:subjectline">
                    <title>Subject</title>
                    <type>d:text</type>
                </property>
                <property name="cm:sentdate">
                    <title>Sent Date</title>
                    <type>d:datetime</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
            </properties>
        </aspect>

        <!-- An aspect to make a node reference another node. Needed to
             support cross repository references. There is a sys:reference type but
             that is awkard for AVM Nodes which are less flexible as to type. -->
        <aspect name="cm:referencesnode">
            <title>References Node</title>
            <properties>
                <property name="cm:noderef">
                    <title>Node Reference</title>
                    <type>d:noderef</type>
                    <mandatory>true</mandatory>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:mlDocument">
            <title>Multilingual Document</title>
            <mandatory-aspects>
                <aspect>sys:localized</aspect>
                <aspect>cm:versionable</aspect>
            </mandatory-aspects>
        </aspect>

        <aspect name="cm:mlEmptyTranslation">
            <title>Empty Translation</title>
            <mandatory-aspects>
                <aspect>cm:mlDocument</aspect>
            </mandatory-aspects>
        </aspect>

        <aspect name="cm:storeSelector">
            <title>ContentStore Selector</title>
            <properties>
                <property name="cm:storeName">
                    <title>Store Name</title>
                    <type>d:text</type>
                    <mandatory enforced="false">true</mandatory>
                    <constraints>
                        <constraint ref="cm:storeSelectorConstraint"/>
                    </constraints>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:preferences">
            <title>Preferences</title>
            <properties>
                <property name="cm:preferenceValues">
                    <type>d:content</type>
                </property>
            </properties>
            <associations>
                <child-association name="cm:preferenceImage">
                    <source>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </source>
                    <target>
                        <class>cm:content</class>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </target>
                </child-association>
            </associations>
        </aspect>

        <aspect name="cm:syndication">
            <title>Content syndication</title>
            <properties>
                <property name="cm:published">
                    <title>Published</title>
                    <type>d:datetime</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
                <property name="cm:updated">
                    <title>Updated</title>
                    <type>d:datetime</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>false</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:geographic">
            <title>Geographic</title>
            <properties>
                <property name="cm:latitude">
                    <title>Latitude</title>
                    <type>d:double</type>
                </property>
                <property name="cm:longitude">
                    <title>Longitude</title>
                    <type>d:double</type>
                </property>
            </properties>
        </aspect>

        <!--             -->
        <!--  RENDITIONS -->
        <!--             -->

        <!-- This aspect marks a node as a rendition. -->
        <aspect name="rn:rendition">
            <title>Rendition</title>
        </aspect>
        <!-- A hidden rendition is one which is located directly under its source node. -->
        <aspect name="rn:hiddenRendition">
            <title>Hidden Rendition</title>
            <parent>rn:rendition</parent>
        </aspect>
        <!-- A visible rendition is one which is located somewhere other than under its source node. -->
        <aspect name="rn:visibleRendition">
            <title>Visible Rendition</title>
            <parent>rn:rendition</parent>
        </aspect>

        <!-- This aspect is applied to nodes which have been "rendered" using the rendition service. -->
        <aspect name="rn:renditioned">
            <title>Renditioned</title>
            <associations>
                <!-- This association links the source content node to the rendition -->
                <child-association name="rn:rendition">
                    <source>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </source>
                    <target>
                        <class>cm:content</class>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                </child-association>
            </associations>
        </aspect>

        <!--       -->
        <!--  EXIF -->
        <!--       -->

        <aspect name="exif:exif">
            <title>EXIF</title>
            <properties>
                <property name="exif:dateTimeOriginal">
                    <title>Date and Time</title>
                    <type>d:datetime</type>
                </property>
                <property name="exif:pixelXDimension">
                    <title>Image Width</title>
                    <type>d:int</type>
                </property>
                <property name="exif:pixelYDimension">
                    <title>Image Height</title>
                    <type>d:int</type>
                </property>
                <property name="exif:exposureTime">
                    <title>Exposure Time</title>
                    <type>d:double</type>
                </property>
                <property name="exif:fNumber">
                    <title>F Number</title>
                    <type>d:double</type>
                </property>
                <property name="exif:flash">
                    <title>Flash Activated</title>
                    <type>d:boolean</type>
                </property>
                <property name="exif:focalLength">
                    <title>Focal Length</title>
                    <type>d:double</type>
                </property>
                <property name="exif:isoSpeedRatings">
                    <title>ISO Speed</title>
                    <type>d:text</type>
                </property>
                <property name="exif:manufacturer">
                    <title>Camera Manufacturer</title>
                    <type>d:text</type>
                </property>
                <property name="exif:model">
                    <title>Camera Model</title>
                    <type>d:text</type>
                </property>
                <property name="exif:software">
                    <title>Camera Software</title>
                    <type>d:text</type>
                </property>
                <property name="exif:orientation">
                    <title>Orientation</title>
                    <type>d:int</type>
                </property>
                <property name="exif:xResolution">
                    <title>Horizontal Resolution</title>
                    <type>d:double</type>
                </property>
                <property name="exif:yResolution">
                    <title>Vertical Resolution</title>
                    <type>d:double</type>
                </property>
                <property name="exif:resolutionUnit">
                    <title>Resolution Unit</title>
                    <type>d:text</type>
                </property>
            </properties>
        </aspect>

        <!--             -->
        <!--  DEPRECATED -->
        <!--             -->

        <aspect name="cm:localizable">
            <title>Localizable</title>
            <properties>
                <property name="cm:locale">
                    <title>Locale</title>
                    <type>d:category</type>
                </property>
            </properties>
        </aspect>

        <aspect name="cm:translatable">
            <title>Translatable</title>
            <parent>cm:localizable</parent>
            <associations>
                <association name="cm:translations">
                    <title>Translations</title>
                    <source>
                        <role>cm:translationOf</role>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </source>
                    <target>
                        <class>cm:content</class>
                        <role>cm:hasTranslation</role>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </target>
                </association>
            </associations>
        </aspect>

        <!-- Thumbnailed aspect relates a content node to it's thumbnails.
             It is retained here for backwards compatibility reasons -->
        <aspect name="cm:thumbnailed">
            <title>Thumbnailed</title>
            <parent>rn:renditioned</parent>
            <properties>
                <property name="cm:automaticUpdate">
                    <title>Automatic Update</title>
                    <type>d:boolean</type>
                    <mandatory>true</mandatory>
                    <default>true</default>
                </property>
            </properties>
        </aspect>

        <!--                      -->
        <!--  DEPRECATED (end of) -->
        <!--                      -->

    </aspects>

</model>
