0

屋外でコンテンツ モデルを構築しようとしていますが、次のコンテンツ モデル xml があります。

<model name="my:custommodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
    <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="http://www.mycompany.com/model/content/1.0" prefix="my" />
    </namespaces>
    <types>
        <type name="my:bound">
            <title>Bound</title>
            <parent>cm:content</parent>
            <properties>
                <property name="my:width">
                    <type>d:int</type>
                    <multiple>false</multiple>
                </property>
                <property name="my:height">
                    <type>d:int</type>
                    <multiple>false</multiple>
                </property>
            </properties>
        </type>

        <type name="my:rectangle">
            <title>Rectangle</title>
            <parent>cm:content</parent>
            <properties>
                <property name="my:x">
                    <type>d:int</type>
                    <multiple>false</multiple>
                </property>
                <property name="my:y">
                    <type>d:int</type>
                    <multiple>false</multiple>
                <property name="my:width">
                    <type>d:int</type>
                    <multiple>false</multiple>
                </property>
                <property name="my:height">
                    <type>d:int</type>
                    <multiple>false</multiple>
                </property>
            </properties>
        </type>
    </types>
</model>

これを含むプロジェクトをビルドしようとすると、次のエラーが発生します。

org.alfresco.service.cmr.dictionary.DictionaryException$DuplicateDefinitionException: 06130000 Found duplicate property definition 'my:x' within class 'my:rectangle' and class 'my:bound'

プロパティは本質的にその型の子であるため、その型にスコープが設定されていると思います。しかし、このエラーはそうでないことを示しています。それはなぜなのか、この問題を回避する正しい方法は何ですか?

タイプの外部でプロパティを定義し、各タイプにそれらを参照させる方法を探してみましたが、この例は見つかりません。x プロパティを含むアスペクトと y プロパティを含むアスペクトを作成し、それぞれのタイプに関連付けることも検討しましたが、それは適切ではありません。

4

2 に答える 2

4

プロパティを複数の型に使用するには、2 つの方法があります。

継承:

これらの共通プロパティを使用してベース タイプを作成し、それを他のすべてのタイプの親タイプとして設定します。そうすれば、すべての子型は親型からプロパティを継承します。

側面:

これらの共通のプロパティでアスペクトを作成し、そのアスペクトをすべてのタイプに追加します。アスペクトはそのためのものであるため、このアプローチに従うことに問題はありません。

于 2016-07-13T14:59:48.397 に答える
1

アスペクトを使用する場合、「必須アスペクト」機能を使用して、特定の特殊なアスペクトに「共通アスペクト」を適用できます。

必須は「必須」の別の言葉であるため、後でそれらを削除できないことを考慮してください。これは、簡単な方法でアスペクトを適用するためのメカニズムではありません。

http://docs.alfresco.com/5.0/tasks/dev-extensions-content-models-tutorials-add-mandatory-aspect.html

于 2016-07-15T06:04:42.487 に答える