Каждый пакет Service Manager состоит из похожих элементов
С самого верха находится <Identity> , описание Пакета Управления и его версия
<Identity>
<ID>ManagementPack.FO_pvp</ID>
<Version>1.0.0.0</Version>
</Identity>
<Name>ManagementPack.FO_pvp</Name>
Чуть ниже <References> что можно перевезти как ссылки или отношения, связь с другими элементами Service Manager
<References>
<Reference Alias=»SMConsole»>
<ID>Microsoft.EnterpriseManagement.ServiceManager.UI.Console</ID>
<Version>7.5.1561.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
Дальше идет описание класса <ClassTypes>и его свойств <Property>
<TypeDefinitions>
<EntityTypes>
<ClassTypes>
<ClassType ID=»Class_FO_pvp» Accessibility=»Public» Abstract=»false» Base=»CoreIncident!System.WorkItem.Incident» Hosted=»false» Singleton=»false» Extension=»false»>
<Property ID=»Property_40″ Type=»string» AutoIncrement=»false» Key=»false» CaseSensitive=»false» MaxLength=»256″ MinLength=»0″ Required=»false» Scale=»0″ />
…
Дальше идет описание Списков (Тип данных Список) они хранятся под тегом <EnumerationTypes>
<EnumerationTypes>
<EnumerationValue ID=»EnumId_1″ Accessibility=»Public» />
Едем дальше, Связь Формы с другими элементами системы или TypeProjection
(форма похожа на многослойный пирог и здесь хранятся ссылки на все ее слои)
<TypeProjection ID=»Class_FO_pvp.ProjectionType» Accessibility=»Public» Type=»Class_FO_pvp»>
<Component Path=»$Target/Path[Relationship=’CoreIncident!System.WorkItem.IncidentPrimaryOwner’]$» Alias=»PrimaryOwner» />
Здесь начинается описание самой Формы <Forms>
Обратите внимание что форма ссылается на конкретный ProjectionType (Target=»Class_FO_pvp.ProjectionType)
<Presentation>
<Forms>
<Form ID=»Form_FO_pvp» Accessibility=»Public» Target=»Class_FO_pvp.ProjectionType» Assembly=»Microsoft.EnterpriseManagement.ServiceManager.Incident.Forms» TypeName=»Microsoft.EnterpriseManagement.ServiceManager.Incident.Forms.IncidentFormControl»>
продолжение следует…