Чтобы привязать получатель события к определенному типу контента, вы используете элемент XmlDocuments файла элементов типа контента. Вот довольно эксклюзивный отрывок из моей будущей книги «Создание пользовательского интерфейса SharePoint» :
И, чтобы уточнить, поскольку я не вижу XML, который вы пытались опубликовать, вы бы добавили его в объявление типа содержимого в файле elements.xml.
(...)
Присоединение приемников событий к типам контента с использованием функций
Важная вещь при подключении получателей событий, как мы только что видели, - это заметить, что нет способа привязать получателя к типу контента, только к шаблону списка.
Нет, способов добавить получателей в отдельные списки тоже нет. Однако, как мы видели в разделе «Включение пользовательских списков электронной почты» в главе «Лесные списки», мы можем программно добавлять получатели событий, используя код. Мы можем использовать ту же технику для добавления получателей событий к типу контента, но должен быть способ сделать это, используя CAML в функции. Ведь именно здесь мы определяем тип контента, как мы увидим позже в этой главе.
Ответ? Приемники событий в типах контента определяются в другом разделе файла элементов. Снова мы смотрим на XmlDocuments и третий встроенный приемник типа XmlDocument. XmlDocument Receiver находится в пространстве имен http://schemas.microsoft.com/sharepoint/events. Если вы хотите увидеть Receiver XmlDocument в вашей установке SharePoint по умолчанию, найдите в файле ctypeswss.xml тип содержимого 0x010107, DocumentWorkflowItem:
<XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/events">
<spe:Receivers xmlns:spe="http://schemas.microsoft.com/sharepoint/events">
<Receiver>
<Name>Workflow Library Item Added</Name>
<Type>ItemAdded</Type>
<SequenceNumber>1</SequenceNumber>
<Assembly>Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral,~CCC
PublicKeyToken=71e9bce111e9429c</Assembly>
<Class>Microsoft.SharePoint.Workflow.SPWorkflowLibraryEventReceiver</Class>
<Data />
<Filter />
</Receiver>
… (snipped for space saving purposes
</Receivers>
</XmlDocument>
Примечание. В примере используется префикс spe: для элемента Receivers. Это не является необходимым с технической точки зрения, но может внести ясность в ваш код.
Как видите, элемент Receiver повторяет структуру получателя события обычного элемента, как определено в элементах. За исключением, конечно, что получатель определен в разделе XmlDocument типа контента.