2010-11-02 62 views

回答

9

创建的每个节点都有一个给定的类型,只有一种类型,如'文档'或'文件夹'。另一方面,一个节点可以有许多方面,如'可标记'或/和'可版本化'。

节点的节点类型可以随时间而改变,但是只有一种类型的一个节点,各方面都像财产的附件,您可以创建或运行时添加。

方面也可以添加到许多类型的节点,因此,如果你希望你的模型有会存在多种类型,最好的方法是创建一个方面的特殊属性。然后为了维护你的代码,你只需要维护这个方面。

当然,您可以在Alfresco中创建自己的类型和方面,即定制内容模型。

这里是一个自定义内容模型的一个例子:

I:状态是一个自定义的方面。

<?xml version="1.0" encoding="UTF-8"?> 
    <model xmlns="http://www.alfresco.org/model/dictionary/1.0" name="i:multimediaModel"> 
     <description>Multimedia Model</description> 
     <author>Pedro Costa</author> 
     <version>1.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"/> 
     </imports> 
     <namespaces> 
     <namespace uri="pt.i.model" prefix="i"/> 
     </namespaces> 
     <constraints> 
     <constraint name="i:status_constraint" type="LIST"> 
     <parameter name="allowedValues"> 
     <list> 
     <value>Draft</value> 
     <value>Pending</value> 
     <value>Current</value> 
     <value>Archived</value> 
     </list> 
     </parameter>  
     </constraint> 
     </constraints> 
     <types> 
    <type name="i:multimedia"> 
     <title>Multimedia Metadata Model</title> 
     <parent>cm:content</parent> 
     <archive>true</archive> 
     <properties>   
       <property name="i:insertDate"> 
        <title>Multimedia insert date</title> 
        <description> 
        Multimedia insert date can be diferent of the 
        insert date in alfresco, this apllies to multimedia 
        created before database migration to alfresco 
        </description> 
        <type>d:datetime</type> 
        <mandatory>false</mandatory> 
       </property> 
       <property name="i:multimediaFormat"> 
     <title>Multimedia Format</title> 
       <description>Multimedia Format, file type</description> 
       <type>d:text</type> 
       <mandatory>false</mandatory> 
      </property> 
      <property name="i:contentLength"> 
       <title>Content Length</title> 
       <description>The file size in bytes</description> 
       <type>d:long</type> 
       <mandatory>false</mandatory> 
      </property> 
      <property name="i:copyright"> 
       <title>Copyright</title> 
       <description>Copyright</description> 
       <type>d:text</type> 
       <mandatory>false</mandatory> 
      </property> 
     </properties> 
     <mandatory-aspects> 
     <aspect>cm:taggable</aspect> 
     <aspect>cm:auditable</aspect> 
     <aspect>i:status</aspect>  
     </mandatory-aspects> 
    </type>  
     </types> 
     <aspects> 
     <aspect name="i:status"> 
     <title>Multimedia Status</title> 
     <properties> 
     <property name="i:status"> 
      <title>Status</title> 
      <type>d:text</type> 
      <default>Draft</default> 
      <constraints> 
      <constraint ref="i:status_constraint" /> 
      </constraints>  
     </property>  
     </properties> 
     </aspect> 
     </aspects> 
    </model> 
6

我会尽力创造一个更短的答案,虽然长单也很有用。

如您所知,模型定义了您将存储在存储库中的“数据类型”。 因此,类型是您要存储的对象的一种形式 - 与其名称,标题,默认模型中的描述或“mytype:amount”,“mytype:date”等属性一起存储在自定义模型中。 因此,在户外的每个文档都具有某种类型(默认模型为“用户”类型,“文件夹”类型,“内容”类型)。

和方面 - 它最好被描述为一组额外的属性。

所以,你可能有一个类型:“发票”。它具有诸如金额,到期日和收款人之类的属性。

但是,您还可以拥有“供应商”方面的其他数据,例如供应商名称和供应商帐号。

因此,您可以添加方面到您的发票 - 添加额外的属性,如供应商名称的发票。但是,您也可以将此方面添加到“文件夹”或在户外的空间中 - 例如,您可以为供应商,合同或其他文档提供空间 - 对于每种类型,您都可以添加方面的“供应商”。

+0

更多细节在这里:http://stackoverflow.com/a/15572316/162070 – Zlatko 2013-03-25 13:05:08