2010-11-02 9 views

Respuesta

9

Cada nodo en la creación tiene un tipo determinado, y solo un tipo, como 'documento' o 'carpeta'. Por otro lado, un nodo puede tener muchos aspectos, como 'taggable' y/o 'versionable'.

El tipo de nodo de un nodo puede cambiar con el tiempo, pero sólo hay un tipo para un nodo, los aspectos son como archivos adjuntos de propiedad, que puedes añadir en la creación o en tiempo de ejecución.

aspectos pueden ser también añadido a muchos tipos de nodos, por lo que si usted quiere que su modelo tiene una propiedad especial que existe en muchos tipos, la mejor manera es crear un aspecto. Luego, para mantener tu código, solo tienes que mantener el aspecto.

Por supuesto, puede crear sus propios tipos y aspectos en Alfresco, es decir, personalizar el modelo de contenido.

Aquí se muestra un ejemplo de un modelo de contenido personalizado:

i: el estado es un aspecto personalizado.

<?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

Voy a tratar de crear una respuesta más corto, a pesar de la larga también es útil.

Como sabe, el modelo define los "tipos" de datos que almacenará en el repositorio. Por lo tanto, un tipo es una forma de objeto que va a almacenar, junto con sus propiedades como nombre, título, descripción en el modelo predeterminado o "mytype: amount", "mytype: date" o similar en modelos personalizados. De modo que cada documento en alfresco es de cierto tipo (tipo "usuario", tipo "carpeta", tipo "contenido" para el modelo predeterminado).

Y aspecto: es algo que se describe mejor como un conjunto adicional de propiedades.

Por lo tanto, es posible que tenga un tipo: "factura". Tiene propiedades como cantidad, fecha de vencimiento y beneficiario.

Pero también puede tener un aspecto, "proveedor" - con datos adicionales, como el nombre del proveedor y el número de cuenta del proveedor.

Por lo tanto, puede agregar aspectos a sus facturas: agregue propiedades adicionales, como el nombre del proveedor, a las facturas. Pero también puede agregar este aspecto a una "carpeta" o espacio al aire libre, por ejemplo, puede tener un espacio para un proveedor, o un contrato u otro documento, y a cada uno de esos tipos puede agregar el aspecto "proveedor". ".

+0

Más detalles aquí: http://stackoverflow.com/a/15572316/162070 – Zlatko

Cuestiones relacionadas