Plone 4.3.4 を使用して、ファイル システム製品を作成し、新しい Dexterity コンテンツ タイプ ("Article") と新しい Transform を作成しました。Article には、RichTextField とカスタム変換 ("xml_to_html") が含まれています。
xml_to_html 変換は、SAX ベースのパーサーとテンプレート システムを使用して、RichTextField の生の XML 入力を HTML 出力に変換するように設計されています。これは、Web を介して記事アイテムを作成または変更する場合に完全に機能します。
mime_types_registry は、Article を *.xml および mimetype text/xml にマップするように設定されています。
WebDav 経由で XML ファイルをアップロードすると、Plone は RichTextField がプライマリとして指定された Article を正しく作成します。ただし、xml_to_html 変換は実行されず、変換された出力が作成されません。RichTextValue.raw にはアップロードされたファイル コンテンツが含まれていますが、RichTextValue.output は生成されません。
さらに厄介なことに、WebDav クライアントは Content-Type: text/xml を設定していますが、RichTextValue.mimeType は常に text/plain として送信されます。
タイプ固有のイベント フックが機能していることがわかります。zope.lifecycleevent.interfaces.IObjectAddedEvent に基づいて任意のコードを実行できますが、オブジェクト作成プロセスが xml_to_html 変換にヒットすることはありません。
質問: a) portal_transforms は、WebDav を介して作成されたコンテンツ アイテムに適用されますか? そうでないなら、それが私の答えです。
b) プライマリ フィールドの MIME タイプが webdav クライアントによって設定された値を尊重しないのはなぜですか?
ありがとう、ドン