ما هو النوع والجانب في الهواء الطلق؟
-
28-09-2019 - |
سؤال
بدأت الآن في العمل مع Alfresco. لكنني لست واضحًا بشأن ما هو النوع وما هو الجانب؟ يرجى إعطاء بالتفصيل مع المثال.
المحلول
كل عقدة على الإنشاء لها نوع معين ، ونوع واحد فقط ، مثل "المستند" أو "المجلد". من ناحية أخرى ، يمكن أن تحتوي عقدة واحدة على العديد من الجوانب ، مثل "Taggable" او و "الإصدار".
يمكن أن يتغير نوع العقدة للعقدة بمرور الوقت ، ولكن لا يوجد سوى نوع واحد لعقدة واحدة ، فإن الجوانب تشبه مرفقات الخصائص ، يمكنك إضافتها على الإنشاء أو في وقت التشغيل.
يمكن أيضًا إضافة الجوانب إلى العديد من أنواع العقد ، لذلك إذا كنت تريد نموذجك الخاص بخاصية خاصة سيكون موجودًا في العديد من الأنواع ، فإن أفضل طريقة هي إنشاء جانب. ثم للحفاظ على الكود الخاص بك ، عليك فقط الحفاظ على الجانب.
بالطبع يمكنك إنشاء الأنواع والجوانب الخاصة بك في الهواء الطلق ، وهذا هو تخصيص نموذج المحتوى.
فيما يلي مثال على نموذج المحتوى المخصص:
أنا: الحالة جانب مخصص.
<?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: المبلغ" أو "MyType: Date" أو ما شابه في النماذج المخصصة. لذا فإن كل مستند في Alfresco هو من نوع معين (نوع "مستخدم" ، ونوع "مجلد" ، ونوع "محتوى" للنموذج الافتراضي).
والجانب - من الأفضل وصفه على أنه مجموعة إضافية من الخصائص.
لذلك ، قد يكون لديك نوع: "فاتورة". لديها خصائص مثل المبلغ وتاريخ الاستحقاق والدفاع.
ولكن يمكنك أيضًا الحصول على جانب "البائع" - مع بيانات إضافية ، مثل اسم البائع ورقم حساب البائع.
لذلك ، يمكنك إضافة جوانب إلى فواتيرك - إضافة خصائص إضافية مثل اسم البائع إلى الفواتير. ولكن يمكنك أيضًا إضافة هذا الجانب إلى "مجلد" أو مساحة في الهواء الطلق - على سبيل المثال ، يمكنك الحصول على مساحة لبائع أو عقد أو بعض المستندات الأخرى - وكل من هذه الأنواع يمكنك إضافة الجانب "بائع" ".