1

Plone Dexterity は、インターフェイス (定義に zope.schema を使用) または XML ファイルを介してコンテンツ タイプ スキーマの定義をサポートします。好ましい/推奨される方法は何ですか?

さらに: スキーマ (models/mytype.xml) を定義するために使用される XML 方言のドキュメントはありますか?

このプレゼンテーションは近いように見えますが、完全ではありません。

4

3 に答える 3

2

個人的には、zope.schema ルートの方がずっと好きです。XML定義はもちろん静的ですが、本当にしたい場合は、インターフェイス属性をPythonで動的に変更できます。

また、XML で定義されたスキーマに対してアダプターとビューを登録するには、いずれにしても Python コードにプルする必要があることに注意してください。

from plone.dexterity import api

class IMyXMLDefinedType(api.Schema):
    api.model('my_xml_defined_type.xml')

XML ダイアレクトはplone.supermodelpackageの一部です。ソース コード以外のドキュメントを見つけることができませんでした。

于 2012-08-08T09:47:04.813 に答える
0

厳密で迅速な答えはないと言って、混乱に貢献するつもりです。

より単純なコンテンツ タイプの場合、またはより複雑なコンテンツ タイプの開発の初期段階では、スーパーモデルの XML を重視することがよくあります。これは、この XML が巧妙な TTW エディターと非常に密接に連携するためです。これにより、クライアントがコンテンツ タイプから何を求めているかについて、非常に迅速なフィードバックを得ることができます。

スーパーモデルを介して FTI でフィールドを定義したまま、一部の機能のファイル システム開発に移行することもあります。

ただし、より複雑なコンテンツ タイプでは、スーパーモデルだけではできないことをほぼ確実に達成できます。その時点で、私は通常、スキーマに変換します — 通常、これは非常に簡単に行うことができます。

理想的には、多くの器用さの開発を行っている場合は、前後に簡単にシフトできるはずです。これらは、同じオブジェクトと属性を表す別の方法にすぎません。

于 2012-08-10T23:48:32.590 に答える
0

私はxmlモデルよりもインターフェースを好みます。その理由の 1 つは、私が XML よりも Python を好むからです。その理由の 1 つは、XML ではできないことがあるからです。たとえば、collective.dexteritytextindexer を使用してフィールドを検索可能として登録したい場合、(現在) Plone インターフェースでこれを設定することはできないため、Python コードとインターフェースを使用する必要があります。しかし、Martijn は彼の回答で、インターフェイスで api.model を使用して xml ファイルを参照できることを示しています。

于 2012-08-10T20:00:12.987 に答える