2010-11-02 48 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