解決策は、サイトコレクションの基本ドキュメントコンテンツタイプにあるようです。document-id機能がアクティブになると、イベントハンドラーがxmldocumentsとしてコンテンツタイプ定義に追加されます。通常のドキュメントライブラリが作成されると、ライブラリのコンテンツタイプはこのコンテンツタイプを継承するため、イベントレシーバーのコピーを取得します。カスタムコンテンツタイプを持つ私のカスタムドキュメントライブラリは、サイトコレクションドキュメントコンテンツタイプからではなく、ベースドキュメントコンテンツタイプ(0x0101
)から継承し、イベントレシーバーのコピーを取得しませんでした。xmldocumentsを私の基本コンテンツタイプにコピーすることでうまくいくようです。
<XmlDocuments>
<XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/events">
<spe:Receivers xmlns:spe="http://schemas.microsoft.com/sharepoint/events">
<Receiver>
<Name>Document ID Generator</Name>
<Synchronization>Synchronous</Synchronization>
<Type>10001</Type>
<SequenceNumber>1000</SequenceNumber>
<Assembly>Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
<Class>Microsoft.Office.DocumentManagement.Internal.DocIdHandler</Class>
<Data>
</Data>
<Filter>
</Filter>
</Receiver>
<Receiver>
<Name>Document ID Generator</Name>
<Synchronization>Synchronous</Synchronization>
<Type>10002</Type>
<SequenceNumber>1001</SequenceNumber>
<Assembly>Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
<Class>Microsoft.Office.DocumentManagement.Internal.DocIdHandler</Class>
<Data>
</Data>
<Filter>
</Filter>
</Receiver>
<Receiver>
<Name>Document ID Generator</Name>
<Synchronization>Synchronous</Synchronization>
<Type>10004</Type>
<SequenceNumber>1002</SequenceNumber>
<Assembly>Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
<Class>Microsoft.Office.DocumentManagement.Internal.DocIdHandler</Class>
<Data>
</Data>
<Filter>
</Filter>
</Receiver>
<Receiver>
<Name>Document ID Generator</Name>
<Synchronization>Synchronous</Synchronization>
<Type>10006</Type>
<SequenceNumber>1003</SequenceNumber>
<Assembly>Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
<Class>Microsoft.Office.DocumentManagement.Internal.DocIdHandler</Class>
<Data>
</Data>
<Filter>
</Filter>
</Receiver>
</spe:Receivers>
</XmlDocument>
</XmlDocuments>