Alfresco中的类型和方面是什么?
-
28-09-2019 - |
题
目前,AM开始与Alfresco合作。但是不清楚什么是类型和什么方面?请详细举例说明。
解决方案
创建上的每个节点都有给定类型,只有一种类型,例如“文档”或“文件夹”。另一方面,一个节点可以具有许多方面,例如“标记” 或/和 “可版本”。
节点的节点类型可以随时间变化,但是一个节点只有一种类型,这些方面就像属性附件一样,您可以在创建时间或运行时添加它们。
方面也可以添加到许多类型的节点中,因此,如果您希望模型A具有多种类型的特殊属性,那么最好的方法是创建一个方面。然后,要维护代码,您只需要维护方面即可。
当然,您可以在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>
其他提示
我会尝试创建一个较短的答案,尽管长期也很有用。
如您所知,模型定义了您将存储在存储库中的数据的“类型”。因此,一种类型是您要存储的对象的一种形式 - 以及其属性,标题,默认模型中的描述或“ mytype:nose”,“ mytype:date”或类似的自定义模型中。因此,Alfresco中的每个文档都是某种类型(“用户”类型,“文件夹”类型,默认模型的“内容”类型)。
和方面 - 最好将其描述为一组附加属性。
因此,您可能有一种类型:“发票”。它具有诸如金额,到期日和收款人之类的财产。
但是您也可以拥有一个方面的“供应商” - 具有其他数据,例如供应商名称和供应商帐号。
因此,您可以在发票中添加方面 - 在发票中添加其他属性(例如供应商名称)。但是,您还可以将此方面添加到Alfresco中的“文件夹”或空间 - 例如,您可以为供应商或合同或其他文档提供空间 - 以及您可以添加这些方面”。
不隶属于 StackOverflow