Что такое тип и аспект на свежем воздухе? - PullRequest
6 голосов
/ 02 ноября 2010

Сейчас я начинаю работать на свежем воздухе.Но не ясно, что такое тип и каков аспект?пожалуйста, дайте подробно с примером.

Ответы [ 2 ]

9 голосов
/ 05 ноября 2010

Каждый узел при создании имеет заданный тип и только один тип, например «документ» или «папка».С другой стороны, один узел может иметь много аспектов, таких как «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>
6 голосов
/ 16 ноября 2010

Я постараюсь создать более короткий ответ, хотя длинный также полезен.

Как вы знаете, модель определяет «типы» данных, которые вы будете хранить в хранилище.Таким образом, тип - это форма объекта, который вы будете хранить - вместе с его свойствами, такими как имя, заголовок, описание в модели по умолчанию или «mytype: amount», «mytype: date» или аналогичными в пользовательских моделях.Таким образом, каждый документ на открытом воздухе имеет определенный тип (тип «пользователь», тип «папка», тип «контент» для модели по умолчанию).

А аспект - это то, что лучше всего описать как дополнительный наборсвойств.

Итак, у вас может быть тип: "счет-фактура".У него есть такие свойства, как сумма, срок оплаты и получатель.

Но у вас также может быть аспект «поставщик» - с дополнительными данными, такими как имя поставщика и номер счета поставщика.

Итак, выМожно добавлять аспекты в ваши счета-фактуры - добавлять дополнительные свойства, такие как имя поставщика в счета-фактуры.Но вы также можете добавить этот аспект в «папку» или пространство в alfresco - например, у вас может быть место для поставщика, или контракт или какой-либо другой документ - и к каждому из этих типов вы можете добавить аспект «поставщик»».

...