露天的类型和方面是什么?

时间:2010-11-02 11:09:32

标签: alfresco content-management-system

现在我开始与露天合作。但我不清楚什么是类型和什么方面?请详细举例说明。

2 个答案:

答案 0 :(得分:9)

创建时的每个节点都有一个给定的类型,只有一种类型,如'document'或'folder'。另一方面,一个节点可以有许多方面,例如'taggable'或/和'versionable'。

节点的节点类型可以随时间变化,但是一个节点只有一种类型,方面类似于属性附件,您可以在创建时或运行时添加它们。

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

当然,您可以在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>

答案 1 :(得分:6)

我会尝试创建一个较短的答案,虽然长的答案也很有用。

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

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

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

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

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