Files
alfresco-community-repo/config/alfresco/model/contentModel.xml
Kevin Roast fa49ba7916 Webscript URLs now supported in the Custom View panel for the Browse, Space Details and Document Details screens.
Added new aspect definition to support Webscript custom views.
Web context path (i.e. /alfresco) is now automatically prefixed onto webscript urls specified in JSF runtimes.
Modified the existing webscript dashlet JSPs to remove the hardcoded /alfresco path.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5973 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2007-06-15 11:07:13 +00:00

748 lines
25 KiB
XML

<model name="cm:contentmodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
<description>Alfresco Content Domain Model</description>
<author>Alfresco</author>
<published>2005-09-29</published>
<version>1.0</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"/>
</namespaces>
<constraints>
<constraint name="cm:filename" type="REGEX">
<parameter name="expression"><value><![CDATA[(.*[\"\*\\\>\<\?\/\:\|\xA3\xAC\%\&\+\;]+.*)|(.*[\.]?.*[\.]+$)|(.*[ ]+$)]]></value></parameter>
<parameter name="requiresMatch"><value>false</value></parameter>
</constraint>
<constraint name="cm:userNameConstraint" type="org.alfresco.repo.dictionary.constraint.UserNameConstraint" />
</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>
<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>true</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>
</child-association>
</associations>
</type>
<type name="cm:content">
<title>Content</title>
<parent>cm:cmobject</parent>
<archive>true</archive>
<properties>
<property name="cm:content">
<type>d:content</type>
<mandatory>false</mandatory>
<!--- Index content in the background -->
<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:person">
<title>Person</title>
<parent>sys:base</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>
</properties>
</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>
</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>
</types>
<aspects>
<aspect name="cm:titled">
<title>Titled</title>
<properties>
<property name="cm:title">
<title>Title</title>
<type>d:mltext</type>
</property>
<property name="cm:description">
<title>Description</title>
<type>d:mltext</type>
</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>
</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>
</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>
</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:complianceable">
<title>Complianceable</title>
<parent>cm:auditable</parent>
<!-- TODO: Support mandatory-aspects on an aspect in the meta-model
<mandatory-aspects>
<aspect>cm:auditable</aspect>
</mandatory-aspects>
-->
<properties>
<property name="cm:removeAfter">
<title>Remove After</title>
<type>d:datetime</type>
</property>
</properties>
</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>
</property>
<property name="cm:to">
<title>Effective To</title>
<type>d:datetime</type>
</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>
<properties>
<property name="cm:workingCopyOwner">
<type>d:text</type>
<protected>true</protected>
<mandatory>true</mandatory>
</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: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>
</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>true</tokenised>
</index>
</property>
</properties>
</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>
</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>
</aspects>
</model>