Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ресурсы конфигурации отображения элементов управления ресурсами (RCDC) — это пользовательские ресурсы, которые можно использовать для управления тем, как другие ресурсы в хранилище данных Microsoft Identity Manager 2016 с пакетом обновления 1 (SP1) (MIM) отображаются в пользовательском интерфейсе для конечного пользователя. Каждый ресурс RCDC содержит XML-файл конфигурации, который можно изменить для добавления, изменения или удаления текста пользовательского интерфейса и элементов управления пользовательского интерфейса. Хотя MIM 2016 с пакетом обновления 1 (SP1) предоставляет несколько ресурсов RCDC по умолчанию, можно также создавать настраиваемые ресурсы RCDC для пользовательских ресурсов. Дополнительные сведения об использовании пользовательского интерфейса RCDC на портале FIM см. в статье Общие сведения о настройке и настройке портала FIM в документации по FIM.
Известные проблемы
Значение по умолчанию во многих элементах управления RCDC не поддерживается.
В этом выпуске установка значений по умолчанию в элементах управления ресурсами не поддерживается, кроме элемента управления кнопкой параметра. Эту проблему можно обойти для раскрывающегося списка, указав значение по умолчанию, которое не связано с каким-либо значением, чтобы принудить пользователя изменить выбор. Чтобы обойти эту проблему с другими элементами управления, необходимо использовать рабочий процесс авторизации для предоставления значения по умолчанию во время отправки запроса.
Базовая структура
XML-данные для ресурса RCDC состоят из одного элемента ObjectControlConfiguration XML.
Примечание.
Полные схемы XSD см. в приложении A: схема XSD по умолчанию.
Ниже приведена схема XSD для элемента ObjectControlConfiguration:
<xsd:element name="ObjectControlConfiguration"\>
<xsd:complexType\>
<xsd:sequence\>
<xsd:element ref="my:ObjectDataSource" minOccurs="0" maxOccurs="32"/>
<xsd:element ref="my:XmlDataSource" minOccurs="0" maxOccurs="32"/>
<xsd:element ref="my:Panel"/>
<xsd:element ref="my:Events" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="my:TypeName"/>
<xsd:anyAttribute processContents="lax" namespace="http://www.w3.org/XML/1998/namespace"/>
</xsd:complexType>
</xsd:element>
Элемент objectControlConfiguration содержит следующие элементы:
ObjectDataSource: этот элемент указывает TypeName класса источника данных, который использует элемент управления ресурсами (RC). Описание и определение схемы см. в следующем разделе источников данных в этом документе. Элемент ObjectControlConfiguration может содержать до 32 узлов элемента ObjectDataSource.
XmlDataSource: это простой источник данных, который чаще всего используется для указания структуры сводной страницы. Описание и определение схемы см. в следующем разделе источников данных в этом документе. ЭлементObjectControlConfiguration: элемент может содержать до 32 узлов элемента XmlDataSource.
панели: администратор может настроить макет страницы RCDC, изменив элементы внутри элементов Панели. Дополнительные сведения см. в разделе "Панель" далее в этом документе. Элемент objectControlConfiguration должен иметь только один элемент Panel.
события: администраторы не могут предоставлять настраиваемый код, эта функция ограничена. Это событие, которое может выдавать панель или элемент управления на основе изменения состояния. Дополнительные сведения см. в разделе "События" далее в этом документе. Элемент objectControlConfiguration может содержать необязательно один элемент Event. Как правило, использование пользовательских событий не поддерживается, если только не разработано специально в более поздних улучшениях.
Источники данных
Microsoft Identity Manager использует источники данных в качестве способа привязки данных к компонентам пользовательского интерфейса. Это помогает упростить разделение данных из слоя презентации. Существует два типа источников данных в данных конфигурации ресурсов RCDC: ObjectDataSource и XmlDataSource.
ObjectDataSources укажите класс Microsoft .NET, предоставляющий данные в RC. Существует фиксированный набор доступных типов ObjectDataSources, при условии, что администратор может использовать при создании RCDC.
XMLDataSources предоставляют простой способ структурирования данных на основе XML и их можно использовать администраторами для предоставления настраиваемых данных. XML-данные должны быть указаны непосредственно в RCDC, если вы не используете встроенную предопределенную структуру XML. Встроенная структура XML используется для создания сводных страниц в RC.
В RCDC эти источники данных можно привязать к атрибутам элементов управления пользовательского интерфейса, указанных в RCDC для создания пользовательского интерфейса.
Элементы ObjectDataSource
Microsoft Identity Manager предоставляет общие типы источников данных в следующей таблице, доступные для всех типов ресурсов (за исключением указанных).
| ТипИмя | Описание | Двусторонняя привязка | Синтаксис привязки |
|---|---|---|---|
| PrimaryResourceObjectDataSource | Это представляет ресурс FIM 2010, который создается, редактируется или просматривается. Путь в строке привязки — это имя атрибута. Тип ресурса указывается атрибутом TargetObjectType RCDC, а не в RCDC. Атрибут ConfigurationData. | Да |
[AttributeName] значение атрибута объекта, заданного его именем. |
| PrimaryResourceDeltaDataSource | Этот источник данных создает разностный XML-код, который сравнивает исходное состояние и текущее состояние ресурса FIM 2010. Созданный разностный XML используется сводным элементом управления RC для отрисовки пользовательского интерфейса для запроса, который пользователь отправляет. | Нет |
DeltaXml Это используется с элементом управления сводкой для отображения разностного значения. |
| PrimaryResourceRightsDataSource | Этот источник данных предоставляет встроенные права для каждого атрибута ресурса FIM 2010. Это позволяет кандидату определить заранее отправку, какие разрешения у пользователя есть в этом атрибуте, а затем отобразить пользовательский интерфейс для этого атрибута соответствующим образом. | Нет | [AttributeName] |
| SchemaDataSource | Этот источник данных можно использовать для доступа к сведениям, связанным со схемой, таким как отображаемое имя, описание, независимо от того, является ли атрибут обязательным, а также сведения о типе ресурса. | Нет |
[AttributeName].Required логическое значение, указывающее, должен ли атрибут иметь допустимое значение. [AttributeName].DisplayNameString значение, указывающее отображаемое имя привязки. [AttributeName].DescriptionString значение, указывающее описание привязки. [AttributeName].StringRegexString значение, указывающее строку regex привязки. [AttributeName].DisplayName [AttributeName].Description [AttributeName].IntegerValueMinimum [AttributeName].IntegerValueMaximum [AttributeName].LocalizedAllowedValues |
| DomainDataSource | Этот источник данных предоставляет перечисление доменов на основе ресурсов конфигурации домена. Этот источник данных можно использовать только в rcDCs, предназначенных для ресурсов группы и пользовательских ресурсов. | Да | Домен |
Ниже приведен пример фрагмента кода RCDC, который привязывает три источника данных к элементу управления UocTextBox для изменения атрибута Description группы:
<my:ObjectDataSource my:TypeName="PrimaryResourceObjectDataSource" my:Name="object" my:Parameters=""/>
<my:ObjectDataSource my:TypeName="SchemaDataSource" my:Name="schema"/>
<my:ObjectDataSource my:TypeName="PrimaryResourceRightsDataSource" my:Name="rights"/>
<my:Control my:Name="Description" my:TypeName="UocTextBox" my:Caption="{Binding Source=schema, Path=Description.DisplayName}" my:RightsLevel="{Binding Source=rights, Path=Description}">
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=DisplayName.Required}"/>
<my:Property my:Name="Rows" my:Value="3"/>
<my:Property my:Name="Columns" my:Value="60"/>
<my:Property my:Name="MaxLength" my:Value="450"/>
<my:Property my:Name="Text" my:Value="{Binding Source=object, Path=Description, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
Элемент XMLDataSource
Используя элемент XMLDataSource, можно указать пользовательские данные, которые RCDC может использовать для данного ресурса. В этом случае XML-данные должны быть указаны в RCDC. В качестве альтернативы этот источник данных можно использовать для ссылки на встроенную структуру XML-данных для отображения пользовательского интерфейса для страниц сводки. Вы управляете типом XMLDataSource, используемым при его определении в RCDC.
| ТипИмя | Описание | Двусторонняя привязка | Синтаксис привязки |
|---|---|---|---|
| XMLDataSource | Источник данных представляет XML-данные. Данные могут быть в форматах XSL или embedded XSL:
|
Нет |
Xpath[;namespaces], где Xpath является допустимым XML-xpath для выбора обязательной заметки, чаще всего "/" (root).
namespaces является необязательным списком строк префикса=URI. Строка разделена точкой с запятой, так как требуется для работы Xpath с пространством имен XML. |
| ReferenceDeltaDataSource | Источник данных представляет разностные значения многозначных ссылочных атрибутов. Он используется только в RCDC для группы и набора. Хотя источник данных не ограничен группами или наборами, для отправки таких разностных изменений требуется изменение кода в узле RCDC. В настоящее время группа и установка являются единственными узлами, которые распознают этот источник данных. |
Да |
[AttributeName].Add, где [AttributeName] представляет ссылочный атрибут, а возвращаемые данные — разностные дополнения.
[AttributeName].Remove, где [AttributeName] представляет ссылочный атрибут, а возвращенные данные — это разностные удаления. DeltaXml |
| RequestDetailsDataSource | Источник данных представляет атрибут RequestParameter объектов Request. Параметр задает максимальное количество значений атрибутов, отображаемых для каждого многозначного атрибута. Он используется только в RCDC для запроса. <my:ObjectDataSource my:TypeName="RequestDetailsDataSource" my:Name="requestDetails" my:Parameters="1000" /> |
Нет | DeltaXml |
| RequestStatusDataSource | Источник данных представляет атрибут RequestStatusDetails объектов Request. Он используется только в RCDC для запроса. | Нет | DeltaXml |
Чтобы определить пользовательский источник данных XML, используйте следующий XML-код:
<my:XmlDataSource my:Name="MyCustomData" >
%Insert custom, properly formatted XML data here%
</my:XmlDataSource>
Чтобы использовать встроенный элемент управления сводки XSL, определите источник данных следующим образом:
<my:XmlDataSource my:Name="summaryTransformXsl" my:Parameters="Microsoft.IdentityManagement.WebUI.Controls.Resources.DefaultSummary.xsl" />
Если вы создаете RCDC для пользовательского типа ресурсов, этот метод можно использовать для автоматической отрисовки сводной страницы для этого настраиваемого ресурса.
Ниже приведен пример создания вкладки сводки в RCDC с помощью элемента PrimaryResourceDeltaDataSource с элементом XMLDataSource с помощью встроенного XSL:
<my:ObjectDataSource my:TypeName="PrimaryResourceDeltaDataSource" my:Name="delta" />
<my:XmlDataSource my:Name="summaryTransformXsl" my:Parameters="Microsoft.IdentityManagement.WebUI.Controls.Resources.DefaultSummary.xsl" />
<my:Grouping my:Name="summaryGroup" my:Caption="Summary” my:IsSummary="true">
<my:Control my:Name="summaryControl" my:TypeName="UocHtmlSummary" my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="ModificationsXml" my:Value="{Binding Source=delta, Path=DeltaXml}" />
<my:Property my:Name="TransformXsl" my:Value="{Binding Source=summaryTransformXsl, Path=/}" />
</my:Properties>
</my:Control>
</my:Grouping>
В качестве альтернативы пользователь может заменить элемент XmlDataSource, указанный ранее, следующим форматом, чтобы определить настраиваемый макет страницы сводки. В качестве ссылки в приложение B: сводка XSL по умолчанию FIM 2010 включена в приложение B. Сводка по умолчанию XSL, далее в этом документе.
<my:XmlDataSource my:Name="summaryTransformXsl">
Insert valid XSL code here
</my:XmlDataSource>
Схема источников данных
Следующая схема XSD создает два типа источников данных:
<xsd:element name="ObjectDataSource">
<xsd:complexType>
<xsd:sequence/>
<xsd:attribute ref="my:TypeName"/>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Parameters"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="XmlDataSource">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Parameters"/>
</xsd:complexType>
</xsd:element>
Элемент события
Элемент события определяет изменение состояния элемента Control. Расширяемость этой функции ограничена, так как вы не можете написать настраиваемую функцию (обработчик), чтобы определить поведение после активации события. Тот же элемент Event можно использовать в элементе Panel. Дополнительные сведения см. в разделе "Панель" далее в этом документе.
Ниже приведена схема XSD для элемента Event:
<xsd:element name="Events">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Event" minOccurs="1" maxOccurs="16"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Event">
xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Handler"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
события является пустым элементом и имеет следующие атрибуты:
имя: это уникальное имя события. Единственным поддерживаемым событием в ObjectControlConfiguration является событие Load. Это событие активируется при первой загрузке страницы.
Обработчик: это уникальное имя обработчика. При активации события обычно вызывается метод программы для обработки изменения состояния элемента управления. Следующие случаи не поддерживаются:
- Удаление существующего обработчика из существующего элемента управления.
- Создание нового обработчика.
- Присоединение обработчика к существующему или новому элементу управления.
Ниже приведен пример элемента Events:
<my:Events>
<my:Event my:Name="Load" my:Handler="OnLoad"/>
</my:Events>
Элемент Panel
Элемент панели является основным элементом в макете RCDC. Ниже приведена схема XSD для элемента Panel:
<xsd:element name="Panel">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Grouping" minOccurs="1" maxOccurs="16"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:DisplayAsWizard"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:AutoValidate"/>
</xsd:complexType>
</xsd:element>
Элемент панели содержит повторяющийся элемент, группирование. Дополнительные сведения см. в разделе "Группирование" в этом документе.
Элемент Panel имеет следующие атрибуты:
имя: имя панели. Это обязательный атрибут строкового типа.
DisplayAsWizard: этот атрибут в настоящее время устарел. Соответствующий атрибут VerbContext в RCDC определяет, находится ли макет ресурса в режиме мастера или в режиме табуляции. Если для него задано значение 0 (режим создания), он также находится в режиме мастера. В противном случае он находится в режиме tab. Дополнительные сведения см. в разделе "Общие сведения о настройке и настройке портала FIM" в документации.
заголовка: этот атрибут в настоящее время не рекомендуется. Пользователь может указать подписи для страницы, включив группу, содержащую только сведения о заголовке. Дополнительные сведения см. в разделе "Группирование" в этом документе.
AutoValidate: это необязательный логический атрибут. Если задано значение true, проверка активируется для каждого элемента управления на текущей вкладке. По умолчанию, если атрибут отсутствует, он имеет значение true. Его можно использовать в сочетании со свойством RegularExpression. Дополнительные сведения см. в разделе "RegularExpression" в следующем разделе этого документа.
Элемент группировки
Элемент группировки определяет общий макет панели. Он выступает в качестве контейнера, который объединяет отдельные элементы управления в разные разделы и вкладки. Ниже приведена схема XSD для элемента Grouping:
<xsd:element name="Grouping">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Help" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Control" minOccurs="1" maxOccurs="256"/>
<xsd:element ref="my:Events" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Description"/>
<xsd:attribute ref="my:Enabled"/>
<xsd:attribute ref="my:Visible"/>
<xsd:attribute ref="my:IsHeader"/>
<xsd:attribute ref="my:IsSummary"/>
</xsd:complexType>
</xsd:element>
Существует три типа элемента Группирование:
группирование заголовков: группирование заголовков является необязательным. В панелиможет быть только одна группа заголовков. Группирование заголовков отображается на панели в виде заголовка. В этой группе можно использовать только один UocCaptionControl. Пример группировки заголовков см. в разделе "Пример".
группирование содержимого: требуется хотя бы одна группа контента. На панели может быть несколько групп контента. Группирование контента отображается в качестве основного содержимого страницы RCDC. Каждое группирование контента отображается как вкладка на той же панели и может содержать от 1 до 256 элементов управления. См. раздел "Примеры" для примера группирования содержимого.
сводной группировки: группирование сводки является необязательным. В панели может быть только одна сводная группировка. Сводка группирования отображается на последней вкладке панели. Для отображения изменений, внесенных пользователем перед отправкой запроса, можно использовать только один элемент управления UocHtmlSummary в сводной группе. Пример группировки сводок см. в разделе "Примеры".
Каждый тип группировки содержит следующие элементы:
справки: этот элемент предоставляет текст справки на вкладке. Ее также можно использовать для добавления ссылки на файл справки для вкладки.
Элементы управления: сведения об этом элементе см. в разделе Control в этом документе. Каждое группирование должно содержать от 1 до 256 элементов управления включительно в зависимости от типа группировки.
события. Сведения об этом элементе см. в разделе "События" в этом документе. Каждое группирование может иметь одно событие. События, поддерживаемые в элементе Grouping, приведены ниже.
- до: это событие активируется, когда пользователь готов оставить вкладку в группе содержимого.
- AfterEnter: это событие активируется, когда пользователь готов ввести вкладку в группирование контента.
Группирование может содержать следующие семь атрибутов:
имя: это необходимое имя группирования. Имя должно быть уникальным в панели.
заголовка: заголовка отображается в виде заголовка в группе заголовков. Она отображается в виде заголовка вкладки для группирования содержимого или сводки.
описание: необязательный строковый атрибут, описание работает только в том случае, если он используется в группе контента. Используйте этот элемент, чтобы предоставить конечным пользователям подробные сведения о сведениях на той же вкладке.
Примечание.
Если этот атрибут используется в сводной группе, XML считается недопустимым. Если этот атрибут используется в группировании заголовков, XML считается допустимым, но игнорируется.
включено: необязательный логический атрибут, параметр Enabled имеет значение true, если он отсутствует. Если параметр "Включено" имеет значение false, конечный пользователь видит вкладку "Отключено". Этот атрибут работает только в группе содержимого.
Примечание.
Если этот атрибут используется в сводной группе, XML считается недопустимым. Если этот атрибут используется в группировании заголовков, XML считается допустимым, но игнорируется.
Видимый: можно скрыть вкладку страницы RCDC или его заголовок, установив для этого атрибута значение false. По умолчанию этот необязательный атрибут логического типа имеет значение true. Этот атрибут работает только в группе контента.
Примечание.
Если в панели есть только одна группа контента, эта функция не работает. При наличии нескольких групп содержимого на панели он ведет себя так, как описано ранее.
IsHeader: этот атрибут является необязательным логическим атрибутом, который определяет, является ли группирование заголовков группированием. Если этот атрибут не указан, он имеет значение false.
IsSummary: это необязательный логический атрибут, определяющий, является ли группирование сводных данных. Если этот атрибут не указан, он имеет значение false.
Примеры типов элементов группировки
В этом разделе содержатся примеры для элемента Groupings.
Пример: группирование заголовков
На следующем рисунке показан пример группирования заголовков:
Header Groupingгруппирования заголовков
Следующий XML-код создает пример группировки заголовков. В XML группирование заголовков — это область с текстом заголовка "Пример группировки заголовков".
<!--Sample for a Header Grouping-->
<my:Grouping my:Name="HeaderGroupingSample" my:IsHeader="true">
<my:Control my:Name="SampleHeaderCaption" my:TypeName="UocCaptionControl" my:ExpandArea="true" my:Caption="Sample Header Grouping">
<my:Properties>
<my:Property my:Name="MaxHeight" my:Value="32"/>
<my:Property my:Name="MaxWidth" my:Value="32"/>
</my:Properties>
</my:Control>
</my:Grouping>
<!--End of Header Grouping Sample-->
Пример: группирование содержимого
На следующем рисунке показан пример группирования контента:
Следующий XML-код создает пример группирования контента. В XML группирование контента — это область с текстом заголовка "Пример группировки контента".
<!--Sample for a Content Grouping-->
<my:Grouping my:Name="ContentGroupingSample" my:Caption="Sample Content Grouping" my:Description="Some description for content grouping">
<my:Control my:Name="DisplayName" my:TypeName="UocTextBox" my:Caption="Display name" my:Description="This is the display name of the set.">
<my:Properties>
<my:Property my:Name="Required" my:Value="True"/>
<my:Property my:Name="MaxLength" my:Value="128"/>
<my:Property my:Name="Text" my:Value="{Binding Source=object, Path=DisplayName, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
</my:Grouping>
<!--End of Content Grouping Sample-->
Пример. Сводка группирования
На следующем рисунке показан пример группирования сводок:
Следующий XML-код создает пример группирования сводок. В XML область сводной группировки — это область с текстом заголовка "Пример группирования сводок".
<!--Sample for a Summary Grouping-->
<my:Grouping my:Name="Summary" my:Caption="Sample Summary Grouping" my:IsSummary="true">
<my:Control my:Name="SummaryControl" my:TypeName="UocHtmlSummary" my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="ModificationsXml" my:Value="{Binding Source=delta, Path=DeltaXml}"/>
<my:Property my:Name="TransformXsl" my:Value="{Binding Source=summaryTransformXsl, Path=/}"/>
</my:Properties>
</my:Control>
</my:Grouping>
<!--End of Summary Grouping Sample-->
Элемент Help
Элемент справки можно включить в группирование или элемент Control в качестве необязательного элемента. Если он используется в группировке, он должен быть первым используемым элементом. Она предоставляет текстовую справку конечным пользователям, чтобы помочь им предоставить точную информацию. Для элемента Help используется следующая схема XSD:
<xsd:element name="Help">
<xsd:complexType>
<xsd:sequence/>
<xsd:attribute ref="my:HelpText"/>
<xsd:attribute ref="my:Link"/>
</xsd:complexType>
</xsd:element>
Следующий пример кода XML создает элемент Help:
<my:Help my:HelpText="Some Help Text for Group Basic Info" my:Link="03e258a0-609b-44f4-8417-4defdb6cb5e9.htm#bkmk_grouping_GroupingBasicInfo" />
Элемент Control
Элемент grouping содержит один или несколько элементов Control. Элементы управления являются основными элементами в RCDC. Элемент grouping можно настроить, определив различные элементы Control, которые он содержит. Для элемента Control используется следующая схема XSD:
<xsd:element name="Control">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Help" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:CustomProperties" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Options" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Buttons" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Properties" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Events" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:TypeName"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Enabled"/>
<xsd:attribute ref="my:Visible"/>
<xsd:attribute ref="my:Description"/>
<xsd:attribute ref="my:ExpandArea"/>
<xsd:attribute ref="my:Hint"/>
<xsd:attribute ref="my:AutoPostback"/>
<xsd:attribute ref="my:RightsLevel"/>
</xsd:complexType>
</xsd:element>
Элемент Control содержит следующие элементы:
справке: этот элемент игнорируется. Она работает только в группированиях.
CustomProperties: этот элемент не поддерживается.
параметры: этот элемент используется только в сочетании с UocDropDownList или UocRadioButtonList Controls. Он не работает с другими элементами управления. См. раздел "Параметры" в этом документе для структуры этого элемента. Ознакомьтесь с разделом "Отдельные элементы управления" в этом документе, чтобы узнать, как параметры используются элементом управления.
Button: этот элемент используется только в сочетании с элементом управления UocListView. Он не работает для других элементов управления. Дополнительные сведения см. в разделе UocListView в этом документе.
свойства: этот элемент используется во всех элементах управления для указания дополнительных действий элемента Control. Сведения об этом элементе см. в разделе "Свойства" в этом документе.
События: структура этого элемента см. в разделе "События" ранее в этом документе. Ознакомьтесь с разделом "Отдельные элементы управления" этого документа, чтобы узнать, какие события используются в элементе управления.
Элемент Control может содержать следующие 10 атрибутов:
Имя: это имя элемента управления. Имя элемента управления должно быть уникальным в каждой панели. Это обязательный атрибут строкового типа.
TypeName: этот атрибут указывает тип элемента управления. Это обязательный атрибут строкового типа. См. раздел "Отдельные элементы управления" в этом документе для каждого имени элемента управления.
заголовка. Этот атрибут можно использовать для включения заголовка элемента управления. Подпись обычно представляет собой отображаемое имя данных, отображаемых элементом управления или вводом. Можно явно указать значение заголовка или привязать его с сведениями о отображаемом имени атрибута схемы. Подпись отображается в левой части элемента управления нормального размера. Если элемент управления охватывает весь экран, заголовок появится над элементом управления. Это необязательный атрибут строкового типа. Сведения о привязке источника данных к атрибуту или значению свойства см. в разделе "Свойства".
В следующем примере показано, как можно явно использовать заголовок:
<my:Control my:Name="ExplicitAlias" my:TypeName="UocTextBox" my:Caption="Explicit Alias">…<my:Control/>В следующем примере показано, как можно использовать заголовок с источником данных. Если вы использовали шаблон для источника данных, показанного ранее в этом документе, источник данных является схемой. Рекомендуется привязать displayName атрибута к атрибуту Caption.
<my:Control my:Name="DynamicAlias" my:TypeName="UocTextBox" my:Caption="{Binding Source=schema, Path=Alias.DisplayName, Mode=OneWay}">…<my:Control/>включено: это необязательный атрибут логического типа. Установив для этого атрибута значение false, пользователь может отключить элемент управления. Значение по умолчанию имеет значение true.
Видимый: это необязательный атрибут логического типа. Этот атрибут можно использовать для скрытия всего элемента управления. Значение по умолчанию имеет значение true.
описание. Используйте этот необязательный атрибут строкового типа, чтобы включить описание, чтобы помочь конечному пользователю понять, что они должны поместить в элемент управления или что делает элемент управления. Можно явно указать значение описания или привязать его к сведениям о описании атрибута схемы.
Описание отображается в левой части элемента управления обычного размера под подписью. Если элемент управления охватывает весь экран, описание отображается в верхней части элемента управления под подписью. Сведения о привязке источника данных к атрибуту или значению свойства см. в разделе "Свойства" в этом документе.
В следующем примере показано, как можно явно использовать описание:
<my:Control my:Name="ExplicitAlias" my:TypeName="UocTextBox" my:Caption="Explicit Alias" my:Description="This is explicit description.">…<my:Control/>В этом примере показано, как можно использовать описание с источником данных. Если вы использовали шаблон для источника данных, показанного ранее в этом документе, источник данных схеме. Рекомендуется привязать описания атрибута с атрибутом Description.
<my:Control my:Name="DynamicAlias" my:TypeName="UocTextBox" my:Caption="{Binding Source=schema, Path=Alias.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=Alias.Description, Mode=OneWay}">…<my:Control/>ExpandArea: этот атрибут указывает, охватывает ли элемент управления весь экран. Это необязательный атрибут логического типа. Значение по умолчанию имеет значение false.
Примечание.
Атрибуты заголовка и описания отключены, если этот атрибут имеет значение true. Используйте элемент управления UocLabel для предоставления заголовка для развернутого элемента управления.
подсказки: это необязательный атрибут строкового типа. Текст в атрибуте Hint помогает пользователю решить, что является допустимым входным для элемента управления. Подсказка отображается под элементом управления.
autoPostback: это необязательный атрибут логического типа. Значение по умолчанию — false. Если задано значение false, обновление страницы может не обновить элемент управления. Дополнительные сведения об AutoPostback см. в свойстве элемента управления пользовательского интерфейса Microsoft ASP.NET с тем же именем.
RightsLevel: это необязательный атрибут строкового типа. Этот атрибут можно привязать только с встроенными правами на источник данных. Элемент управления динамически включается или отключается на основе прав пользователя. Сведения о привязке источников данных к атрибуту или значению свойства см. в разделе "Свойства" в этом документе.
В этом примере показано, как атрибут RightsLevel можно использовать с источником данных. Если вы использовали шаблон для источника данных, показанного ранее в этом документе, источник данных права. Используйте имя атрибута в качестве пути.
Элемент свойства
Для дальнейшей настройки поведения каждого элемента управления можно использовать элемент свойства. Свойство является пустым элементом. Для элемента Property используется следующая схема XSD:
<xsd:element name="Properties">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Property" minOccurs="1" maxOccurs="32"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Property">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Value"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
Каждое свойство имеет следующие два обязательных атрибута:
Name: этот атрибут типа строки является уникальным именем свойства. Различные элементы управления имеют разные свойства. Существуют некоторые общие свойства, которые можно использовать всеми элементами управления. Дополнительные сведения о том, какие имена доступны для данного элемента управления, см. в разделах "Общие свойства" и "Отдельные элементы управления" этого документа.
значение: это значение свойства. Тип данных значения зависит от свойства, которому оно назначено. В следующем разделе приведены сведения о допустимом формате значений для определенных свойств.
Привязка свойства с содержимым источника данных
Некоторые свойства могут быть привязаны к данным из источника данных. Используйте следующий формат строки, чтобы сделать эту привязку. Описание отдельных свойств в разделе "Отдельные элементы управления" этого документа, чтобы узнать, как привязать свойства к источнику данных.
<my:Property my:Name="Required" my:Value="[Formatted String]"/>
Formatted String := “{Binding “ + [SourceExpression] + “,” + [PathExpression] + “,” + [ModeExpression]? + “}
SourceExpression:= “Source=” + [ObjectDataSourceName]
PathExpression:= “Path=” + [AttributeName]|[AttributePropertyName]
ModeExpression:= “Mode=” + [ModeChoice]
ModeChoice:= “OneWay”|”TwoWay”
ObjectDataSourceName:= The value of any string assign to node /ObjectControlConfiguration/ObjectDataSource/Name.
AttributeName:= valid schema attribute name from the data source.
AttributePropertyName:= valid property name of a schema attribute from the data source.
В следующем XML-файле показано, как привязать источник данных к элементу Property:
<my:Property my:Name="Text" my:Value="{Binding Source=object, Path=DisplayName, Mode=TwoWay}"/>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=DisplayName.Required}"/>
Общие свойства
Все элементы управления RCDC, указанные в этом документе, могут иметь общие свойства, описанные в этом разделе. Эти свойства можно использовать вместе с другими свойствами, характерными для различных элементов управления.
Обязательный: это свойство указывает, что поле является обязательным или необязательным. Обязательное поле должно быть заполнено значением. Пустое значение не поддерживается для строковых входных данных. Необязательное поле можно оставить пустым. Если это поле является обязательным полем без заполненного значения, сообщение об ошибке отображается в верхней части элемента управления входными данными. Можно явно указать, является ли поле обязательным или необязательным. Можно также привязать поле со сведениями о схеме заданной привязки между атрибутом и типом ресурса. По умолчанию, если это свойство отсутствует, это означает, что элемент управления является необязательным элементом управления входными данными.
В следующем примере для этого свойства используется явное значение:
<my:Property my:Name="Required" my:Value="True"/>Это пример, использующий динамический источник данных для этого свойства. Если вы использовали шаблон для источника данных, показанного в предыдущем разделе этого документа, источник данных является схемой. Используйте
<attribute name>.Requiredв качестве пути.<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=DisplayName.Required}"/>ReadOnly: присвоив этому свойству значение true, конечный пользователь использует элемент управления в режиме только для чтения. Это необязательный атрибут логического типа. Значение по умолчанию имеет значение false. Однако иногда поведение этого свойства перезаписывается типом прав человека, имеющего привязку данных к элементу управления. Например, если у пользователя нет прав на обновление поля и поле привязано к встроенным правам, пользователь видит данные в режиме только для чтения, даже это свойство имеет значение false.
RegularExpression: это свойство указывает ограничения, которые применяются к значению в элементе управления. Форматы этого значения свойства — это форматы, поддерживаемые в стандарте .NET StringRegex. Дополнительные сведения см. в регулярных выражений .NET Framework. Если элемент управления используется для ввода значения, значение проверяется на ограничение, указанное в этом свойстве, когда пользователь пытается оставить текущую страницу. Сообщение об ошибке отображается в верхней части элемента управления с недопустимыми входными данными. Пользователь может явно указать строковое регулярное выражение. Пользователь также может привязать его к сведениям схемы заданного атрибута. По умолчанию, если это свойство отсутствует, это означает, что элемент управления не проверяет наличие ограничений на входные строки.
В следующем примере для этого свойства используется явное значение:
<my:Property my:Name="RegularExpression" my:Value="[A-Z]*"/>Это пример, использующий динамический источник данных для этого свойства. Если вы использовали шаблон для источника данных, показанного ранее в этом документе, источник данных является схемой. Используйте
<attribute name>.StringRegexв качестве пути.<my:Property my:Name="RegularExpression" my:Value="{Binding Source=schema, Path=Alias.StringRegex, Mode=OneWay}"/>Видимый: это необязательный атрибут логического типа. Этот атрибут можно использовать для скрытия всего элемента управления. Значение по умолчанию имеет значение true.
Элемент Options
Элемент Options включает один или несколько вариантов подмножествия. Элемент параметров используется только с элементами управления UocRadioButtonList и UocDropDownList. Дополнительные сведения об использовании этих элементов управления см. в разделе "Отдельные элементы управления" этого документа.
Для элемента Options используется следующая схема XSD:
<xsd:element name="Options">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Option" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Option">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="my:Value"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Hint"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
Элемент "Параметры" имеет следующие атрибуты:
значение: это обязательный атрибут типа строки. Атрибут значения должен быть уникальным в одном элементе управления. Можно использовать только символы без учета регистра по Z.
заголовка: этот обязательный атрибут — отображаемое имя каждого параметра.
подсказка: это необязательный атрибут. Используйте этот атрибут для предоставления дополнительных сведений и подсказок пользователю.
Переменные среды
Следующие переменные среды можно использовать в любой конфигурации RCDC:
| Переменная | Описание |
|---|---|
<LoginID> |
Отображает идентификатор пользователя, вошедшего в систему. |
<LoginDomain> |
Отображает домен пользователя, вошедшего в систему. |
<Today> |
Отображает текущую дату и время |
<FromToday_nnn> |
Отображает текущую дату, а также nnn и время, где nnn является целым числом. |
<ObjectID> |
Идентификатор основного ресурса RCDC. |
<Attribute_xxx> |
Возвращает указанный атрибут, xxx, основного ресурса RCDC. |
Отладка XML-файлов конфигурации
При разработке или изменении XML-файлов конфигурации для RCDC можно уменьшить ошибки, проверяя XML-файлы XSD с помощью редактора, например Microsoft Visual Studio. Дополнительные сведения см. в статье Общие сведения о средствах XML в Visual Studio 2005.
Настройка файлов справки
При создании новых ресурсов и атрибутов может потребоваться обновить существующие файлы справки на портале FIM с содержимым для настраиваемых ресурсов. Файлы справки на портале FIM находятся в .htm формате, и их можно редактировать вручную. Дополнительные сведения о создании настраиваемых атрибутов см. в статье "Введение в управление настраиваемыми ресурсами и атрибутами" в документации FIM 2010.
Это важно
Сведения об основах форматирования или редактирования HTML не приведены в этой статье. Ожидается, что пользователи будут знать, как редактировать HTML-файлы.
Расположение файлов справки
Все файлы справки для портала Microsoft Identity Manager 2016 с пакетом обновления 1 (SP1) находятся в папке <ProgramFiles>\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Layouts\MSILM2\Help\1033\html на сервере службы MIM.
Поиск определенного файла справки
Все файлы справки для портала FIM называются глобально уникальным идентификатором (GUID). Чтобы найти правильный файл для пользовательского ресурса, выполните следующие действия.
На портале FIM откройте файл справки на странице портала, которую вы хотите настроить.
Щелкните файл справки правой кнопкой мыши и выберите Свойства.
Выделите и скопируйте файл
<GUID\>.htmв поле URL-адрес.Перейдите в папку, в которой хранятся файлы справки и найдите файл.
Добавление содержимого для атрибута в существующем элементе Grouping
Чтобы добавить описательное содержимое для нового атрибута в существующем элементе группировки (tab):
Определите и найдите соответствующий файл справки.
Откройте файл с помощью редактора HTML.
Найдите место, где нужно добавить содержимое. Как правило, это в дополнительном абзаце, например:
<p xmlns="">A new paragraph with customized information.</p>Это также может быть элемент, вставленный в существующий список, например:
<li class="unordered"><b>First Name</b> – The first name of the User.<br> <li class="unordered"><b>Last Name</b> - The last name of the User.<br> <li class="unordered"><b>Added a new line</b><br>
Добавление содержимого для существующего элемента grouping
Большинство страниц портала FIM содержат несколько элементов группирования (или вкладок), а соответствующие файлы справки имеют закладки разделов, связанных с каждым элементом Группирования. Закладки в HTML указываются в разделах. Например, это HTML-файл для вкладки "Сведения о работе" в файле справки для страницы "Создание пользователя" на портале FIM:
<a name="bkmk_grouping_WorkInfo" xmlns=""></a><h3 class="subHeading" xmlns="">Work Info</h3><p class="subHeading" xmlns=""></p><div class="subSection" xmlns="">
Он ссылается на элемент Grouping WorkInfo в XML-файле данных конфигурации для конфигурации конфигурации для создания пользователей RCDC. Имя файла \<GUID\>.htm и закладка указаны в параметре my:Link:
<my:Grouping my:Name="WorkInfo" my:Caption="%SYMBOL_WorkInfoTabCaption_END%" my:Enabled="true" my:Visible="true"> <my:Help my:HelpText="%SYMBOL_WorkInfoTabHelpText_END%" my:Link="5e18a08b-4b20-48b8-90c6-c20f6cbeeb44.htm#bkmk_grouping_WorkInfo"/>
Простые примеры элементов управления
В этом разделе приведены примеры для создания различных простых элементов управления текстовым полем.
На следующем рисунке показаны некоторые простые элементы управления текстовым полем в разных режимах:
Следующий сегмент кода создает первый элемент управления text-box, который использует явный текст для всех атрибутов и свойств:
<!-- Sample for a simple control to use explicit information. (with hints)-->
<my:Control my:Name="ExplicitControl" my:TypeName="UocTextBox" my:Caption="Explicit Control" my:Description="This is explicit description." my:Hint="This is a Hint (enter any text).">
<my:Properties>
<my:Property my:Name="Required" my:Value="True"/>
<my:Property my:Name="RegularExpression" my:Value="[A-Z]*"/>
<my:Property my:Name="Text" my:Value="Enter Information Here"/>
</my:Properties>
</my:Control>
<!-- End of Sample for a simple control to use explicit information.-->
Следующий сегмент кода создает второй элемент управления text-box, который использует метод динамической привязки для связывания элемента управления с другим источником данных:
<!-- Sample for a simple control to use stored data information.-->
<my:Control my:Name="DynamicControl" my:TypeName="UocTextBox" my:Caption="{Binding Source=schema, Path=DisplayName.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=DisplayName.Description, Mode=OneWay}" my:RightsLevel="{Binding Source=rights, Path=DisplayName, Mode=OneWay}">
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=DisplayName.Required, Mode=OneWay}"/>
<my:Property my:Name="RegularExpression" my:Value="{Binding Source=schema, Path=DisplayName.StringRegex, Mode=OneWay}"/>
<my:Property my:Name="Text" my:Value="{Binding Source=object, Path=DisplayName, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
<!-- End of Sample for a simple control to use stored data information.-->
Следующий сегмент кода создает третий развернутый элемент управления метки и текстового поля:
<!-- Sample for a simple expanded control with caption control.-->
<my:Control my:Name="SampleExpandLabel" my:TypeName="UocLabel" my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="Text" my:Value="This is an expanded control."/>
</my:Properties>
</my:Control>
<my:Control my:Name="ExpandedControl" my:TypeName="UocTextBox"
my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="Required" my:Value="false"/>
<my:Property my:Name="Columns" my:Value="40"/>
<my:Property my:Name="Text" my:Value="Expanded control (enter text)"/>
</my:Properties>
</my:Control>
<!-- End of Sample for a simple expanded control.-->
Следующий сегмент кода создает четвертый отключенный элемент управления текстового поля. Хотя этот элемент управления не отображает видимую разницу между отключенным состоянием и включенным состоянием, пользователь больше не может вводить данные в текстовом поле.
<!-- Sample for a simple disabled control.-->
<my:Control my:Name="DisabledControl" my:TypeName="UocTextBox" my:Caption="Disabled Control" my:Description="This is disabled simple control." my:Enabled="false">
<my:Properties>
<my:Property my:Name="Required" my:Value="false"/>
<my:Property my:Name="MaxLength" my:Value="128"/>
<my:Property my:Name="Text" my:Value="Disabled control"/>
</my:Properties>
</my:Control>
<!-- End of Sample for a simple disabled control.-->
Отдельные элементы управления
В этом разделе описаны отдельные элементы управления, предоставляемые Microsoft Identity Manager 2016 с пакетом обновления 1 (SP1).
UocButton
Имя: UocButton
описание. Это простой элемент управления кнопкой, который можно использовать для активации определенных действий. Тем не менее, так как вы не можете указать собственный обработчик, использование этого элемента управления ограничено.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
text: это свойство указывает текст, отображаемый на кнопке. Это необязательный атрибут строкового типа. Текст принимает явное строковое значение.
события:
- OnButtonClicked: событие создается при нажатии кнопки.
Пример:
UocButton controlэлемента управления UocButton
Следующий сегмент XML создает простую кнопку элемента управления UocButton:
<!--Sample enabled simple button control-->
<my:Control my:Name="ButtonControl" my:TypeName="UocButton" my:Caption="SampleButton" my:Description="This is a simple button."
my:Hint="Click the button">
<my:Properties>
<my:Property my:Name="Required" my:Value="True"/>
<my:Property my:Name="Text" my:Value="Click Me"/>
</my:Properties>
</my:Control>
<!--End of sample enabled simple button control -->
UocCaptionControl
Имя: UocCaptionControl
описание. Этот элемент управления используется для отображения заголовка страницы RCDC. Этот элемент управления предназначен только для использования в качестве одного элемента управления в группе заголовков. Использование его в любом другом контексте может вызвать проблемы с отрисовкой или ошибки портала.
режим: только чтение (OneWay)
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
MaxHeight: Это свойство указывает максимальную высоту значка в разделе заголовка. Это свойство является необязательным. Это свойство принимает целочисленное значение в пикселях. Значение по умолчанию — 32 пикселя.
события:
- Для этого элемента управления нет событий.
Пример:
Следующий сегмент кода создает заголовка заголовка:
<!--Sample header caption control-->
<my:Control my:Name="SampleHeaderCaption" my:TypeName="UocCaptionControl" my:ExpandArea="true" my:Caption="Header Caption" my:Description="Description Starts here.">
<my:Properties>
<my:Property my:Name="MaxHeight" my:Value="32"/>
<my:Property my:Name="MaxWidth" my:Value="32"/>
</my:Properties>
</my:Control>
<!--End of sample header caption control-->
Следующий сегмент кода создает явного заголовка содержимого:
<my:Control my:Name="SampleContentCaption" my:TypeName="UocCaptionControl" my:ExpandArea="true" my:Caption="Sample Explicit Content Caption" my:Description="Explicit content caption with smaller icon">
<my:Properties>
<my:Property my:Name="MaxHeight" my:Value="20"/>
<my:Property my:Name="MaxWidth" my:Value="20"/>
</my:Properties>
</my:Control>
<!--End of sample caption-->
Следующий сегмент кода создает отображаемое имя динамического заголовка:
<!--Sample content dynamic caption-->
<my:Control my:Name="Caption3" my:TypeName="UocCaptionControl" my:Caption="{Binding Source=schema, Path=DisplayName.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=DisplayName.Description, Mode=OneWay}"/>
<!--End of sample caption -->
UocCheckBox
имя: UocCheckBox
описание. Это простой элемент управления флажка. Мы рекомендуем пользователю привязать этот элемент управления с логическими данными типа. Этот элемент управления можно использовать в качестве элемента управления только для чтения или обновляемого элемента управления на основе данных, к которым он привязывается.
Примечание.
В этом выпуске при использовании элемента управления флажка в режиме редактирования для отображения логического атрибута, если атрибут не имеет ранее назначенного ему значения, элемент управления ресурсами добавляет значение false в атрибут, когда ОК щелкается в режиме редактирования. Обходная работа заключается в том, чтобы всегда создавать логический атрибут, который предполагает, что не существует то же самое, что и false, или использовать другие элементы управления, такие как переключатель для логических атрибутов.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
DefaultValue: это необязательное свойство логического типа. Значение по умолчанию имеет значение false. Это поле указывает поведение флажка по умолчанию. Это можно явно указать.
проверено: это необязательное свойство логического типа. Значение по умолчанию имеет значение false. Это значение перезаписывает свойство DefaultValue, если оно присутствует вместе с DefaultValue. Это поле указывает поведение флажка. Как и DefaultValue, это может быть явно указано или привязано к данным с сервера.
текстовый: это необязательный атрибут строкового типа. Текст отображается справа от флажка. Это свойство можно использовать для указания текста, который предоставляет дополнительные сведения для конечного пользователя.
события:
- CheckedChanged: когда флажок изменяет состояние, это событие создается.
Пример:
В следующем примере настраиваемая привязка создается между пользовательским типом ресурса и атрибутом IsConfigurationType. XML используется в RCDC пользовательского типа ресурса.
элемент управления UocCheckBox
UocCheckBox control
Следующий сегмент кода создает динамический флажок, как показано на предыдущем рисунке. Этот тип привязки является более универсальным и полезным, чем явный флажок. Атрибут должен принадлежать текущему типу ресурса.
<!--Sample dynamic check box-->
<my:Control my:Name="SampleDynamicCheckBox" my:TypeName="UocCheckBox" my:Caption="Dynamic Check Box" my:Description="This is a dynamic check box. It saves to data source." my:RightsLevel="{Binding Source=rights, Path=IsConfigurationType}">
<my:Properties>
<my:Property my:Name="Text" my:Value="{Binding Source=schema, Path=IsConfigurationType.DisplayName, Mode=OneWay}"/>
<my:Property my:Name="Checked" my:Value="{Binding Source=object, Path=IsConfigurationType, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
<!--End of sample dynamic check box -->
UocCommonMultiValueControl
имя : UocCommonMultiValueControl
описание. Это элемент управления многострочного текстового поля, поддерживающий специальное форматирование строк. Каждое значение между многозначными записями отделяется друг от друга точкой с запятой (;) или разрывом строки в текстовом поле. Мы рекомендуем привязать этот элемент управления с данными многозначных, коротких строк и целых чисел. Этот элемент управления поддерживает режим только для чтения и обновляемый режим.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
DataType: это обязательный атрибут строкового типа. Это можно указать в виде строки , целочисленногоили явного типа dateTime . Можно также привязать атрибут к свойству DataType атрибута схемы. Многозначный ссылочный тип должен обрабатываться UOCListView или UOCIdentityPicker. Многозначный логический тип не поддерживается.
строк: это необязательный атрибут целочисленного типа. Высоту поля можно определить в количестве символов. Значение по умолчанию равно 1.
столбцов: это необязательный атрибут целочисленного типа. Можно определить, сколько ширины поля находится в количестве символов. Значение по умолчанию: 20.
значение: это необязательный атрибут строкового типа. Этот атрибут можно привязать только с источником данных.
события:
- ValueListChanged: это событие активируется при изменении текущего значения элемента управления.
Пример:
В следующем примере создается многозначный строковый атрибут с именем AMultiValueString и привязан к пользовательскому типу ресурса. Этот пример работает только после создания этой привязки.
Следующий сегмент кода создает элемент управления UocCommonMultiValueControl:
<!--Sample multivalue control-->
<my:Control my:Name="SampleDynamicMultiValueControl" my:TypeName="UocCommonMultiValueControl" my:Caption="{Binding Source=schema, Path=AMultiValueString.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=AMultiValueString.Description, Mode=OneWay}" my:RightsLevel="{Binding Source=rights, Path=AMultiValueString}">
<my:Properties>
<my:Property my:Name="Rows" my:Value="6"/>
<my:Property my:Name="Columns" my:Value="60"/>
<my:Property my:Name="DataType" my:Value="String"/>
<!--not supported for above property my:Value={Binding Source=schema, Path=AMultiValueString.DataType, Mode=OneWay}"/>-->
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=AMultiValueString, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
<!--End of sample multivalue control -->
UocDateTimeControl
Имя: UocDateTimeControl
описание. Это похоже на элемент управления "Текстовое поле", но Описание принимает только определенный формат. В режиме только для чтения она отображается как метка. Формат поддерживаемой входной строки см. в свойстве DateTimeFormat в этом разделе.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
DateTimeFormat: это необязательный атрибут строкового типа. Поддерживаемые форматы : DateTime и dateOnly . Значение по умолчанию задано в формате DateTime.
dateTime: атрибут отформатирован как мм/дд/гггг чч:мм:сс.
DateOnly: атрибут форматируется как mm/dd/гггг.
Примечание.
Поддерживаются форматы DateTime и DateOnly, независимо от пользователя, указывающего разницу.
значение: это необязательный атрибут строкового типа. Этот атрибут привязывается к источнику данных ресурса. Значение этого атрибута должен соответствовать правильному формату даты и времени.
события:
- DateTimeChanged: при изменении значения даты и времени происходит событие.
Пример:
Следующий сегмент кода создает первый элемент управления DateTime.
<!--Sample explicit DateTime control-->
<my:Control my:Name="SampleExplicitDateTimeControl" my:TypeName="UocDateTimeControl" my:Caption="Explicit Date Time Control" my:Description="The data shown here is explicit and in date time format.">
<my:Properties>
<my:Property my:Name="DateTimeFormat" my:Value="DateTime"/>
<my:Property my:Name="Value" my:Value="11/11/2008 00:00:00"/>
</my:Properties>
</my:Control>
<!--End of sample explicit DateTime control -->
Следующий сегмент кода создает второй элемент управления DateTime. Если вы использовали пример кода в разделе источников данных, атрибут ExpirationTime привязан ко всем типам ресурсов. Поэтому его можно использовать со следующим кодом:
<!--Sample dynamic DateTime control-->
<my:Control my:Name="SampleDynamicDateTimeControl" my:TypeName="UocDateTimeControl" my:Caption="{Binding Source=schema, Path=ExpirationTime.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=ExpirationTime.Description, Mode=OneWay}" my:RightsLevel="{Binding Source=rights, Path=ExpirationTime}">
<my:Properties>
<my:Property my:Name="DateTimeFormat" my:Value="DateOnly"/>
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=ExpirationTime, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
<!--End of dynamic explicit DateTime control -->
UocDropDownList
имя: UocDropDownList
описание. Это простой раскрывающийся список. Этот элемент управления используется для выбора параметров из определенного набора вариантов. Типы данных строк, целых чисел, даты и логического времени являются хорошими кандидатами для этого элемента управления.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
ValuePath: свойство для получения атрибута Value из ItemSource. Если ItemSource указан как custom, путь к значению имеет значение Value. Он привязывается к полю Value из элемента Option, как описано в этом разделе.
CaptionPath: свойство для получения атрибута Value из ItemSource. Если ItemSource указан как Custom, путь к значению имеет значение Caption. Он привязывается к полю заголовка из элемента Option, как описано в этом разделе.
HintPath: свойство для получения атрибута Value из ItemSource. Если ItemSource указан как custom, путь к значению имеет значение Hint. Он привязывается к полю Hint из элемента Option, как описано в этом разделе.
ItemSource: коллекция ListControlItems, которая определяет варианты в списке. Пользователь может явно задать значение Custom и использовать элемент Option, как описано в этом разделе, чтобы указать строковое значение.
SelectedValue: выбранное в данный момент значение. Это обязательное свойство строкового типа. Это свойство привязано к строковым данным из источника данных.
события:
- SelectedIndexChanged: событие возникает при изменении выделения в раскрывающемся списке.
Варианты.
Структура элемента Options см. в элементе Options.
значение. Значение одного элемента Options можно задать для любой строки, которая является допустимым вводом источника данных, к которому привязывает элемент управления.
заголовка: заголовок может быть любым строковым значением.
подсказка: указание может быть любым строковым значением.
Пример:
параметры 
Примечание.
Чтобы сделать пример работой, необходимо привязать существующий атрибут строкового типа Области с пользовательским типом ресурсов, к которому применяется RCDC.
Следующий сегмент кода создает раскрывающийся список:
<!--Sample for drop-down list control-->
<my:Control my:Name="Scope" my:TypeName="UocDropDownList" my:Caption="{Binding Source=schema, Path=Scope.DisplayName}" my:RightsLevel="{Binding Source=rights, Path=Scope}">
<my:Options>
<my:Option my:Value="DomainLocal" my:Caption="Domain Local" my:Hint="to secure a local resource (i.e. a file share on your computer)" />
<my:Option my:Value="Global" my:Caption="Global" my:Hint="to secure resources across your team or division" />
<my:Option my:Value="Universal" my:Caption="Universal" my:Hint="to use this group across your organization" />
</my:Options>
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=Scope.Required" />
<my:Property my:Name="ValuePath" my:Value="Value" />
<my:Property my:Name="CaptionPath" my:Value="Caption" />
<my:Property my:Name="HintPath" my:Value="Hint" />
<my:Property my:Name="ItemSource" my:Value="Custom" />
<my:Property my:Name="SelectedValue" my:Value="{Binding Source=object, Path=Scope, Mode=TwoWay}" />
</my:Properties>
</my:Control>
<!--End of Sample for drop-down list control-->
UocFileDownload
имя: UocFileDownload
описание: этот элемент управления содержит гиперссылку. При щелчке гиперссылки появится страница "Сохранить файл Windows". Пользователь может сохранить файл на локальном диске. Параметр "Открыть" также поддерживается, если Internet Explorer может отобразить формат файла. Рекомендуемые типы данных для использования этого элемента управления имеют форматированные строки (XML) и двоичные типы.
Примечание.
В этом выпуске Microsoft Identity Manager 2016 с пакетом обновления 1 (SP1) пользователь должен закрыть окно Internet Explorer, в котором он открыл файл, а затем обновить страницу. После обновления окна Internet Explorer пользователь может запустить скачивание, чтобы сохранить или открыть тот же файл еще раз в исходном окне.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
текстовый: это необязательный атрибут строкового типа, определяющий текст гиперссылки. Пользователь может указать явную строку для этого свойства.
значение: это обязательный атрибут. Он задает привязку атрибута на сервере, содержимое которого необходимо загрузить.
PromptedFileName: это необязательный атрибут строкового типа. Это имя файла, которое предлагается пользователю при сохранении скачаемого файла.
ContentType: это обязательный атрибут строкового типа. Это тип файла, в который сохраняются данные. Текст или двоичный файл — это два поддерживаемых параметра строки. Если это текст, возвращаемое значение считается длинной строкой. В противном случае для двоичного файла возвращаемое значение считается байтом[]. Если выбран текст, пользователь может добавить суффикс, чтобы указать тип формата текста. Например, текст или xml является допустимым.
Примечание.
Если значение, привязанное к этому элементу управления, пусто, элемент управления отсутствует гиперссылка, используемая для активации действия загрузки. Это потому, что нет ничего, чтобы скачать.
события:
- Для этого элемента управления нет событий.
Пример:
UocFileDownload controlэлемента управления UocFileDownload
Примечание.
Перед отправкой этого примера файла пользователь должен создать привязку между пользовательским типом ресурса и существующим атрибутом ConfigurationData.
Следующий сегмент кода создает элемент управления скачиванием файлов:
<!--Sample dynamic download control-->
<my:Control my:Name="SampleDynamicFileDownloadControl" my:TypeName="UocFileDownload" my:Caption="{Binding Source=schema, Path=ConfigurationData.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=ConfigurationData.Description, Mode=OneWay}" my:RightsLevel="{Binding Source=rights, Path=ConfigurationData}">
<my:Properties>
<my:Property my:Name="Text" my:Value="Download Dummy xml"/>
<my:Property my:Name="PromptedFileName" my:Value="DummyXML.xml"/>
<my:Property my:Name="ContentType" my:Value="text/xml"/>
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=ConfigurationData}"/>
</my:Properties>
</my:Control>
<!--End of dynamic download control -->
UocFileUpload
имя: UocFileUpload
описание. Этот элемент управления содержит текстовое поле, отображающее расположение отправленного локального файла, кнопку обзора файла и кнопку отправки. Когда пользователь нажимает кнопку "Обзор", откроется окно "Открыть файл Windows". Конечный пользователь может выбрать один файл на локальном диске для отправки. При выборе файла расположение файла отображается в текстовом поле. При нажатии кнопки "Отправить" файл передается в локальный источник данных на стороне клиента. Содержимое файла еще не отправлено на сервер. Рекомендуемые типы данных для использования этого элемента управления приведены следующим образом: форматированная строка (XML) или двоичные типы.
Примечание.
Нет никаких признаков хода отправки или состояния. Когда файл отправляется в локальный источник данных, текстовое поле очищается.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
значение: это обязательный атрибут. Он указывает привязку атрибута схемы на сервере, на который отправляются данные.
ContentType: это необязательный атрибут строкового типа. Это тип данных, который файл сохраняется на сервере. Для этого можно задать значение Text или Binary. Если свойство отсутствует, значение по умолчанию — Binary.
MaxFileSize: это необязательный атрибут строкового типа. MaxFileSize определяет, насколько велик размер отправленного файла. По умолчанию, если свойство отсутствует, максимальный размер составляет 1 мегабайт (МБ).
PromptedForNoValue: это необязательный атрибут строкового типа. Он определяет текст, который отображается пользователю, когда файл не загружается.
события:
- FileUploaded: это событие создается при успешной отправке файла.
Пример:
элемент управления UocFileUpload
UocFileUpload control
Примечание.
Чтобы сделать следующий пример кода работой, необходимо создать новый атрибут двоичного типа с именем ABinaryAttribute, а затем создать новую привязку между пользовательским типом ресурса и этим атрибутом.
Следующий сегмент кода создает элемент управления отправкой:
<!--Sample dynamic upload control-->
<my:Control my:Name="SampleDynamicFileUploadControl" my:TypeName="UocFileUpload" my:Caption="{Binding Source=schema, Path=ABinaryAttribute.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=ABinaryAttribute.Description, Mode=OneWay}” my:RightsLevel="{Binding Source=rights, Path=ABinaryAttribute}">
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=ABinaryAttribute.Required}"/>
<my:Property my:Name="ContentType" my:Value="Binary"/>
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=ABinaryAttribute, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
<!--End of dynamic upload control -->
UocFilterBuilder
имя: UocFilterBuilder
описание. Это сложный элемент управления, позволяющий пользователю отображать выражение XPath MIM 2016. Некоторые выражения XPath не поддерживаются. Сведения об использовании построителя фильтров см. в справке по построителю фильтров.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
РазрешеноObjectTypes: определяет список типов ресурсов, отображаемых в инструкции select построителя фильтров. Сведения об использовании построителя фильтров см. в справке по построителю фильтров. Строка находится в формате ResourceTypeA, ResourceTypeB, где каждый тип ресурса разделен запятой ",".
значение: это значение, с помощью которого отрисовывается построитель фильтров. Поддерживается только привязка со строковыми данными, содержащими выражение XPath. Атрибут Filter — это рекомендуемый атрибут для привязки этого элемента управления.
PreviewButtonVisible: это необязательное свойство логического типа. Если для этого свойства задано значение false, пользователь не видит кнопку предварительного просмотра. Значение по умолчанию имеет значение true. Эта кнопка может использоваться в сочетании с элементом управления представлением списка для предварительного просмотра результатов выражения XPath.
ExcludeGroupMembership: это логическое свойство. Если для этого свойства задано значение true, невозможно создать фильтр, использующий< атрибута >ссылочного атрибута (например, ResourceID) является членом объекта <Group>. Другими словами, если для этого свойства задано значение true, невозможно создать фильтр, использующий каталог членства в группе.
PreviewButtonCaption: это необязательная строка. Если параметр PreviewButtonVisible имеет значение true, это свойство можно использовать для предоставления кнопки настраиваемого текста. Текст отображается на кнопке "Предварительный просмотр".
события:
- OnFilterChanged: это событие активируется при изменении содержимого построителя фильтров.
Пример:
В следующем примере кода содержится элемент управления UOCLabel, простой построитель фильтров с разрешенными типамиObjectTypes и представление списка предварительного просмотра. Наведите указатель на свойство ListFilter представления списка и свойство "Значение построителя фильтров" с тем же атрибутом источника данных, чтобы связать эти два элемента.
Примечание.
Прежде чем использовать этот пример кода, создайте новую привязку между существующим атрибутом Filter и пользовательским типом ресурса.
<!--Sample filter builder with preview list-->
<my:Control my:Name="ComplexFilterBuilderLabel" my:TypeName="UocLabel" my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="Text" my:Value="This is a Filter Builder with preview."/>
</my:Properties>
</my:Control>
<my:Control my:Name="ComplexFilterBuilder" my:TypeName="UocFilterBuilder" my:RightsLevel="{Binding Source=rights, Path=Filter}" my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="PermittedObjectTypes" my:Value="Person,Group" />
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=Filter, Mode=TwoWay}" />
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=Filter.Required, Mode=OneWay}" />
</my:Properties>
</my:Control>
<my:Control my:Name="FilterBuilderwithpreview" my:TypeName="UocListView" my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName,ObjectType,AccountName" />
<my:Property my:Name="EmptyResultText" my:Value="There is no members according to the filter definition." />
<my:Property my:Name="PageSize" my:Value="10" />
<my:Property my:Name="ShowTitleBar" my:Value="false" />
<my:Property my:Name="ShowActionBar" my:Value="false" />
<my:Property my:Name="ShowPreview" my:Value="false" />
<my:Property my:Name="ShowSearchControl" my:Value="false" />
<my:Property my:Name="EnableSelection" my:Value="false" />
<my:Property my:Name="SingleSelection" my:Value="false" />
<my:Property my:Name="ItemClickBehavior" my:Value=" ModelessDialog "/>
<my:Property my:Name="ListFilter" my:Value="{Binding Source=object, Path=Filter}" />
</my:Properties>
</my:Control>
<!--end of sample filter builder with preview-->
UocHtmlSummary
имя : UocHtmlSummary
описание. Этот элемент управления можно использовать для определения сводной страницы на странице RCDC. Эта сводная страница появится после отправки запроса конечным пользователем. Этот элемент управления можно использовать только в группе сводок, и он должен быть единственным элементом управления. Настоятельно рекомендуется использовать предоставленный пример кода.
Примечание.
Этот элемент управления не был тщательно проверен.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
ModificationsXml: это свойство должно быть отформатировано как {Binding Source=delta, Path=DeltaXml}, где разность определяется в заголовке configuration ObjectDataSource.
TransformXsl: это свойство отформатировано как {Binding Source=summaryTransformXsl, Path=/}, где summaryTransformXsl определяется в заголовке конфигурации XmlDataSource.
события:
- Для этого элемента управления нет событий.
Пример:
Пример этого элемента управления см. в примере сводной группировки в разделе элемента группировки этого документа.
UocHyperLink
имени: UocHyperLink
описание. Это простой элемент управления гиперссылкой. Этот элемент управления можно использовать для отображения сведений в виде гиперссылки.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
ObjectReference: это необязательное свойство ссылочного типа. Если допустимый ресурс ссылается на GUID, определенный в этом свойстве, гиперссылка предоставляет пользователю способ доступа к ресурсу. Это взаимоисключаемое свойство NavigateUrl.
Текстовый: это необязательное свойство строкового типа. Это свойство используется для определения текста, отображаемого в качестве гиперссылки.
NavigateUrl: это необязательное свойство строкового типа. Это свойство используется для определения URL-адреса полного пути, на который ссылается гиперссылка. Это взаимоисключаемое свойство ObjectReference.
события:
- Для этого элемента управления нет событий.
Пример:
Примечание.
Для связи с этим требуется действительный GUID ресурса. В этом случае вторая гиперссылка создается с допустимым ИДЕНТИФИКАТОРом GUID. Первым может быть любой веб-сайт.
Следующий сегмент кода создает гиперссылку перенаправления:
<!--Sample for a hyperlink that redirects page.-->
<my:Control my:Name="RedirectHyperlink" my:TypeName="UocHyperLink" my:Caption="Redirect Hyperlink" my:Description="This is a hyperlink that takes you to other pages.">
<my:Properties>
<my:Property my:Name="NavigateUrl" my:Value="http://www.microsoft.com"/>
<my:Property my:Name="Text" my:Value="Microsoft Home Page"/>
</my:Properties>
</my:Control>
<!--End of Sample for a hyperlink that redirect page-->
Следующий сегмент кода создает гиперссылку, которая ссылается на ресурс. Явная ссылка может быть заменена выражением {Binding Source=object, Path=Creator} для привязки к этому источнику данных. Это может быть допустимо только в том случае, если диспетчер ресурсов существует и имеет значение ссылочного типа.
<!--Sample for a hyperlink that reference object-->
<my:Control my:Name="ReferenceHyperlink" my:TypeName="UocHyperLink" my:Caption="Reference Hyperlink" my:Description="This is a hyperlink gives you an object view of the reference object">
<my:Properties>
<my:Property my:Name="ObjectReference" my:Value="e4e048b1-9e43-415e-806c-cf44c429c34c"/>
<my:Property my:Name="Text" my:Value="View a group in FIM 2010."/>
</my:Properties>
</my:Control>
<!--End of Sample for a hyperlink that reference object-->
UocIdentityPicker
имя: UocIdentityPicker
описание. Этот элемент управления состоит из необязательного поля "Разрешить" и окна обзора. Необязательное поле "Разрешить" состоит из необязательного текстового поля для ввода удостоверения, кнопки "Разрешить" для разрешения удостоверения и кнопки "Обзор" для запроса всплывающего окна обзора. Окно обзора позволяет пользователю выбирать удостоверения с помощью элемента управления "Представление списка". Выбранное удостоверение из окна обзора отображается в поле "Разрешить".
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
UsageKeywords: это необязательное строковое свойство. Список областей поиска, используемых в средстве выбора ресурсов, можно определить, предоставив список ключевых слов об использовании, поддерживаемых структурой SearchScopeConfiguration, где каждое ключевое слово отделяется апострофом (').
фильтр: это необязательное строковое свойство. Пользователь предоставляет выражение XPath для области выбора ресурсов, чтобы отобразить только элементы, которые соответствуют определенной области. Это свойство является взаимоисключающим со свойством UsageKeywords. При применении области поиска это свойство не действует.
ResultObjectType: это необязательное строковое свойство. Тип ресурса используется для отображения ресурсов во всплывающем диалоговом окне. Это используется с фильтром, чтобы помочь средство выбора удостоверений определить тип ресурса, возвращаемый фильтром, и отрисовки данных соответствующим образом. Это свойство является взаимоисключающим со свойством UsageKeywords. Если область поиска применяется, это не влияет. Строка, которая принимается для этого свойства, является любым одним, допустимым, допустимым именем типа ресурса, например Person. Если ожидается, что фильтр возвращает несколько типов ресурсов, используется ресурс.
PreviewTitle: это название предварительной версии, используемое в представлении списка. Сведения об этом свойстве см. в разделе UocListView.
ListViewTitle: это необязательное строковое свойство. Это свойство можно использовать для определения текста, показанного в верхней части представления списка в качестве заголовка.
значение: это необязательное строковое свойство. Рекомендуется привязать его с атрибутом схемы для подключения значения к источнику данных.
режим: это необязательное строковое свойство. Это свойство позволяет определить, можно ли выбрать одно значение с помощью средства выбора удостоверений или нескольких удостоверений. SingleResult и MultipleResult — допустимые значения. По умолчанию для него задано значение SingleResult.
ObjectTypes: это необязательное свойство строкового типа. Вы можете определить список типов ресурсов, которые конечный пользователь может разрешить записи в поле "Разрешение средства выбора удостоверений". Список состоит из списка имен типов ресурсов, разделенных запятой ",".
AttributesToSearch: это необязательное свойство строкового типа. Вы можете определить список атрибутов, используемый для разрешения элемента в средстве выбора удостоверений, где список представляет собой список атрибутов схемы, разделенных запятой ",". Например, если АтрибутToSearch задано значение
DisplayName, Alias, пользователь может искать элементы сDisplayName = \<search value\>илиAlias=\<search value\>. Имена атрибутов, введенные здесь, должны быть допустимыми атрибутами для целевых типов ресурсов источника данных, указанного в свойстве Value. Целевые типы ресурсов можно найти в поле ObjectTypes. Все атрибуты должны быть допустимыми для всех указанных типов ресурсов, которые приводятся в поле ObjectTypes.ColumnsToDisplay: это необязательное свойство строкового типа. Пользователь предоставляет список имен атрибутов схемы, разделенных запятой ",". Атрибуты, определенные здесь, составляют столбец представления списка в средстве выбора удостоверений.
строк: это необязательное целочисленное свойство. Он работает только в том случае, если для режима задано значение MultipleResult. Используйте это свойство, чтобы задать высоту текстового поля "Разрешить" заданный размер в единицах символов.
MainSearchScreenText: это необязательное свойство строкового типа. Это настраиваемый текст, который отображается во время выполнения поиска в окне обзора.
события:
- SelectedObjectChanged: это событие создается при изменении выбранных ресурсов пользователем.
Пример:
Примечание.
Чтобы этот пример работал, необходимо создать новую привязку между атрибутом Manager и любым пользовательским типом ресурсов, к которому применяется этот XML.
Следующий сегмент кода создает средство выбора удостоверений в режиме SingleResult с помощью свойств Filter и ResultObjectType в составе RCDC:
<!--Sample for a single-selection identity picker using Filter and Result Object Type-->
<my:Control my:Name="SingleSelectionIdentityPicker" my:TypeName="UocIdentityPicker" my:Caption="A Single Selection Identity Picker" my:Description="The user is allowed to select only one entry here." my:RightsLevel="{Binding Source=rights, Path=Manager}">
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=Manager.Required}"/>
<my:Property my:Name="Mode" my:Value="SingleResult" />
<!--Columns displayed in list view in pop-up window-->
<my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName, ObjectType" />
<!--Identities will be resolved against following attribute in the resolve textbox when resolve button is clicked.-->
<my:Property my:Name="AttributesToSearch" my:Value="DisplayName, AccountName" />
<!--single valued reference type attribute is used to bind the control-->
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=Manager , Mode=TwoWay}" />
<!--Scoping the list explicitly to All Persons name contains letter "e"-->
<my:Property my:Name="Filter" my:Value="/Person[contains(JobTitle, 'Manager')]"/>
<!--Result object type specify the type is Person-->
<my:Property my:Name="ResultObjectType" my:Value="Person"/>
<my:Property my:Name="ListViewTitle" my:Value="Select only one entry" />
<my:Property my:Name="PreviewTitle" my:Value="Entry selected:" />
</my:Properties>
</my:Control>
<!--End of sample for a single-selection identity picker.-->
На следующем рисунке показан средство выбора удостоверений в режиме MultipleResult:
Примечание.
Чтобы сделать этот пример кода работой, необходимо привязать атрибут ExplicitMember (многозначный ссылочный атрибут) к пользовательскому типу ресурса. Создайте области поиска с свойством UsageKeyword, равным Person и Group.
Следующий сегмент кода создает средство выбора удостоверений в режиме MultipleResult:
<!--Sample for a multiselection Identity Picker uses Search Scope-->
<my:Control my:Name="multiSelectionIdentityPicker" my:TypeName="UocIdentityPicker" my:Caption="A multi Selection Identity Picker" my:Description="The user is allowed to select more than one entry here" my:RightsLevel="{Binding Source=rights, Path=ExplicitMember}">
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=ExplicitMember.Required}"/>
<my:Property my:Name="Mode" my:Value="MultipleResult" />
<my:Property my:Name="Rows" my:Value="10" />
<!--There are existing search scopes that has key word "Person" and "Group" use both sets of search scopes here.-->
<my:Property my:Name="UsageKeywords" my:Value="Person,Group"/>
<!--Columns displayed in list view in pop-up window-->
<my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName, ObjectType" />
<!--Identities will be resolved against following attribute in the resolve textbox when resolve button is clicked.-->
<my:Property my:Name="AttributesToSearch" my:Value="DisplayName, AccountName" />
<!--multi valued reference type attribute is used to bind the control-->
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=ExplicitMember , Mode=TwoWay}" />
<my:Property my:Name="ResultObjectType" my:Value="Resource"/>
<my:Property my:Name="ListViewTitle" my:Value="Select multiple entries" />
<my:Property my:Name="PreviewTitle" my:Value="Entries selected" />
</my:Properties>
</my:Control>
<!--End of sample for a multiselection Identity Picker.-->
UocLabel
Имя: UocLabel
описание. Это простой элемент управления текстовыми метками только для чтения. Мы рекомендуем использовать этот элемент управления для отображения данных только для чтения.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
текстовый: это атрибут строкового типа. Это свойство определяется путем предоставления явного строкового значения или привязки его к источнику данных. Пример привязки, которая назначает значение этого свойства, — {Binding Source=object, Path=<допустимое имя атрибута>.
Пример элемента управления UocLabel см. в разделе "Простые примеры элементов управления".
UocListView
имя : UocListView
описание. Это расширенный элемент управления представлением списка. Он состоит из простого представления списка, необязательного простого поиска, дополнительного элемента управления поиска, необязательного поля предварительного просмотра выбора и панели кнопки действия. Необязательный простой поиск состоит из области поиска и простого текстового поля поиска. Расширенный элемент управления поиском — это построитель фильтров. В представлении списка отображается предварительно подготовленный список ресурсов. Он также может отображать результаты поиска, поступающие из элементов управления поиска в этом элементе управления. Панель кнопки действия определяет, какие действия можно выполнить на основе выбора в представлении списка. В поле "Предварительный просмотр выбора" отображаются элементы, выбранные в представлении списка.
Это важно
UocListView не работает с однозначными ссылочными атрибутами. Его можно использовать только с многозначными ссылочными атрибутами. Сведения об однозначных ссылочных атрибутах см. в разделе UocIdentityPicker в этом документе.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
SelectedValue: это необязательное свойство типа строки, привязанное к многозначным ссылочным атрибутам, принимающее список строк, отформатированных GUID.
PageSize: это необязательное целочисленное свойство. Пользователь может указать, сколько записей помещается на одной странице в элементе управления представлением списка. Значение по умолчанию — 10 записей. Любое положительное целое число допустимо.
UsageKeyword: это необязательное свойство строкового типа. Пользователь может указать список ключевых слов, определяющих область поиска, используемую в элементе управления поиском представления списка. Ресурсы области поиска находятся на сервере FIM 2010. Атрибут структуры SearchScopeConfiguration с именем UsageKeyword используется для группировки набора областей поиска. Представление списка использует этот список ключевых слов. Каждое ключевое слово разделено запятыми (,). Это ключевое слово использования, используемое в соответствующей области поиска, которую вы хотите отобразить в этом представлении списка. Это действует только в том случае, если для свойства ShowSearchControl задано значение true.
SearchControlAutoPostback: это необязательное логическое свойство. Задайте для этого свойства значение true, чтобы выполнить автозаставку при активации поиска. По умолчанию для SearchControlAutoPostback задано значение false.
EmptyResultText: это необязательное свойство строкового типа. По умолчанию для него задано значение "Нет элементов", но его можно задать для любого строкового значения. Этот текст появляется, когда результат поиска пуст.
ButtonHeight: это необязательное целочисленное свойство типа. Задайте для этого свойства любое положительное целое число. Это свойство определяет высоту кнопок в панели действий в пикселях. Значение по умолчанию — 32 пикселя.
ButtonWidth: это необязательное целочисленное свойство типа. Задайте для этого свойства любое положительное целое число. Это свойство определяет ширину кнопок в панели действий в пикселях. Значение по умолчанию — 32 пикселя.
CaptionImageMaxHeight: это необязательное свойство целочисленного типа. Задайте для этого свойства любое положительное целое число. Это свойство определяет максимальную высоту значка необязательного заголовка. Значение по умолчанию — 32 пикселя.
CaptionImageMaxWidth: это необязательное целочисленное свойство типа. Задайте для этого свойства любое положительное целое число. Это свойство определяет максимальную ширину значка необязательного заголовка. Значение по умолчанию — 32 пикселя.
CaptionImageUrl: это необязательное свойство строкового типа. Это свойство определяет URL-адрес, который ссылается на изображение, которое отображается как изображение заголовка.
PreviewTitle: это необязательное свойство строкового типа. Это свойство используется для определения текста, отображаемого в верхней части поля предварительного просмотра выделения.
EnableSelection: это необязательное свойство логического типа. Это свойство используется для определения того, находится ли представление списка в режиме выбора. Если представление списка находится в режиме выбора, столбец флажков отображается в левом столбце представления списка, а в нижней части представления списка появится поле предварительного просмотра выбора. Значение по умолчанию этого свойства имеет значение true.
SingleSelection: это необязательное свойство логического типа. Если режим выбора включен для представления списка, задайте для этого значения значение true, чтобы ограничить пользователем выбор только одного элемента из списка. По умолчанию значение этого свойства имеет значение false. Это означает, что по умолчанию конечный пользователь может выбрать несколько элементов из списка.
RedirectUrl: это необязательное свойство строкового типа. Используйте это свойство, чтобы указать страницу для перенаправления при щелчке гиперссылки в списке. Этот URL-адрес может содержать заполнители, которые заменяются фактическим значением во время выполнения. Заполнители приведены следующим образом:
- objectType {0}
- {1} objectID
- {2} displayName
ShowTitleBar: это необязательное свойство логического типа. Используйте это свойство, чтобы указать, должна ли отображаться строка заголовка. Значение по умолчанию для этого свойства — false.
ShowActionBar: это необязательное свойство логического типа. Используйте это свойство, чтобы указать, должна ли отображаться область панели действий. Значение по умолчанию этого свойства имеет значение true.
ShowPreview: это необязательное свойство логического типа. Используйте это свойство, чтобы указать, должна ли отображаться область предварительного просмотра. Значение по умолчанию этого свойства имеет значение true.
ShowSearchControl: это необязательное свойство логического типа. Используйте это свойство, чтобы указать, должен ли элемент управления поиска быть видимым. Значение по умолчанию этого свойства имеет значение true.
ResultObjectType: это необязательное свойство строкового типа. Используйте это свойство, чтобы указать ожидаемый тип объекта результатов поиска. Значение по умолчанию этого свойства — Resource. Если результат поиска содержит несколько типов ресурсов, это значение должно быть указано в качестве ресурса.
ColumnsToDisplay: это необязательное свойство. Используйте это свойство, чтобы указать атрибуты, которые нужно отобразить в представлении списка в виде столбцов. Значение по умолчанию этого свойства — DisplayName, ResourceType. Каждый столбец представлен системным именем атрибута. Каждый столбец отделяется запятой ",". Значение этого свойства не требуется указывать, если представление списка используется в режиме выбора. В режиме выбора параметр столбца поступает из атрибута SearchScopeColumn выбранной области поиска.
ListFilter: это необязательное свойство строкового типа. Это xpath, используемый для отображения представления списка, и действует только в том случае, если для свойства ShowSearchControl задано значение false. Если это значение указано, представление списка использует это значение свойства для запросов, и представление списка не находится в режиме выбора. Фильтр может быть привязан к строковой атрибуту ресурса:
<my:Property my:Name="ListFilter" my:Value="{Binding Source=object, Path=Filter}"/>или строкой, содержащей определенную переменную среды:
<my:Property my:Name="ListFilter" my:Value="/Approval[Request=''%ObjectID%'']"/>TargetAttribute: это устаревшее свойство. Его значение должно быть системным именем многозначного атрибута, на который ссылается ссылка. Мы рекомендуем больше не использовать это свойство. Например, в управлении группами вместо использования:
<my:Property my:Name="TargetAttribute" my:Value="ExplicitMember"/>Использование:
<my:Property my:Name=”ListFilter” my:Value=”/Group[ObjectID=’%ObjectID%’]/ExplicitMember”/>ItemClickBehavior: это необязательное свойство строкового типа. Используйте это свойство, чтобы указать, нужно ли щелкнуть элемент представления списка для активации обратной передачи сервера или отображения подробного представления элемента. Поддерживаются два значения параметров: ModelessDialog и Server. Значение по умолчанию — ModelessDialog.
SearchOnLoad: это необязательное свойство логического типа, указывающее, должен ли элемент управления представления списка запрашивать нагрузку. Это свойство применимо только в том случае, если представление списка находится в режиме выбора. Значение этого свойства по умолчанию — true. Вы можете отключить его, если пользователь обычно вводит текст в поиск, чтобы получить значимый результат. В этом случае в представлении списка изначально отображается сообщение, чтобы сообщить пользователю, как выполнить поиск. Текст можно настроить следующими свойствами:
MainSearchScreenText: это необязательное свойство типа строки применимо только в том случае, если параметр SearchOnload имеет значение true. Это свойство можно использовать для настройки текста, который отображается в середине представления списка, когда представление списка не выполняет поиск автоматически. Значением по умолчанию для этого свойства является поиск ресурсов с помощью поиска, как описано ранее. Можно указать значение, чтобы сделать текст более релевантными для вашего сценария.
SubSearchScreenText: это необязательное свойство типа строки используется для настройки текста, отображаемого после свойства MainSearchScreenText. Как правило, не нужно указывать значение для этого свойства, если вы не хотите добавить дополнительные инструкции по использованию представления списка.
события:
- Для этого элемента управления нет событий.
Пример:
Примеры использования представления списка вместе с элементом управления UocFilterBuilder в качестве списка предварительной версии см. в примерах UocFilterBuilder ранее в этом документе. UocListView также можно использовать без построителя фильтров.
UocNumericBox
Имя: UocNumericBox
описание. Это простое текстовое поле, которое принимает только целочисленные значения. Этот элемент управления поддерживает режим только для чтения и обновляемый режим.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
MaxValue: это необязательное свойство целочисленного типа. Это свойство позволяет определить проверку на стороне клиента для элемента управления. Значение, введенное конечным пользователем, не может превышать это значение. Можно ввести явное целое число или привязать его с целыми данными из источника данных с помощью {Binding Source=schema, Path=IntegerMaximum}.
MinValue: это необязательное целочисленное свойство. Это свойство позволяет определить проверку на стороне клиента для элемента управления. Значение, введенное конечным пользователем, не может быть ниже этого значения. Можно ввести явное целое число или привязать его с целыми данными из источника данных с помощью {Binding Source=schema, Path=IntegerMinimum}.
DefaultValue: это необязательное свойство целочисленного типа. Это свойство позволяет определить значение по умолчанию для элемента управления, если элемент управления используется для создания новых данных. Это значение может быть явно задано только для статического целого числа.
значение: это необязательное свойство целочисленного типа. При привязке этого с данными целочисленного типа из источника данных значение этого атрибута появляется при загрузке страницы, а затем сохраняется в источнике данных после отправки.
события:
- TextChanged: это событие создается при изменении текущего значения внутри элемента управления.
Пример:
элемент
UocNumericBox controlуправления UocNumericBox
Примечание.
Следующий пример кода создает первое числовое поле. Числовое поле не связано с источником данных или какой-либо информацией о схеме.
<!--Sample for an explicit Numeric Box-->
<my:Control my:Name="SampleExplicitNumericBox" my:TypeName="UocNumericBox" my:Caption="An Explicit NumericBox" my:Description="This is a dummy numeric box that is not linked with data source.">
<my:Properties>
<my:Property my:Name="MinValue" my:Value="1"/>
<my:Property my:Name="MaxValue" my:Value="100"/>
<my:Property my:Name="DefaultValue" my:Value="1"/>
</my:Properties>
</my:Control>
<!--End of sample for an explicit Numeric Box.-->
Следующий пример кода создает второй числовое поле.
Примечание.
Для работы этого примера сначала необходимо создать новый атрибут целочисленного типа с именем AnIntegerAttribute и привязать его к пользовательскому типу ресурса.
<!--Sample for a dynamically rendered numeric box-->
<my:Control my:Name="SampleDynamicNumericBox" my:TypeName="UocNumericBox" my:Caption="{Binding Source=schema, Path=AnIntegerAttribute.DisplayName}" my:Description="{Binding Source=schema, Path=AnIntegerAttribute.Description}" my:RightsLevel="{Binding Source=rights, Path=AnIntegerAttribute}">
<my:Properties>
<my:Property my:Name="MaxValue" my:Value="{Binding Source=schema, Path=AnIntegerAttribute.IntegerMaximum}"/>
<my:Property my:Name="MinValue" my:Value="{Binding Source=schema, Path=AnIntegerAttribute.IntegerMinimum}"/>
<my:Property my:Name="DefaultValue" my:Value="1"/>
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=AnIntegerAttribute, Mode=TwoWay}"/>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=AnIntegerAttribute.Required}"/>
</my:Properties>
</my:Control>
<!--End of sample for a dynamically numeric box.-->
UocPictureBox
Имя: UocPictureBox
описание. Этот элемент управления используется для отображения изображений, данных двоичного типа. Мы рекомендуем использовать этот элемент управления с данными двоичного типа. Изображение может быть отрисовано с помощью предоставленного URL-адреса изображения, данных двоичного типа или источника атрибута, содержащего данные типа рисунка.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
ImageUrl: это необязательное свойство строкового типа. Введите URL-адрес целевого рисунка.
MaxHeight: это необязательное строковое свойство type-property. Он определяет максимальную высоту изображения, отображаемого в пикселях.
MaxWidth: это необязательное свойство строкового типа. Он определяет максимальную ширину изображения, отображаемого в пикселях.
ImageData: это свойство двоичного типа. Используйте это свойство для привязки источника данных к отображаемом изображению. Привязанный источник данных должен быть двоичным. Это поле также можно использовать для явного задания рисунка, предоставляя данные в формате byte[].
ImageResource: это необязательное свойство двоичного типа.
AlternativeText: это необязательное свойство строкового типа. Это свойство отображается как альтернативный текст, если изображение не может отображаться.
события:
- Для этого элемента управления нет событий.
Пример:
Примечание.
Чтобы использовать этот пример, необходимо иметь существующую привязку данных изображения к элементу управления.
Следующий сегмент кода создает элемент управления "Поле рисунка", который привязывает источник данных к элементу управления:
<!--Sample for a Picture Box control binding with a data source-->
<my:Control my:Name="SamplePictureBoxImageData" my:TypeName="UocPictureBox" my:RightsLevel="{Binding Source=rights, Path=Photo}">
<my:Properties>
<my:Property my:Name="MaxHeight" my:Value="100" />
<my:Property my:Name="MaxWidth" my:Value="100" />
<my:Property my:Name="ImageData" my:Value="{Binding Source=object, Path=Photo}" />
</my:Properties>
</my:Control>
<!--End of Sample for a Picture Box control-->
Следующий сегмент кода создает элемент управления "Поле рисунка", который привязывает изображение URL-адреса с элементом управления:
<!--Sample for a Picture Box control bind with explicit URL-->
<my:Control my:Name="SamplePictureBoxImageUrl" my:TypeName="UocPictureBox">
<my:Properties>
<my:Property my:Name="MaxHeight" my:Value="100" />
<my:Property my:Name="MaxWidth" my:Value="100" />
<my:Property my:Name="ImageUrl" my:Value="http://www.microsoft.com/dummypicture.jpg" />
</my:Properties>
</my:Control>
<!--End of Sample for a Picture Box control-->
UocRadioButtonList
Имя: UocRadioButtonList
описание. Это простой список кнопок с параметром. Эти варианты являются взаимоисключающими в этом списке. Этот элемент управления рекомендуется использовать, если у пользователей есть пять или меньше вариантов выбора. В противном случае рекомендуется использовать UOCListView.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
ValuePath: путь к значению имеет значение Value. Он привязывается к полю Value из элемента Option, как описано в этом разделе.
CaptionPath: путь к значению имеет значение Caption. Он привязывается к полю заголовка из элемента Option, как описано в этом разделе.
HintPath: путь к значению имеет значение Hint. Он привязывается к полю Hint из элемента Option, как описано в этом разделе.
SelectedValue: выбранное в данный момент значение. Это обязательное свойство строкового типа. Это свойство привязывается к строковым данным из источника данных.
события:
SelectedIndexChanged: событие возникает при изменении выбранной переключателя.
CheckedChanged: когда переключатель изменяет состояние, это событие создается.
Варианты.
В качестве параметров этого элемента управления можно использовать только два элемента параметры. Структура элемента Options см. в элементе Options.
значение: поле "Значение" в одном элементе Option должно иметь значение True или False.
заголовка: это может быть любое строковое значение.
подсказка: это может быть любое строковое значение.
Пример:
элемент управления UocRadioButtonList 
Примечание.
Для работы этого примера необходимо создать логический атрибут ABooleanAttribute и привязать его к пользовательскому типу ресурсов.
Следующий сегмент кода создает список кнопки параметров:
<!--Sample for option button list control-->
<my:Control my:Name="SampleRadioButtonList" my:TypeName="UocRadioButtonList" my:Caption="{Binding Source=schema, Path=ABooleanAttribute.DisplayName}" my:Description="{Binding Source=schema, Path=ABooleanAttribute.Description}" my:RightsLevel="{Binding Source=rights, Path=ABooleanAttribute}">
<my:Options>
<my:Option my:Value="False" my:Caption="Set Value To False" my:Hint="By selecting this option, you are setting the value of the attribute to false." />
<my:Option my:Value="True" my:Caption="Set Value To True" my:Hint="By selecting this option, you are setting the value of the attribute to true." />
</my:Options>
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=ABooleanAttribute.Required}" />
<my:Property my:Name="ValuePath" my:Value="Value" />
<my:Property my:Name="CaptionPath" my:Value="Caption" />
<my:Property my:Name="HintPath" my:Value="Hint" />
<my:Property my:Name="SelectedValue" my:Value="{Binding Source=object, Path=ABooleanAttribute, Mode=TwoWay}" />
</my:Properties>
</my:Control>
<!--End of Sample for option button list control-->
UocSimpleRadioButton
Имя: UocSimpleRadioButton
описание: это простой элемент управления option-button. Использование этого элемента управления аналогично простому флажку. Есть две кнопки параметров, на которых показано параллельно с текстовыми метками. Рекомендуется привязать элемент управления к логическим данным типа.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
TrueText: это необязательное свойство строкового типа. Это текст, который отображается при выборе кнопки параметра.
FalseText: это необязательное свойство строкового типа. Это текст, который отображается, когда кнопка параметра не выбрана.
SelectedItem: это необязательное свойство логического типа. Это значение указывает, что выбрана кнопка параметра. Это может привязаться к логическим данным из источника данных. Значение по умолчанию имеет значение false.
события:
- CheckedChanged: когда кнопка параметра изменяет состояние выбранного на неизбранный или наоборот, этот сигнал создается.
Пример:
Примечание.
Чтобы сделать пример работой, необходимо создать логический атрибут ABooleanAttribute и привязать его к пользовательскому типу ресурсов. Данные RCDC применяются к одному и тому же пользовательскому типу ресурсов.
Следующий сегмент кода создает кнопку параметра:
<!--Sample for simple option button control-->
<my:Control my:Name="SampleSimpleRadioButton" my:TypeName="UocSimpleRadioButton" my:Caption="{Binding Source=schema, Path=ABooleanAttribute.DisplayName}" my:Description="{Binding Source=schema, Path=ABooleanAttribute.Description}" my:RightsLevel="{Binding Source=rights, Path=ABooleanAttribute}">
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=ABooleanAttribute.Required}" />
<my:Property my:Name="FalseText" my:Value="False"/>
<my:Property my:Name="TrueText" my:Value="True"/>
<my:Property my:Name="SelectedItem" my:Value="{Binding Source=object, Path=ABooleanAttribute, Mode=TwoWay}" />
</my:Properties>
</my:Control>
<!--End of Sample for simple option button control-->
UocTextBox
имя: UocTextBox
описание. Это простое текстовое поле, поддерживающее ввод строковых типов. Мы рекомендуем использовать этот элемент управления для привязки к данным типа строки.
Свойства.
Все общие свойства: сведения об этих свойствах см. в разделе Общие свойства.
MaxLength: это необязательный атрибут целочисленного типа. Это свойство указывает максимальную длину строковых входных данных. Значение по умолчанию для этого свойства — 128 символов.
Текстовый: это необязательное свойство строкового типа. Это текст, отображаемый в текстовом поле. Вы можете определить явную строку, которая отображается в текстовом поле во время начальной загрузки элемента управления или привязать ее к атрибуту схемы типа строки.
строк: это необязательное свойство целочисленного типа. Это свойство определяет высоту текстового поля в единицах символов. Значение по умолчанию — один символ.
Столбцы: это необязательное свойство целочисленного типа. Это свойство определяет ширину текстового поля в единицах символов. Значение по умолчанию — 20 символов.
Оболочка: это необязательное свойство логического типа. Присвоив этому свойству значение true, пользователь включает функцию оболочки Word в текстовом поле. Значение по умолчанию этого свойства имеет значение true.
UniquenessValidationXPath: это необязательное свойство строкового типа. Он принимает допустимое выражение фильтра FIM XPath и гарантирует, что входные значения пользователем уникальны в пределах ресурсов, находящихся в области фильтра. Например, чтобы убедиться, что запрашиваемое пользователем отображаемое имя уникально во всех группах безопасности с поддержкой почты в базе данных службы FIM, используйте
/Group[DisplayName=’%VALUE%’ and Type=’MailEnabledSecurity’XPath. Действие проверки выполняется, когда пользователь покидает страницу. Это свойство поддерживается только в RCDC для создания ресурса.UniquenessErrorMessage: это необязательное свойство строкового типа. Эта строка используется для отображения сообщения об ошибке, если проверка UniquenessValidationXPath завершается ошибкой, и может быть явным текстом или строковой переменной ресурса. Если это свойство не указано, сообщение об ошибке по умолчанию для неудачной проверки "%VALUE% уже существует. Попробуйте другой.
события:
- TextChanged: это событие создается при изменении текста внутри текстового поля.
Пример:
Полный пример этого элемента управления см. в разделе "Простые примеры элементов управления".
Приложение A. Схема XSD по умолчанию
В этом разделе показана полная схема XSD для всех rcD-адресов по умолчанию, предоставляемых Microsoft Identity Manager 2016 с пакетом обновления 1 (SP1).
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema targetNamespace="http://schemas.microsoft.com/2006/11/ResourceManagement" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:my="http://schemas.microsoft.com/2006/11/ResourceManagement" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:attribute name="TypeName" type="my:requiredString"/>
<xsd:attribute name="Name" type="my:requiredAlphanumericString"/>
<xsd:attribute name="Parameters" type="xsd:string"/>
<xsd:attribute name="DisplayAsWizard" type="xsd:boolean"/>
<xsd:attribute name="Caption" type="xsd:string"/>
<xsd:attribute name="AutoValidate" type="xsd:boolean"/>
<xsd:attribute name="Enabled" type="xsd:string"/>
<xsd:attribute name="Visible" type="xsd:string"/>
<xsd:attribute name="IsSummary" type="xsd:boolean"/>
<xsd:attribute name="IsHeader" type="xsd:boolean"/>
<xsd:attribute name="HelpText" type="xsd:string"/>
<xsd:attribute name="Link" type="xsd:string"/>
<xsd:attribute name="Description" type="xsd:string"/>
<xsd:attribute name="ExpandArea" type="xsd:boolean"/>
<xsd:attribute name="Hint" type="xsd:string"/>
<xsd:attribute name="AutoPostback" type="xsd:string"/>
<xsd:attribute name="RightsLevel" type="my:requiredString"/>
<xsd:attribute name="Value" type="xsd:string"/>
<xsd:attribute name="Handler" type="my:requiredString"/>
<xsd:attribute name="ImageUrl" type="xsd:string"/>
<xsd:attribute name="RedirectUrl" type="xsd:string"/>
<xsd:attribute name="ClickBehavior" type="xsd:string"/>
<xsd:attribute name="EnableMode" type="xsd:string"/>
<xsd:attribute name="ValueType" type="xsd:string"/>
<xsd:attribute name="Condition" type="xsd:string"/>
<xsd:element name="ObjectControlConfiguration">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:ObjectDataSource" minOccurs="0" maxOccurs="32"/>
<xsd:element ref="my:XmlDataSource" minOccurs="0" maxOccurs="32"/>
<xsd:element ref="my:Panel"/>
<xsd:element ref="my:Events" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="my:TypeName"/>
<xsd:anyAttribute processContents="lax" namespace="http://www.w3.org/XML/1998/namespace"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectDataSource">
<xsd:complexType>
<xsd:sequence/>
<xsd:attribute ref="my:TypeName"/>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Parameters"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="XmlDataSource">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Parameters"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Panel">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Grouping" minOccurs="1" maxOccurs="16"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:DisplayAsWizard"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:AutoValidate"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Grouping">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Help" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Control" minOccurs="1" maxOccurs="256"/>
<xsd:element ref="my:Events" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Description"/>
<xsd:attribute ref="my:Enabled"/>
<xsd:attribute ref="my:Visible"/>
<xsd:attribute ref="my:IsHeader"/>
<xsd:attribute ref="my:IsSummary"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Help">
<xsd:complexType>
<xsd:sequence/>
<xsd:attribute ref="my:HelpText"/>
<xsd:attribute ref="my:Link"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Control">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Help" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:CustomProperties" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Options" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Buttons" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Properties" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Events" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:TypeName"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Enabled"/>
<xsd:attribute ref="my:Visible"/>
<xsd:attribute ref="my:Description"/>
<xsd:attribute ref="my:ExpandArea"/>
<xsd:attribute ref="my:Hint"/>
<xsd:attribute ref="my:AutoPostback"/>
<xsd:attribute ref="my:RightsLevel"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="CustomProperties">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace" processContents="lax"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Options">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Option" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute ref="my:ValueType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Option">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="my:Value"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Hint"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="Buttons">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Button" minOccurs="1" maxOccurs="8"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Button">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Hint"/>
<xsd:attribute ref="my:ImageUrl"/>
<xsd:attribute ref="my:ClickBehavior"/>
<xsd:attribute ref="my:RedirectUrl"/>
<xsd:attribute ref="my:Enabled"/>
<xsd:attribute ref="my:Visible"/>
<xsd:attribute ref="my:EnableMode"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="Properties">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Property" minOccurs="1" maxOccurs="32"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Property">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Value"/>
<xsd:attribute ref="my:Condition"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="Events">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Event" minOccurs="1" maxOccurs="16"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Event">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Handler"/>
<xsd:attribute ref="my:Parameters"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="requiredString">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="requiredAlphanumericString">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A-Za-z0-9_]{1,128}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="requiredAnyURI">
<xsd:restriction base="xsd:anyURI">
<xsd:minLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="requiredBase64Binary">
<xsd:restriction base="xsd:base64Binary">
<xsd:minLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
Приложение B. Сводка по умолчанию XSL
В этом разделе показан полный сводный XSL, предоставляемый Microsoft Identity Manager 2016 с пакетом обновления 1 (SP1).
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:template name="output-attribute-value">
<xsl:param name="attribute"/>
<xsl:param name="type"/>
<xsl:choose>
<xsl:when test="$type='Binary'">
<xsl:value-of select="$attribute" disable-output-escaping="yes"/>
</xsl:when>
<xsl:when test="$type='Text'">
<xsl:text xml:space="preserve" disable-output-escaping="yes">(text data)</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="translate($attribute,' ',' ')" disable-output-escaping="yes"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="output-modified-value">
<xsl:param name="name"/>
<xsl:param name="attribute1"/>
<xsl:param name="text1"/>
<xsl:param name="attribute2"/>
<xsl:param name="text2"/>
<xsl:param name="type"/>
<tr class="listViewRow" style="height:22px;">
<xsl:if test="position() mod 2 != 0">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="$name" disable-output-escaping="yes"/>
</td>
<xsl:choose>
<xsl:when test="$attribute1 and $attribute1!=''">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="$attribute1"/>
<xsl:with-param name="type" select="$type"/>
</xsl:call-template>
</td>
</xsl:when>
<xsl:otherwise>
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:copy-of select="$text1"/>
</td>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$attribute2 and $attribute2!=''">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="$attribute2"/>
<xsl:with-param name="type" select="$type"/>
</xsl:call-template>
</td>
</xsl:when>
<xsl:otherwise>
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:copy-of select="$text2"/>
</td>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test="position() mod 2 != 1">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="$name" disable-output-escaping="yes"/>
</td>
<xsl:choose>
<xsl:when test="$attribute1 and $attribute1!=''">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="$attribute1"/>
<xsl:with-param name="type" select="$type"/>
</xsl:call-template>
</td>
</xsl:when>
<xsl:otherwise>
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:copy-of select="$text1"/>
</td>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$attribute2 and $attribute2!=''">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="$attribute2"/>
<xsl:with-param name="type" select="$type"/>
</xsl:call-template>
</td>
</xsl:when>
<xsl:otherwise>
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:copy-of select="$text2"/>
</td>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</tr>
</xsl:template>
<xsl:template name="output-localized-attribute-value">
<xsl:param name="locale"/>
<xsl:param name="attribute"/>
<xsl:param name="type"/>
<tr class="listViewRow" style="height:22px;">
<xsl:if test="position() mod 2 != 0">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="$locale" disable-output-escaping="yes"/>
</td>
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="$attribute"/>
<xsl:with-param name="type" select="$type"/>
</xsl:call-template>
</td>
</xsl:if>
<xsl:if test="position() mod 2 != 1">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="$locale" disable-output-escaping="yes"/>
</td>
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="$attribute"/>
<xsl:with-param name="type" select="$type"/>
</xsl:call-template>
</td>
</xsl:if>
</tr>
</xsl:template>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="ModifiedAttributes[@ActionType='Create']">
<!-- expected XML
<ModifiedAttributes ActionType="Create">
<Attribute Name="[attribute's system name]" DisplayName="[attribute's display name]" DataType="[all kinds of ILM data type]" InitializedValue="[the value]"/>
other <Attribute> elements
</ModifiedAttributes>
-->
<table cellspacing="0" cellpadding="3" class="commonSummaryListViewGridBorder">
<tr align="left" class="listViewHeader" style="height:22px;">
<th class="commonSummaryListViewHeaderCellBR">Attribute</th>
<th class="commonSummaryListViewHeaderCellBR">Value</th>
</tr>
<xsl:for-each select="ModifiedAttributes/Attribute">
<xsl:sort select="@DisplayName" order="ascending"/>
<tr class="listViewRow" style="height:22px;">
<xsl:if test="position() mod 2 != 0">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="@DisplayName" disable-output-escaping="yes"/>
</td>
<xsl:if test="count(LocalizedValue)!=0">
<td class="commonSummaryListViewCellBR ms-vb">
<table cellspacing="0" style="width:100%">
<tr class="listViewHeader">
<th align="left" class="commonSummaryListViewHeaderCellBR">Language</th>
<th align="left" class="commonSummaryListViewHeaderCellBR">Status</th>
</tr>
<xsl:if test="@InitializedValue and @InitializedValue != ''">
<xsl:call-template name="output-localized-attribute-value">
<xsl:with-param name="locale" select="@Locale"/>
<xsl:with-param name="attribute" select="@InitializedValue"/>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="LocalizedValue">
<xsl:call-template name="output-localized-attribute-value">
<xsl:with-param name="locale" select="@Locale"/>
<xsl:with-param name="attribute" select="@InitializedValue"/>
<xsl:with-param name="type" select="../@DataType"/>
</xsl:call-template>
</xsl:for-each>
</table>
</td>
</xsl:if>
<xsl:if test="count(LocalizedValue)=0">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="@InitializedValue"/>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</td>
</xsl:if>
</xsl:if>
<xsl:if test="position() mod 2 != 1">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="@DisplayName" disable-output-escaping="yes"/>
</td>
<xsl:if test="count(LocalizedValue)!=0">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<table cellspacing="0" style="width:100%">
<tr class="listViewHeader">
<th align="left" class="commonSummaryListViewHeaderCellBR">Language</th>
<th align="left" class="commonSummaryListViewHeaderCellBR">Status</th>
</tr>
<xsl:if test="@InitializedValue and @InitializedValue != ''">
<xsl:call-template name="output-localized-attribute-value">
<xsl:with-param name="locale" select="@Locale"/>
<xsl:with-param name="attribute" select="@InitializedValue"/>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="LocalizedValue">
<xsl:call-template name="output-localized-attribute-value">
<xsl:with-param name="locale" select="@Locale"/>
<xsl:with-param name="attribute" select="@InitializedValue"/>
<xsl:with-param name="type" select="../@DataType"/>
</xsl:call-template>
</xsl:for-each>
</table>
</td>
</xsl:if>
<xsl:if test="count(LocalizedValue)=0">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="@InitializedValue"/>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</td>
</xsl:if>
</xsl:if>
</tr>
</xsl:for-each>
</table>
</xsl:when>
<xsl:when test="ModifiedAttributes[@ActionType='Modify']">
<!-- expected XML
<ModifiedAttributes ActionType="Modify">
<SingleAttribute Name="[attribute's system name]" DisplayName="[attribute's display name]" DataType="[all kinds of ILM data type]" InitializedValue="[the old value]" SetValue="[the new value]"/>
other <SingleAttribute> elements
<MultipleAttribute Name="[attribute's system name]" DisplayName="[attribute's display name]" DataType="[all kinds of ILM data type]" InsertedItem="[inserted items separated by ';']" RemovedItem="[removed items separated by ';']"/>
other <MultipleAttribute> elements
</ModifiedAttributes>
-->
<table class="commonSummaryListViewGridBorder" cellspacing="0" cellpadding="3">
<xsl:if test="ModifiedAttributes[count(SingleAttribute)!=0]">
<tr align="left" class="listViewHeader">
<th class="commonSummaryListViewHeaderCellBR">Single-Value Attributes</th>
<th class="commonSummaryListViewHeaderCellBR">Old Value</th>
<th class="commonSummaryListViewHeaderCellBR">New Value</th>
</tr>
<xsl:for-each select="ModifiedAttributes/SingleAttribute">
<xsl:sort select="@DisplayName" order="ascending"/>
<xsl:if test="count(LocalizedValue)!=0">
<tr class="listViewRow">
<xsl:if test="position() mod 2 != 0">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="@DisplayName" disable-output-escaping="yes"/>
</td>
<td colSpan="2">
<table cellspacing="0" cellpadding="0" style="width:100%">
<tr align="left" class="listViewHeader">
<th class="commonSummaryListViewHeaderCellBR">Language</th>
<th class="commonSummaryListViewHeaderCellBR">Old Value</th>
<th class="commonSummaryListViewHeaderCellBR">New Value</th>
</tr>
<xsl:if test="(@InitializedValue and @InitializedValue !='') or (@SetValue and @SetValue != '')">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@InitializedValue"/>
<xsl:with-param name="text1">(no initial value)</xsl:with-param>
<xsl:with-param name="attribute2" select="@SetValue"/>
<xsl:with-param name="text2">(value removed)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="LocalizedValue">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@InitializedValue"/>
<xsl:with-param name="text1">(no initial value)</xsl:with-param>
<xsl:with-param name="attribute2" select="@SetValue"/>
<xsl:with-param name="text2">(value removed)</xsl:with-param>
<xsl:with-param name="type" select="../@DataType"/>
</xsl:call-template>
</xsl:for-each>
</table>
</td>
</xsl:if>
<xsl:if test="position() mod 2 != 1">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="@DisplayName" disable-output-escaping="yes"/>
</td>
<td colSpan="2">
<table cellspacing="0" style="width:100%">
<tr align="left" class="listViewHeader">
<th class="commonSummaryListViewHeaderCellBR">Language</th>
<th class="commonSummaryListViewHeaderCellBR">Old Value</th>
<th class="commonSummaryListViewHeaderCellBR">New Value</th>
</tr>
<xsl:if test="(@InitializedValue and @InitializedValue !='') or (@SetValue and @SetValue != '')">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@InitializedValue"/>
<xsl:with-param name="text1">(no initial value)</xsl:with-param>
<xsl:with-param name="attribute2" select="@SetValue"/>
<xsl:with-param name="text2">(value removed)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="LocalizedValue">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@InitializedValue"/>
<xsl:with-param name="text1">(no initial value)</xsl:with-param>
<xsl:with-param name="attribute2" select="@SetValue"/>
<xsl:with-param name="text2">(value removed)</xsl:with-param>
<xsl:with-param name="type" select="../@DataType"/>
</xsl:call-template>
</xsl:for-each>
</table>
</td>
</xsl:if>
</tr>
</xsl:if>
<xsl:if test="count(LocalizedValue)=0">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@DisplayName"/>
<xsl:with-param name="attribute1" select="@InitializedValue"/>
<xsl:with-param name="text1">(no initial value)</xsl:with-param>
<xsl:with-param name="attribute2" select="@SetValue"/>
<xsl:with-param name="text2">(value removed)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:if>
<xsl:if test="ModifiedAttributes[count(MultipleAttribute)!=0]">
<tr align="left" class="listViewHeader">
<th class="commonSummaryListViewHeaderCellBR">Multiple-Value Attributes</th>
<th class="commonSummaryListViewHeaderCellBR">Removed Items</th>
<th class="commonSummaryListViewHeaderCellBR">Inserted Items</th>
</tr>
<xsl:for-each select="ModifiedAttributes/MultipleAttribute">
<xsl:sort select="@DisplayName" order="ascending"/>
<xsl:if test="count(LocalizedValue)!=0">
<tr class="uocSummaryTitleTR">
<xsl:if test="position() mod 2 != 0">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="@DisplayName" disable-output-escaping="yes"/>
</td>
<td>
<table cellspacing="0" style="width:100%">
<tr align="left" class="listViewHeader">
<th class="commonSummaryListViewHeaderCellBR">Language</th>
<th class="commonSummaryListViewHeaderCellBR">Removed Items</th>
<th class="commonSummaryListViewHeaderCellBR">Inserted Items</th>
</tr>
<xsl:if test="(@RemovedItem and @RemovedItem!='') or (@InsertedItem and @InsertedItem!='')">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@RemovedItem"/>
<xsl:with-param name="text1">(no removed item)</xsl:with-param>
<xsl:with-param name="attribute2" select="@InsertedItem"/>
<xsl:with-param name="text2">(no inserted item)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="LocalizedValue">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@RemovedItem"/>
<xsl:with-param name="text1">(no removed item)</xsl:with-param>
<xsl:with-param name="attribute2" select="@InsertedItem"/>
<xsl:with-param name="text2">(no inserted item)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:for-each>
</table>
</td>
</xsl:if>
<xsl:if test="position() mod 2 != 1">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="@DisplayName" disable-output-escaping="yes"/>
</td>
<td>
<table cellspacing="0" style="width:100%">
<tr align="left" class="listViewHeader">
<th class="commonSummaryListViewHeaderCellBR">Language</th>
<th class="commonSummaryListViewHeaderCellBR">Removed Items</th>
<th class="commonSummaryListViewHeaderCellBR">Inserted Items</th>
</tr>
<xsl:if test="(@RemovedItem and @RemovedItem!='') or (@InsertedItem and @InsertedItem!='')">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@RemovedItem"/>
<xsl:with-param name="text1">(no removed item)</xsl:with-param>
<xsl:with-param name="attribute2" select="@InsertedItem"/>
<xsl:with-param name="text2">(no inserted item)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="LocalizedValue">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@RemovedItem"/>
<xsl:with-param name="text1">(no removed item)</xsl:with-param>
<xsl:with-param name="attribute2" select="@InsertedItem"/>
<xsl:with-param name="text2">(no inserted item)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:for-each>
</table>
</td>
</xsl:if>
</tr>
</xsl:if>
<xsl:if test="count(LocalizedValue)=0">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@DisplayName"/>
<xsl:with-param name="attribute1" select="@RemovedItem"/>
<xsl:with-param name="text1">(no removed item)</xsl:with-param>
<xsl:with-param name="attribute2" select="@InsertedItem"/>
<xsl:with-param name="text2">(no inserted item)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:if>
</table>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>