Référence XML de configuration de l’affichage du contrôle des ressources

Les ressources de configuration de l’affichage du contrôle des ressources (RCDC) sont définies par l’utilisateur. Vous pouvez les utiliser pour contrôler l’affichage des autres ressources dans le magasin de données de Microsoft Identity Manager 2016 SP1 (MIM) dans l’interface utilisateur (IU) pour l’utilisateur final. Chaque ressource de la configuration RCDC contient un fichier de configuration XML que vous pouvez modifier pour ajouter, modifier ou supprimer le texte d’interface utilisateur et les contrôles d’interface utilisateur. Alors que MIM 2016 SP1 fournit par défaut plusieurs ressources RCDC, vous pouvez également créer des ressources personnalisées RCDC pour des ressources personnalisées. Pour plus d’informations sur l’utilisation de l’interface utilisateur sur un portail MIM, consultez Introduction à la configuration et à la personnalisation du portail FIM dans la documentation FIM.

Problèmes connus

La valeur par défaut dans de nombreux contrôles configuration RCDC n’est pas prise en charge.

Dans cette version, la définition des valeurs par défaut dans les contrôles d’un contrôle de ressource n’est pas prise en charge à l’exception du contrôle de case d’option. Vous pouvez contourner ce problème pour une zone de liste déroulante en spécifiant une valeur par défaut qui n’est pas associée à n’importe quelle valeur afin de forcer l’utilisateur à modifier la sélection. Pour contourner ce problème avec d’autres contrôles, vous devez utiliser un flux de travail d’autorisation pour fournir une valeur par défaut lors de l’envoi de la requête.

Structure de base

Les données XML pour une ressource Configuration RCDC se composent d’un seul élément XML ObjectControlConfiguration .

Notes

Pour obtenir le schéma XSD complet, consultez annexe A : schéma XSD par défaut.

Voici le schéma XSD de l’élément 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>

L’élément ObjectControlConfiguration contient les éléments suivants :

  • ObjectDataSource : cet élément spécifie le TypeName d’une classe de sources de données utilisée par le contrôle de ressources (RC). Pour obtenir une description et la définition du schéma, consultez la section Sources de données suivante dans ce document. Un élément ObjectControlConfiguration peut contenir jusqu'à 32 nœuds de l’élément ObjectDataSource.

  • XmlDataSource: il s’agit d’une source de données simple qui est couramment utilisée pour spécifier la conception d’une page de résumé. Pour obtenir une description et la définition du schéma, consultez la section Sources de données suivante dans ce document. Un élément ObjectControlConfiguration : peut contenir jusqu'à 32 nœuds de l’élément ObjectDataSource.

  • Panneau : l’administrateur peut personnaliser la disposition de la page de configuration RCDC en modifiant des éléments dans les éléments du Panneau. Pour plus d’informations, consultez la section Panneau dans ce document. Un élément ObjectControlConfiguration ne doit avoir qu’un seul élément du Panneau.

  • Événements : les administrateurs ne peuvent pas fournir un code personnalisé à l’origine, cette fonctionnalité est limitée. Il s’agit de l’Événement qu’un panneau ou un contrôle peut émettre, basé sur un changement d’état. Pour plus d’informations, consultez la section Panneau plus loin dans ce document. Un élément ObjectControlConfiguration peut contenir éventuellement un élément Événement. En général, l’utilisation d’Événements personnalisés n’est pas prise en charge, sauf s’ils sont spécialement conçus pour des améliorations ultérieures.

Sources de données

Microsoft Identity Manager utilise des sources de données comme moyen de liaison des données aux composants de l’interface utilisateur. Cela permet de faciliter la séparation des données à partir de la couche de présentation. Il existe deux types de sources de données dans les données de configuration des ressources de la configuration RCDC : ObjectDataSource et XmlDataSource.

  • ObjectDataSources spécifient une classe .NET de Microsoft qui fournit les données à la version RC. Il existe un ensemble fixe de types disponibles de ObjectDataSources fourni que l’administrateur peut choisir d’utiliser lors de la création des configurations RCDC.

  • XMLDataSources fournissent un moyen simple pour structurer des données XML et peuvent être utilisées par les administrateurs pour offrir des données personnalisées. Les données XML doivent être spécifiées directement dans la configuration RCDC, sauf si vous utilisez la structure XML intégrée et prédéfinie. La structure XML intégrée est utilisée pour générer des pages de résumé dans la version RC.

Dans la configuration RCDC, vous pouvez lier ces sources de données aux attributs des contrôles d’interface utilisateur spécifiés dans la configuration RCDC pour générer l’interface utilisateur.

Éléments ObjectDataSource

Microsoft Identity Manager fournit les types de sources de données courantes dans la table suivante qui sont disponibles pour tous les types de ressources (sauf mention contraire).

TypeName Description Liaison bidirectionnelle Syntaxe de liaison
PrimaryResourceObjectDataSource Ceci représente la ressource FIM 2010 en cours de création, de modification ou d’affichage. Le chemin d’accès dans la chaîne de liaison est le nom de l’attribut. Le type de ressource est spécifié par l’attribut TargetObjectType du configuration RCDC plutôt que dans le configuration RCDC. Attribut ConfigurationData. Oui [AttributeName] valeur de l’attribut d’objet donné par son nom.
PrimaryResourceDeltaDataSource Cette source de données génère le code XML qui compare l’état d’origine et l’état actuel de la ressource FIM 2010. Le delta généré XML est consommé par le contrôle de summary RC pour afficher l’interface utilisateur de la requête que l’utilisateur soumet. Non DeltaXml Elle est utilisée avec le contrôle de résumé pour afficher le delta.
PrimaryResourceRightsDataSource Cette source de données fournit les droits en ligne pour chaque attribut de la ressource FIM 2010. Cela permet au RC de déterminer avant l’envoi les autorisations dont dispose cet utilisateur sur cet attribut et d’afficher ensuite l’interface utilisateur pour cet attribut de façon appropriée. Non [AttributeName]
SchemaDataSource Cette source de données peut être utilisée pour accéder aux informations liées au schéma, telles que le nom d’affichage, la description ou si l’attribut est requis ou pas, ainsi que les informations sur le type de ressources. Non [AttributeName].Required Valeur booléenne indiquant si l’attribut doit avoir une valeur valide.
[AttributeName].DisplayNameString Valeur indiquant le nom complet de la liaison.
[AttributeName].DescriptionString Valeur indiquant la description de la liaison.
[AttributeName].StringRegexString valeur qui indique la valeur régulière de chaîne d’une liaison.
[AttributeName].DisplayName
[AttributeName].Description
[AttributeName].IntegerValueMinimum
[AttributeName].IntegerValueMaximum
[AttributeName].LocalizedAllowedValues
DomainDataSource Cette source de données fournit une énumération de domaines, basée sur les ressources de configuration des domaines. Cette source de données ne peut être utilisée que dans les configurations RCDC pour les ressources de groupe et les ressources utilisateur. Oui Domain

Voici un extrait de configuration RCDC en exemple qui lie trois sources de données au contrôle UocTextBox pour modifier l’attribut Description d’un groupe :

<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>

Élément XMLDataSource

À l’aide d’un élément XmlDataSource , vous pouvez spécifier des données personnalisées que le configuration RCDC peut consommer pour une ressource donnée. Dans ce cas, les données XML doivent être spécifiées dans la configuration RCDC. En guise d’alternative, cette source de données peut être utilisée pour faire référence à une structure de données XML intégrée et afficher l’interface utilisateur pour les pages de résumé. Vous contrôlez le type de XMLDataSource à utiliser lorsque vous le définissez dans la configuration RCDC.

TypeName Description Liaison bidirectionnelle Syntaxe de liaison
XMLDataSource La source de données représente des données XML. Les données peuvent être au format xsl ou xsl incorporé :
  • Format XSL dans Microsoft.IdentityManagement.WebUI.Controls.dll :
    <my:XmlDataSource my:Name="summaryTransformXsl" my:Parameters="Microsoft.IdentityManagement. WebUI.Controls.Resources.DefaultSummary.xsl"> </my:XmlDataSource>
  • Format XSL incorporé :
    <my:XmlDataSource my:Name="RequestStatusTransformXsl"><xsl:stylesheet version="1.0" xmlns:xsl=http://www.w3.org/1999/XSL/Transform xmlns:msxsl="urn:schemas-microsoft-com:xslt"></xsl:stylesheet></my:XmlDataSource>
Non Xpath[;namespaces]Xpath est un XPath XML valide pour sélectionner la note requise, le plus souvent « / » (racine). namespaces Liste facultative de préfixes = chaînes d’URI. La chaîne est délimitée par des points-virgules, comme requis pour que le XPath fonctionne sur le XML avec espaces de noms.
ReferenceDeltaDataSource La source de données représente les deltas des attributs de référence à valeurs multiples. Elle est utilisée uniquement sur la configuration RCDC pour le groupe et l’ensemble.
Bien que la source de données ne soit pas limitée à des groupes ou des ensembles, elle exige que des modifications du code dans l’hôte de la configuration RCDC envoient ces deltas. Actuellement, le groupe ou l’ensemble ne sont que des hôtes qui reconnaissent cette source de données.
Oui [AttributeName].Add[AttributeName] représente un attribut de référence et les données retournées sont les ajouts Delta.
  • Exemple : [ReferenceAttribute].Add
  • Exemple : <my:Property my:Name="Value" my:Value="{Binding Source=delta, Path=ExplicitMember.Add, Mode=TwoWay}"/>
[AttributeName].Remove[AttributeName] représente un attribut de référence et les données retournées sont les suppressions Delta.
DeltaXml
RequestDetailsDataSource La source de données représente l’attribut RequestParameter des objets de requête. Le paramètre définit le nombre maximal de valeurs d’attribut à afficher par attribut à valeurs multiples. Elle est utilisée uniquement dans la configuration RCDC pour la requête. <my:ObjectDataSource my:TypeName="RequestDetailsDataSource" my:Name="requestDetails" my:Parameters="1000" /> Non DeltaXml
RequestStatusDataSource La source de données représente l’attribut RequestStatusDetails des objets de requête. Elle est utilisée uniquement dans la configuration RCDC pour la requête. Non DeltaXml

Pour définir une source de données XML personnalisée, utilisez le code XML suivant :

<my:XmlDataSource my:Name="MyCustomData" >
    %Insert custom, properly formatted XML data here%
</my:XmlDataSource>

Pour utiliser le contrôle de résumé intégré XSL, définissez la source de données comme suit :

<my:XmlDataSource my:Name="summaryTransformXsl" my:Parameters="Microsoft.IdentityManagement.WebUI.Controls.Resources.DefaultSummary.xsl" />

Si vous créez une configuration RCDC pour un type de ressource personnalisée, vous pouvez utiliser cette méthode pour afficher automatiquement une page de résumé pour cette ressource personnalisée.

Voici un exemple de création d’un onglet Résumé dans Configuration RCDC, à l’aide de l’élément PrimaryResourceDeltaDataSource avec l’élément XmlDataSource à l’aide de l’élément xsl intégré :

<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>

En guise d’alternative, l’utilisateur peut remplacer l’élément XmlDataSource spécifié précédemment avec le format suivant pour définir une disposition personnalisée d’une page de résumé. En tant que référence, la valeur par défaut de FIM 2010 Summary XSL est inclue à l’annexe B : résumé XSL par défaut, plus loin dans ce document.

<my:XmlDataSource my:Name="summaryTransformXsl">
     Insert valid XSL code here
</my:XmlDataSource>

Schéma de sources de données

Le schéma XSD suivant génère les deux types de sources de données :

<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>

Event, élément

Un élément d' événement définit l’état de modification d’un contrôle. L’extensibilité de cette fonctionnalité est limitée, car il est impossible d’écrire une fonction personnalisée (gestionnaire) pour définir le comportement après le déclenchement d’un événement. Le même élément d’Événement peut être utilisé dans l’élément Panneau. Pour plus d’informations, consultez la section Panneau dans ce document.

Voici le schéma XSD de l’élément d’Événement :

<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>

Un événement est un élément vide et possède les attributs suivants :

  • Nom : il s’agit du nom unique d’un événement. Le seul événement pris en charge dans la ObjectControlConfiguration est l’événement Charge. Cet événement est déclenché lorsque la page est chargée pour la première fois.

  • Gestionnaire : il s’agit du nom unique d’un gestionnaire. Lorsque l’événement est déclenché, une méthode de programme est généralement appelée pour gérer les modifications de l’état du contrôle. Les cas suivants ne sont pas pris en charge :

    • Suppression d’un gestionnaire existant d’un contrôle existant.
    • Création d’un nouveau gestionnaire.
    • Attachement d’un gestionnaire à un contrôle existant ou nouveau.

Voici un exemple d’élément Events :

<my:Events>
    <my:Event my:Name="Load" my:Handler="OnLoad"/>
</my:Events>

Élément Panel

L’élément Panel est l’élément principal d’une disposition configuration RCDC. Voici le schéma XSD de l’élément Panneau :

<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>

L’élément Panel contient un élément récurrent, regroupement. Pour plus d’informations, consultez la section Regroupement de ce document.

L’élément Panel a les attributs suivants :

  • Nom : le nom du Panneau. Il s’agit d’un attribut obligatoire, de type chaîne.

  • DisplayAsWizard : cet attribut est déconseillé actuellement. L’attribut VerbContext correspondant sur la configuration RCDC détermine si la disposition de la ressource est en mode Assistant ou Onglet. S’il est défini sur 0 (mode Création), il est également en mode Assistant. Dans le cas contraire, il est en mode Onglet. Pour plus d’informations, consultez Introduction à la configuration et à la personnalisation du portail FIM dans la documentation.

  • Légende : cet attribut est déconseillé actuellement. L’utilisateur peut spécifier des légendes pour une page en incluant un Groupe qui contient uniquement les informations d’en-tête. Pour plus d’informations, consultez la section Regroupement de ce document.

  • AutoValidate: il s’agit d’un attribut booléen facultatif. Lorsqu’elle a la valeur true, la validation est déclenchée par rapport à chaque contrôle de l’onglet actuel. Par défaut, si l’attribut est manquant, il est défini sur true. Il peut être utilisé en combinaison avec la propriété RegularExpression. Pour plus d’informations, consultez « RegularExpression » dans une section ultérieure de ce document.

Élément GROUPING

L’élément GROUPING définit la disposition générale d’un panneau. Il agit comme un conteneur qui regroupe des contrôles individuels dans des sections et des onglets différents. Voici le schéma XSD de l’élément Regroupement :

<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>

Il existe trois types d’éléments de regroupement :

  • Regroupement d’en-tête : un Regroupement d’en-tête est facultatif. Il ne peut exister qu’un seul Regroupement d’en-tête dans un Panneau. Un Regroupement d’en-tête s’affiche au-dessus d’un panneau en tant que légende. Un seul UocCaptionControl peut être utilisé dans ce regroupement. Pour obtenir un exemple d’un Regroupement d’en-tête, consultez la section Exemple.

  • Regroupement de contenu: au moins un regroupement de contenu est requis. Il peut exister plusieurs Regroupements de contenu dans un Panneau. Un Regroupement de contenu s’affiche en tant que contenu principal d’une page de configuration RCDC. Chaque Regroupement de contenu s’affiche sous forme d’onglet dans le même Panneau et peut contenir de 1 à 256 contrôles. Consultez la section exemples pour obtenir un exemple de regroupement de contenu.

  • Regroupement de résumé: un regroupement de résumé est facultatif. Il ne peut exister qu’un seul Regroupement de résumé dans un Panneau. Un regroupement de résumé s’affiche en tant que dernier onglet d’un Panneau. Seul un contrôle UocHtmlSummary peut être utilisé dans un Regroupement de résumé pour afficher les modifications apportées par un utilisateur avant de soumettre une requête. Consultez la section exemples pour obtenir un exemple de regroupement de résumé.

Chaque type de Regroupement contient les éléments suivants :

  • Aide: cet élément fournit le texte d’aide dans un onglet. Vous pouvez également l’utiliser pour ajouter un lien vers un fichier d’aide pour l’onglet.

  • Contrôles : pour plus d’informations sur cet élément, consultez la section Contrôle dans ce document. Chaque regroupement doit avoir de 1 à 256 contrôles inclusivement, selon le type de regroupement.

  • Événements : pour plus d’informations sur cet élément, consultez la section Événements dans ce document. Chaque regroupement peut, en option, avoir un Événement. Les Événements qui sont pris en charge dans un élément Regroupement sont les suivants :

    • BeforeLeave : cet Événement est déclenché lorsque l’utilisateur est prêt à laisser un onglet dans un regroupement de contenu.
    • AfterEnter : cet Événement est déclenché lorsque l’utilisateur est prêt à entrer un onglet dans un regroupement de contenu.

Un regroupement peut contenir les sept attributs suivants :

  • Nom : il s’agit du nom requis du Regroupement. CeNom doit être unique au sein du Panneau.

  • Légende : la Légende apparaît en tant que légende de l’en-tête dans un Regroupement d’en-tête. Elle s’affiche comme la légende de l’onglet d’un Regroupement de contenu ou de résumé.

  • Description : Un attribut de chaîne facultatif, Description fonctionne uniquement lorsqu’il est utilisé dans un Regroupement de contenu. Utilisez cet élément pour offrir à l’utilisateur final certains détails sur les informations à l’intérieur du même onglet.

    Notes

    Si cet attribut est utilisé dans un Regroupement de résumé, le code XML est considéré comme non valide. Si cet attribut est utilisé dans un Regroupement d’en-tête, le code XML est considéré comme valide mais ignoré.

  • Activé : un attribut booléen facultatif, l’option Activé est définie sur true quand il est manquant. Si l’option activé est définie sur false, l’utilisateur final voit un onglet désactivé. Cet attribut est fonctionnel uniquement dans un regroupement de contenu.

    Notes

    Si cet attribut est utilisé dans un Regroupement de résumé, le code XML est considéré comme non valide. Si cet attribut est utilisé dans un Regroupement d’en-tête, le code XML est considéré comme valide mais ignoré.

  • Visible : vous pouvez masquer un onglet de page RCDC ou son en-tête en définissant cet attribut sur false. Par défaut, cet attribut facultatif de type de valeur booléenne est défini sur true. Cet attribut ne fonctionne que dans un Regroupement de contenu.

    Notes

    Lorsqu’il n'existe qu’un seul Regroupement de contenu dans un Panneau, cette fonctionnalité ne fonctionne pas. Lorsqu’il existe plusieurs groupes de contenu dans un panneau, il se comporte comme décrit précédemment.

  • IsHeader : cet attribut est un attribut facultatif booléen qui définit si le Regroupement est un Regroupement d’en-tête. Si cet attribut n’est pas spécifié, il est défini sur false.

  • IsSummary : il s’agit d’un attribut facultatif booléen qui définit si le Regroupement est un Regroupement de résumé. Si cet attribut n’est pas spécifié, il est défini sur false.

Exemples de types d’éléments de regroupement

Cette section contient des exemples pour l’élément regroupements.

Exemple : regroupement d’en-tête

L’illustration suivante montre un exemple de regroupement d’en-tête :

Header Grouping

Le code XML suivant génère un exemple de regroupement d’en-tête. Dans le XML, le regroupement d’en-tête est la zone avec le texte de légende « exemple de regroupement d’en-tête ».

<!--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-->

Exemple : regroupement de contenu

L’illustration suivante montre un exemple de regroupement de contenu :

Content Grouping

Le code XML suivant génère un exemple de regroupement de contenu. Dans le XML, le regroupement de contenu est la zone avec le texte de légende « exemple de regroupement de contenu ».

<!--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-->

Exemple : regroupement de résumé

L’illustration suivante montre un exemple de regroupement de résumés :

Summary Grouping

Le code XML suivant génère un exemple de regroupement de résumé. Dans le XML, le regroupement Résumé est la zone avec le texte de légende « exemple de regroupement de résumé ».

<!--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, élément

L’élément d’aide peut être inclus dans un élément de regroupement ou de contrôle en tant qu’élément facultatif. S’il est utilisé dans un Regroupement, il doit être le premier élément utilisé. Il fournit une aide textuelle aux utilisateurs finaux pour leur permettre de fournir des informations précises. Le schéma XSD suivant concerne l’élément d’aide :

<xsd:element name="Help">
     <xsd:complexType>
          <xsd:sequence/>
          <xsd:attribute ref="my:HelpText"/>
          <xsd:attribute ref="my:Link"/>
     </xsd:complexType>
</xsd:element>

L’exemple de code XML suivant génère un élément d’aide :

<my:Help my:HelpText="Some Help Text for Group Basic Info" my:Link="03e258a0-609b-44f4-8417-4defdb6cb5e9.htm#bkmk_grouping_GroupingBasicInfo" />

Control (élément)

Un élément de regroupement contient un ou plusieurs éléments de contrôle . Les contrôles sont les principaux éléments dans une configuration RCDC. Vous pouvez personnaliser l’élément Regroupement en définissant les différents éléments Contrôle qu’il contient. Le schéma XSD suivant est destiné à l’élément de contrôle :

<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>

Un élément Control contient les éléments suivants :

  • Aide : cet élément est ignoré. Il fonctionne uniquement dans le Regroupement.

  • CustomProperties : cet élément n’est pas pris en charge.

  • Options : cet élément est utilisé uniquement en association avec les Contrôles UocDropDownList ou UocRadioButtonList. Il ne fonctionne pas avec d’autres Contrôles. Consultez la section Options de ce document pour la structure de cet élément. Consultez la section contrôles individuels de ce document pour voir comment les options sont utilisées par un contrôle.

  • Boutons : cet élément est utilisé uniquement en association avec le Contrôle UocListView. Il ne fonctionne pas avec d’autres Contrôles. Pour plus d’informations, consultez la section UocListView de ce document.

  • Propriétés: cet élément est utilisé dans tous les contrôles pour spécifier des comportements supplémentaires d’un contrôle. Pour plus d’informations sur cet élément, consultez la section Propriété dans ce document.

  • Événements : pour la structure de cet élément, consultez la section Événements plus tôt dans ce document. Consultez la section contrôles individuels de ce document pour connaître les événements qui sont utilisés dans un contrôle.

Un élément Control peut contenir les 10 attributs suivants :

  • Nom : il s’agit du Nom du contrôle. Le nom d’un Contrôle doit être unique dans chaque panneau. Il s’agit d’un attribut obligatoire, de type chaîne.

  • TypeName : cet attribut spécifie le type de Contrôle dont il s’agit. Il s’agit d’un attribut obligatoire, de type chaîne. Consultez la section Contrôles individuels dans ce document pour chaque nom de contrôle.

  • Légende : vous pouvez utiliser cet attribut pour inclure une légende pour le contrôle. La légende est généralement le nom d’affichage des données que le contrôle affiche ou saisie. Vous pouvez spécifier explicitement une valeur pour la légende ou la lier aux informations de nom d’affichage de l’attribut de schéma. La légende s’affiche à l’extrême gauche d’un contrôle de taille normale. Si un contrôle s’étend en mode plein écran, la légende apparaît sur le contrôle. Il s’agit d’un attribut de type chaîne facultatif. Pour plus d’informations sur la façon de lier une source de données avec un attribut ou une valeur de propriété, consultez la section Propriétés.

    L’exemple suivant montre comment une légende peut être utilisée de manière explicite :

      <my:Control my:Name="ExplicitAlias" my:TypeName="UocTextBox" my:Caption="Explicit Alias">…<my:Control/>
    

    L’exemple suivant montre comment une légende peut être utilisée avec une source de données. Si vous avez utilisé le modèle pour une source de données indiquée plus haut dans ce document, votre source de données est schéma. Nous vous recommandons de lier DisplayName de l’attribut à un attribut Légende.

    <my:Control my:Name="DynamicAlias" my:TypeName="UocTextBox" my:Caption="{Binding Source=schema, Path=Alias.DisplayName, Mode=OneWay}">…<my:Control/>
    
  • Activé: il s’agit d’un attribut de type booléen facultatif. En définissant cette valeur d’attribut sur false, l’utilisateur peut désactiver un Contrôle. Par défaut, cette valeur est définie sur true.

  • Visible: il s’agit d’un attribut de type booléen facultatif. Vous pouvez utiliser cet attribut pour masquer l’ensemble du contrôle. Par défaut, cette valeur est définie sur true.

  • Description: utilisez cet attribut de type chaîne facultatif pour inclure une description afin d’aider l’utilisateur final à comprendre ce qu’il doit placer dans le contrôle ou ce que fait le contrôle. Vous pouvez spécifier explicitement une valeur pour la description ou la lier aux informations de description de l’attribut de schéma.

    La Description s’affiche à l’extrême gauche d’un contrôle de taille normale, en-dessous de la légende. Si un contrôle s’étend en mode plein écran, la description s’affiche en haut du contrôle en dessous de la légende. Pour plus d’informations sur la façon de lier une source de données à un attribut ou une valeur de propriété, consultez la section Propriétés dans ce document.

    L’exemple suivant montre comment une Description peut être utilisée de manière explicite :

    <my:Control my:Name="ExplicitAlias" my:TypeName="UocTextBox" my:Caption="Explicit Alias" my:Description="This is explicit description.">…<my:Control/>
    

    Cet exemple montre comment une Description peut être utilisée avec une source de données. Si vous avez utilisé le modèle pour une source de données indiquée plus haut dans ce document, votre source de données est schéma. Nous vous recommandons de lier la Description de l’attribut à un attribut 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: cet attribut indique si le contrôle s’étend sur le plein écran. Il s’agit d’un attribut de type booléen facultatif. Par défaut, cette valeur est définie sur false.

    Notes

    Les attributs Légende et Description sont désactivées lorsque cet attribut est défini sur true. Utilisez le contrôle UocLabel pour fournir une légende pour un contrôle développé.

  • Conseil : il s’agit d’un attribut de type chaîne facultatif. Le texte de l’attribut Conseil permet à l’utilisateur final de décider d’une entrée valide pour le contrôle. Le Conseil s’affiche sous le contrôle.

  • AutoPostback : il s’agit d’un attribut de type booléen facultatif. La valeur par défaut est false. Si la valeur est définie sur false, l’actualisation de la page ne peut pas actualiser le contrôle. Pour plus d’informations sur AutoPostback, recherchez la propriété du contrôle d’interface utilisateur Microsoft ASP.NET du même nom.

  • RightsLevel : il s’agit d’un attribut de type chaîne facultatif. Vous pouvez lier cet attribut uniquement avec les droits en ligne d’une source de données. Le contrôle est dynamiquement activé ou désactivé, selon les droits de l’utilisateur. Pour plus d’informations sur la façon de lier des sources de données à un attribut ou une valeur de propriété, consultez la section Propriétés dans ce document.

    Cet exemple montre comment un attribut RightsLevel peut être utilisé avec un source de données. Si vous avez utilisé le modèle pour une source de données indiquée plus haut dans ce document, votre source de données est droits. Utilisez le nom d’attribut en tant que le Chemin d’accès.

Property, élément

Vous pouvez utiliser un élément de propriété pour personnaliser davantage le comportement de chaque contrôle. Une Propriété est un élément vide. Le schéma XSD suivant concerne l’élément Property :

<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>

Chaque propriété a les deux attributs requis suivants :

  • Nom : cet attribut de type chaîne est le nom unique de la Propriété. Les contrôles différents ont des propriétés différentes. Il existe certaines propriétés communes qui peuvent être utilisées par tous les contrôles. Pour plus d’informations sur les noms disponibles pour un contrôle donné, consultez les sections propriétés communes et contrôles individuels de ce document.

  • Valeur : il s’agit de la valeur de la Propriété. Le type de données des dépendants de la valeur sur lesquels la propriété est assignée. Consultez la section suivante pour le format de la valeur autorisée pour les propriétés spécifiques.

Lier la propriété au contenu de la source de données

Certaines propriétés peuvent être liées à des informations provenant d’une source de données. Utilisez le format de chaîne suivant pour effectuer cette liaison. Pour savoir comment lier des propriétés à une source de données, consultez la description des propriétés individuelles dans la section contrôles individuels de ce document.

<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.

Le code XML suivant montre comment lier une source de données à un élément de propriété :

<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}"/>

Propriétés communes

Tous les contrôles configuration RCDC spécifiés dans ce document peuvent avoir les propriétés communes qui sont décrites dans cette section. Vous pouvez utiliser ces propriétés ainsi que d’autres Propriétés spécifiques aux différents contrôles.

  • Obligatoire: cette propriété indique que le champ est un champ obligatoire ou un champ facultatif. Un champ obligatoire doit être rempli avec une valeur. Une valeur vide n’est pas prise en charge pour l’entrée de chaîne. Un champ facultatif peut être laissé vide. Si ce champ est un champ obligatoire sans valeur entrée, un message d’erreur s’affiche au-dessus du contrôle d’entrée. Vous pouvez spécifier explicitement si un champ est obligatoire ou facultatif. Vous pouvez également lier le champ aux informations de schéma d’une liaison donnée entre un attribut et un type de ressource. Par défaut, si cette propriété est manquante, cela signifie que le contrôle est un contrôle d’entrée facultatif.

    L’exemple suivant utilise une valeur explicite pour cette propriété :

    <my:Property my:Name="Required" my:Value="True"/>
    

    Il s’agit d’un exemple qui utilise une source de données dynamique pour cette propriété. Si vous avez utilisé le modèle pour une source de données indiquée dans la section précédente de ce document, votre source de données est schéma. Utilisez <attribute name>.Required comme chemin d’accès.

    <my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=DisplayName.Required}"/>
    
  • ReadOnly : en définissant cette propriété sur true, l’utilisateur fait l’expérience du contrôle en mode lecture seule. Il s’agit d’un attribut de type booléen facultatif. Par défaut, cette valeur est définie sur false. Parfois, cependant, le comportement de cette propriété est remplacé par le type de droits dont dispose une personne sur la liaison de données avec le contrôle. Par exemple, si un utilisateur ne dispose pas des droits pour mettre à jour un champ et que le champ est lié aux droits en ligne, l’utilisateur voit les données en mode lecture seule même si cette propriété est définie sur false.

  • RegularExpression : cette propriété spécifie les restrictions imposées sur la valeur dans le contrôle. Les formats de la valeur de cette propriété sont les formats pris en charge dans la norme StringRegex .NET. Pour plus d’informations, consultez Expressions régulières .NET Framework. Si le contrôle est utilisé pour entrer une valeur, la valeur est vérifiée par rapport à la restriction spécifiée dans cette propriété lorsque l’utilisateur tente de conserver la page actuelle. Le message d’erreur s’affiche au-dessus du contrôle qui a une entrée non valide. L’utilisateur peut spécifier explicitement une expression régulière de chaîne. L’utilisateur peut également lier des informations de schéma d’un attribut donné. Par défaut, si cette propriété est manquante, cela signifie que le contrôle ne vérifie pas les restrictions sur les chaînes d’entrée.

    L’exemple suivant utilise une valeur explicite pour cette propriété :

    <my:Property my:Name="RegularExpression" my:Value="[A-Z]*"/>
    

    Il s’agit d’un exemple qui utilise une source de données dynamique pour cette propriété. Si vous avez utilisé le modèle pour une source de données indiquée plus haut dans ce document, votre source de données est schéma. Utilisez le <attribute name>.StringRegex comme chemin d’accès.

    <my:Property my:Name="RegularExpression" my:Value="{Binding Source=schema, Path=Alias.StringRegex, Mode=OneWay}"/>
    
  • Visible: il s’agit d’un attribut de type booléen facultatif. Vous pouvez utiliser cet attribut pour masquer l’ensemble du contrôle. Par défaut, cette valeur est définie sur true.

Élément options

L’élément options comprend un ou plusieurs sous-nœuds d' option . L’élément options est utilisé uniquement avec les contrôles UocRadioButtonList et UocDropDownList . Pour plus d’informations sur l’utilisation de ces contrôles, consultez la section contrôles individuels de ce document.

Le schéma XSD suivant concerne l’élément Options :

<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>

L’élément options a les attributs suivants :

  • Valeur: il s’agit d’un attribut obligatoire de type chaîne. La valeur d’attribut doit être unique dans le même contrôle. Les caractères de la casse peuvent être utilisés uniquement de A à Z.

  • Légende: cet attribut obligatoire est le nom d’affichage de chaque option.

  • Conseil: il s’agit d’un attribut facultatif. Utilisez cet attribut pour fournir plus d’informations et de conseils pour l’utilisateur final.

Variables d'environnement

Les variables d’environnement suivantes peuvent être utilisées dans n’importe quelle configuration configuration RCDC :

Variable Description
<LoginID> Affiche l’ID de l'utilisateur actuellement connecté.
<LoginDomain> Affiche le domaine de l’utilisateur actuellement connecté.
<Today> Affiche les date et heure actuelles
<FromToday_nnn> Affiche la date actuelle, ainsi que nnn l’heure, où nnn est un entier.
<ObjectID> L’ID de la ressource principale RCDC.
<Attribute_xxx> Renvoie un attribut spécifié, xxx, de la ressource principale RCDC.

Déboguer les fichiers de configuration XML

Lorsque vous développez ou modifiez des fichiers de configuration XML pour un configuration RCDC, vous pouvez aider à réduire les erreurs en validant le code XML par rapport à des fichiers XSD à l’aide d’un éditeur tel que Microsoft Visual Studio. Pour plus d’informations, consultez Une Introduction aux outils XML dans Visual Studio 2005.

Personnaliser les fichiers d’aide

Si vous créez de nouvelles ressources et de nouveaux attributs, vous pouvez mettre à jour les fichiers Aide existants dans le portail FIM avec le contenu de vos ressources personnalisées. Les fichiers Aide dans le portail FIM sont au format .htm et ils peuvent être modifiés manuellement. Pour plus d’informations sur la création d’attributs personnalisés, consultez Introduction à la ressource personnalisée et la gestion des attributs dans la documentation de FIM 2010.

Important

Les informations sur les principes de base de la mise en forme ou de la modification du code HTML ne sont pas fournies dans cet article. Les utilisateurs sont censés savoir comment modifier des fichiers HTML.

Emplacement des fichiers d’aide

tous les fichiers d’aide du portail Microsoft Identity Manager 2016 SP1 se trouvent dans le dossier <ProgramFiles>\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Layouts\MSILM2\Help\1033\html sur le serveur de service MIM.

Localiser un fichier d’aide spécifique

Tous les fichiers d’aide pour le portail FIM sont nommés à l’aide d’un identificateur global unique (GUID). Pour localiser le fichier approprié à votre ressource personnalisée :

  1. Dans le portail FIM, ouvrez le fichier Aide sur la page Portail que vous souhaitez personnaliser.

  2. Cliquez avec le bouton droit sur le fichier d’aide et sélectionnez Propriétés.

  3. Mettez en surbrillance et copiez le <GUID\>.htm fichier dans le champ <GUID\>.htm .

  4. Accédez au dossier où sont stockés les fichiers d’aide et recherchez le fichier.

Ajouter du contenu pour l’attribut dans un élément de regroupement existant

Pour ajouter du contenu descriptif pour un nouvel attribut dans un élément de regroupement existant (onglet) :

  1. Identifiez et localisez le fichier Aide approprié.

  2. Dans un éditeur HTML, ouvrez le fichier.

  3. Recherchez où vous souhaitez ajouter le contenu. En général, ceci est dans un paragraphe supplémentaire, par exemple :

    <p xmlns="">A new paragraph with customized information.</p>

    Il peut également s’agir d’un élément inséré dans une liste existante, par exemple :

    <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>
    

Ajouter du contenu pour un élément de regroupement existant

La majorité des pages du portail FIM possèdent plusieurs éléments de regroupement (ou onglets), et les fichiers d’aide associés ont des sections avec signet qui se rapportent à chaque élément de regroupement. Les signets dans le code HTML sont spécifiés dans les sections. Par exemple, il s’agit du code HTML de l’onglet Info de travail à partir du fichier Aide pour la page Créer un utilisateur dans le portail FIM :

<a name="bkmk_grouping_WorkInfo" xmlns=""></a><h3 class="subHeading" xmlns="">Work Info</h3><p class="subHeading" xmlns=""></p><div class="subSection" xmlns="">

Il est référencé par l’élément RegroupementWorkInfo dans le fichier de données de configuration XML pour la configuration RCDC Configuration pour la création d’utilisateur. Le \<GUID\>.htm nom de fichier et le signet sont spécifiés dans le my:Link paramètre :

<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"/>

Exemples de contrôle simple

Cette section fournit des exemples pour la création de différents contrôles de zone de texte simples.

L’illustration suivante montre quelques contrôles simples de zone de texte dans différents modes :

Simple text-box controls

Le segment de code suivant crée le premier contrôle de zone de texte, qui utilise explicitement du texte pour tous les attributs et propriétés :

<!-- 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.-->

Le segment de code suivant crée le deuxième contrôle de zone de texte, qui utilise la technique de liaison dynamique pour lier le contrôle avec une autre source de données :

<!-- 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.-->

Le segment de code suivant crée la troisième étiquette développée et le contrôle de zone de texte :

<!-- 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.-->

Le segment de code suivant crée le quatrième contrôle de zone de texte. Bien que ce contrôle n’affiche pas de différence visible entre l’état désactivé et l’état activé, l’utilisateur ne peut plus entrer de données dans la zone de texte.

<!-- 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.-->

Contrôles individuels

cette section décrit les différents contrôles fournis avec Microsoft Identity Manager 2016 SP1.

UocButton

Nom : UocButton

Description : il s’agit d’un contrôle bouton simple que vous pouvez utiliser pour déclencher certaines actions. Toutefois, étant donné que vous ne pouvez pas spécifier votre propre gestionnaire, l’utilisation de ce contrôle est limitée.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • Texte : cette propriété spécifie le texte qui apparaît sur le bouton. Il s’agit d’un attribut de type chaîne facultatif. Le texte prend une valeur de chaîne explicite.

Événements:

  • OnButtonClicked: l’événement est émis lorsque l’utilisateur clique sur le bouton.

Exemple :

UocButton control

Le segment XML suivant génère un bouton de contrôle UocButton simple :

<!--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

Nom : UocCaptionControl

Description : ce contrôle est utilisé pour afficher la légende d’une page de configuration RCDC. Ce contrôle est conçu pour être utilisé uniquement comme un contrôle unique dans un regroupement d’en-tête. L’utiliser dans tout autre contexte peut entraîner des problèmes d’affichage ou des erreurs du portail.

Mode : lecture seule (unidirectionnel)

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • MaxHeight : cette propriété spécifie la hauteur maximale de l’icône dans la section Légende. Cette propriété est facultative. Cette propriété accepte une valeur entière en pixels. La valeur par défaut est 32 pixels.

Événements:

  • Il n’existe aucun événement pour ce contrôle.

Exemple :

UocCaptionControl control

Le segment de code suivant génère une légende d’en-tête:

<!--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-->

Le segment de code suivant génère une légende de contenu explicite:

<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-->

Le segment de code suivant génère une légende dynamique de nom d’affichage :

<!--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

Nom: UocCheckBox

Description: il s’agit d’un contrôle de case à cocher simple. Nous recommandons que l’utilisateur lie ce contrôle avec des données de type booléen. Ce contrôle peut être utilisé comme un contrôle en lecture seule ou un contrôle modifiable, basé sur les données auxquelles il est lié.

Notes

Dans cette version, lorsque vous utilisez le contrôle case à cocher en mode d’édition pour afficher un attribut booléen, si l’attribut n’a pas de valeur précédemment attribuée, le contrôle des ressources ajoute la valeur false à l’attribut lorsque vous cliquez sur OK en mode d’édition. La solution consiste à toujours créer un attribut booléen qui suppose que la non-existence est identique à false, ou utiliser d’autres contrôles tels qu’une case d’option pour les attributs booléens.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • DefaultValue : il s’agit d’une propriété de type booléen facultative. Par défaut, cette valeur est définie sur false. Ce champ spécifie le comportement par défaut d’une case à cocher. Cela peut être spécifié explicitement.

  • Archivé : il s’agit d’une propriété de type booléen facultative. Par défaut, cette valeur est définie sur false. Cette valeur remplace la propriété DefaultValue lorsqu’elle est présente avec DefaultValue. Ce champ spécifie le comportement d’une case à cocher. À l’instar de DefaultValue, cela peut être spécifié explicitement ou lié aux données à partir du serveur.

  • Texte : il s’agit d’un attribut de type chaîne facultatif. Le texte est affiché sur la droite de la case à cocher. Vous pouvez utiliser cette propriété pour spécifier le texte qui fournit des informations supplémentaires à l’utilisateur final.

Événements:

  • CheckedChanged: lorsque la case à cocher change d’État, cet événement est émis.

Exemple :

Dans l’exemple suivant, une liaison personnalisée est créée entre le type de ressource personnalisé et l’attribut IsConfigurationType. Le code XML est utilisé dans la configuration RCDC d’un type de ressource personnalisé.

UocCheckBox control

Le segment de code suivant produit une case à cocher dynamique, comme indiqué en tant que Case à cocher dynamique dans la figure précédente. Ce type de liaison est plus polyvalent et utile qu’une case à cocher explicite. L’attribut doit appartenir au type de ressource en cours.

<!--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

Nom: UocCommonMultiValueControl

Description : il s’agit d’un contrôle de zone de texte multiligne qui prend en charge la mise en forme de chaînes spéciales. Chaque valeur parmi les entrées à valeurs multiples est séparée les unes des autres par un point-virgule (;) ou un saut de ligne dans la zone de texte. Nous vous recommandons de lier ce contrôle à des données de types entier, de chaîne abrégée et à valeurs multiples. Ce contrôle prend en charge le mode lecture seule et le mode modifiable.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • DataType : il s’agit d’un attribut obligatoire, de type chaîne. Vous pouvez spécifier cela comme un type Chaîne, Entier ou DateTime explicitement. Vous pouvez également lier l’attribut à la propriété DataType de l’attribut de schéma. Un type référence à valeurs multiples doit être géré par UOCListView ou UOCIdentityPicker. Le type de données booléennes à valeurs multiples n’est pas pris en charge.

  • Lignes : il s’agit d’un attribut de type entier facultatif. Vous pouvez définir la hauteur de la zone en nombre de caractères. Par défaut, cette valeur est définie sur 1.

  • Colonnes : il s’agit d’un attribut de type entier facultatif. Vous pouvez définir la largeur de la zone en nombre de caractères. La valeur par défaut est définie sur 20.

  • Valeur : il s’agit d’un attribut de type chaîne facultatif. Vous pouvez lier cet attribut uniquement à une source de données.

Événements:

  • ValueListChanged: cet événement est déclenché lorsque la valeur actuelle du contrôle change.

Exemple :

Dans l’exemple suivant, un attribut de chaîne à valeurs multiples nommé AMultiValueString est créé et lié au type de ressource personnalisé. Cet exemple fonctionne uniquement une fois que cette liaison est créée.

UocCommonMultiValueControl control

Le segment de code suivant génère un contrôle 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

Nom : UocDateTimeControl

Description : cela est similaire à un contrôle de zone de texte, mais Description n’accepte qu’un certain format. En mode lecture seule, il apparaît comme une étiquette. Pour le format de la chaîne d’entrée prise en charge, consultez la propriété DateTimeFormat dans cette section.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • DateTimeFormat : il s’agit d’un attribut de type chaîne facultatif. Les formats pris en charge sont DateTime et DateOnly. La valeur par défaut est le format DateTime .

    • DateTime: l’attribut est au format mm/jj/aaaa hh : mm : SS AM.

    • DateOnly: l’attribut est au format mm/jj/aaaa.

      Notes

      Les formats DateTime et DateOnly sont tous deux pris en charge, quel que soit l’utilisateur qui spécifie la différence.

  • Valeur : il s’agit d’un attribut de type chaîne facultatif. Liez cet attribut à une source de données de ressources. La valeur de cet attribut doit être conforme au format datetime correct.

Événements:

  • DateTimeChanged: lorsque la valeur DateTime change, l’événement se produit.

Exemple :

UocDateTimeControl control

Le segment de code suivant génère le premier contrôle 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 -->

Le segment de code suivant génère le deuxième contrôle DateTime. Si vous avez utilisé l’exemple de code dans la section Sources de données, l’attribut ExpirationTime est lié à tous les types de ressources. Par conséquent, vous pouvez l’utiliser avec le code suivant :

<!--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

Nom : UocDropDownList

Description: il s’agit d’un contrôle de zone de liste déroulante simple. Ce contrôle permet de sélectionner des options à partir d’un ensemble défini de choix. Les types de données de chaîne, entier, datetime et booléens sont bien adaptés à ce contrôle.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • ValuePath : la propriété pour obtenir la valeur d’attribut à partir d’ItemSource. Lorsqu’ItemSource est spécifié comme Personnalisé, le chemin d’accès de la valeur est défini sur Valeur. Il crée une liaison avec le champ de valeur de l’élément option, comme décrit dans cette section.

  • ValuePath : la propriété pour obtenir l’attribut Valeur à partir d’ItemSource. Lorsqu’ItemSource est spécifié comme Personnalisé, le chemin d’accès de la valeur est défini sur Légende. Il crée une liaison avec le champ Légende de l’élément option, comme décrit dans cette section.

  • HintPath : la propriété pour obtenir l’attribut Valeur à partir d’ItemSource. Lorsqu’ItemSource est spécifié comme Personnalisé, le chemin d’accès de la valeur est défini sur Conseil. Il crée une liaison avec le champ hint de l’élément option, comme décrit dans cette section.

  • ItemSource : une collection de ListControlItems qui définit les choix dans la liste. L’utilisateur peut définir explicitement cette valeur sur Custom et utiliser l’élément option, comme décrit dans cette section, pour spécifier la valeur de chaîne.

  • SelectedValue: valeur actuellement sélectionnée. Il s’agit d’une propriété obligatoire, de type chaîne. Cette propriété est liée à des données de chaîne à partir de la source de données.

Événements:

  • SelectedIndexChanged: l’événement se produit lorsque la sélection dans la zone déroulante change.

Options :

Pour connaître la structure d’un élément options , consultez élément options.

  • Valeur: la valeur d’un élément d’options unique peut être définie sur n’importe quelle chaîne qui est l’entrée valide de la source de données à laquelle le contrôle est lié.

  • Légende : la Légende peut être toute valeur Chaîne.

  • Conseil : le Conseil peut être toute valeur Chaîne.

Exemple :

UocDropDownList control

Options in a UocDropDownList control

Notes

Pour vous simplifier la tâche, vous devez lier un attribut Étendue de type chaîne existant au type de ressource personnalisée auquel s’applique la configuration RCDC.

Le segment de code suivant génère une liste déroulante :

<!--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

Nom: UocFileDownload

Description: ce contrôle contient un lien hypertexte. Lorsque vous cliquez sur le lien hypertexte, une page Enregistrer le fichier Windows s’affiche. L’utilisateur peut enregistrer le fichier sur son disque local. L’option Ouvrir est également prise en charge si Internet Explorer peut afficher le format de fichier. Les types de données recommandés pour utiliser ce contrôle sont des types de chaînes mises en forme (XML) et binaires.

Notes

dans cette version de Microsoft Identity Manager 2016 SP1, l’utilisateur doit fermer la fenêtre Internet Explorer dans laquelle il a ouvert le fichier, puis actualiser la page. Après avoir actualisé la fenêtre Internet Explorer, l’utilisateur peut alors démarrer le téléchargement pour enregistrer ou ouvrir le même fichier à nouveau dans la fenêtre d’origine.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • Texte : il s’agit d’un attribut de type chaîne facultatif qui définit le texte du lien hypertexte. L’utilisateur peut spécifier une chaîne explicite pour cette propriété.

  • Valeur : il s’agit d’un attribut obligatoire. Il spécifie la liaison de l’attribut sur le serveur dont le contenu doit être téléchargé.

  • PromptedFileName : il s’agit d’un attribut de type chaîne facultatif. Il s’agit du nom de fichier suggéré à l’utilisateur lorsqu’il enregistre le fichier téléchargé.

  • ContentType : il s’agit d’un attribut obligatoire, de type chaîne. Voici le type de fichier dans lequel sont enregistré les données. Texte ou binaire sont les deux options de chaîne prises en charge. S’il s’agit de texte, la valeur de retour est considérée comme une longue chaîne. Dans le cas contraire, pour l’option binaire, la valeur de retour est considérée comme un octet[]. Si le texte est sélectionné, l’utilisateur peut, en option, ajouter un suffixe pour spécifier le type de format du texte. Par exemple, texte/xml est valide.

Notes

Lorsque la valeur qui est liée à ce contrôle est vide, le contrôle manque d’un lien hypertexte pour être utilisé pour déclencher l’action de téléchargement. Il s’agit, car il n’y a rien à télécharger.

Événements:

  • Il n’existe aucun événement pour ce contrôle.

Exemple :

UocFileDownload control

Notes

Avant de télécharger ce fichier d’exemple, l’utilisateur doit créer une liaison entre un type de ressource personnalisé et l’attribut ConfigurationData existant.

Le segment de code suivant génère un contrôle de téléchargement de fichier :

<!--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

Nom : UocFileUpload

Description : ce contrôle contient une zone de texte qui affiche l’emplacement du fichier local à télécharger, un bouton Rechercher le fichier et un bouton Télécharger. Lorsque l’utilisateur final clique sur un bouton Parcourir, une fenêtre Ouvrir un fichier Windows s’affiche. L’utilisateur final peut sélectionner un fichier sur le lecteur local à télécharger. Lorsque le fichier est sélectionné, l’emplacement du fichier figure dans la zone de texte. Lorsque l’utilisateur clique sur le bouton Télécharger, le fichier est téléchargé vers la source de données locale du côté client. Le contenu du fichier n’est pas encore soumis au serveur. Les types de données recommandés pour utiliser ce contrôle sont les suivants : des types de chaînes mises en forme (XML) et binaires.

Notes

Il n’existe aucune indication de la progression ou de l’état du téléchargement. Lorsque le fichier est téléchargé vers la source de données locale, la zone de texte est désactivée.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • Valeur : il s’agit d’un attribut obligatoire. Il spécifie la liaison d’attribut de schéma sur le serveur dans lequel les données sont téléchargées.

  • ContentType: il s’agit d’un attribut de type chaîne facultatif. Il s’agit du type de données pour lesquelles le fichier est enregistré sur le serveur. Cela peut être défini sur Texte ou Binaire. Lorsque la propriété est manquante, la valeur par défaut est Binaire.

  • MaxFileSize: il s’agit d’un attribut de type chaîne facultatif. MaxFileSize définit la taille que peut atteindre la taille du fichier chargé. Par défaut, si la propriété est manquante, la taille maximale est 1 mégaoctet (Mo).

  • PromptedForNoValue: il s’agit d’un attribut de type chaîne facultatif. Il définit le texte qui s’affiche pour l’utilisateur quand un fichier n’est pas en cours de téléchargement.

Événements:

  • FileUploaded: cet événement est émis lorsque le fichier a été téléchargé avec succès.

Exemple :

UocFileUpload control

Notes

Pour que l’exemple de code suivant fonctionne, vous devez créer un nouvel attribut de type binaire nommé ABinaryAttribute et ensuite créer une nouvelle liaison entre un type de ressource personnalisé et de cet attribut.

Le segment de code suivant génère un contrôle de téléchargement :

<!--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

Nom: UocFilterBuilder

Description: il s’agit d’un contrôle complexe qui permet à l’utilisateur d’afficher une expression XPath MIM 2016. Les expressions XPath ne sont pas prises en charge. Pour plus d’informations sur la façon d’utiliser le générateur de filtre, consultez la rubrique Aide pour le générateur de filtre.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • PermittedObjectTypes: définit une liste de types de ressources à afficher dans l’instruction SELECT d’un générateur de filtres. Pour plus d’informations sur la façon d’utiliser le générateur de filtre, consultez la rubrique Aide pour le générateur de filtre. La chaîne est au format ResourceTypeA, ResourceTypeB, où chaque type de ressource est séparé par une virgule « , ».

  • Valeur: il s’agit de la valeur avec laquelle le générateur de filtres est restitué. Seule une liaison avec les données de type chaîne qui contient une expression XPath est pris en charge. L’attribut Filtre est un attribut recommandé pour la liaison de ce contrôle.

  • PreviewButtonVisible: il s’agit d’une propriété de type booléen facultative. Lorsque cette propriété est définie sur false, le bouton Aperçu ne s’affiche pas. Par défaut, cette valeur est définie sur true. Ce bouton peut être utilisé en association avec un contrôle d’affichage de liste pour afficher un aperçu des résultats d’une expression XPath.

  • ExcludeGroupMembership: il s’agit d’une propriété booléenne. Lorsque cette propriété est définie sur true, il est impossible de créer un filtre qui utilise <Attribut de référence> (par exemple, ResourceID) est membre de <l’objet de groupe>. En d’autres termes, lorsque cette propriété est définie sur true, il est impossible de créer un filtre qui utilise le répertoire de l’appartenance au groupe.

  • PreviewButtonCaption: il s’agit d’une chaîne facultative. Lorsque PreviewButtonVisible est défini sur true, vous pouvez utiliser cette propriété afin d’accorder au bouton un texte personnalisé. Le texte apparaît sur le bouton Aperçu.

Événements:

  • OnFilterChanged: cet événement est déclenché lorsque le contenu du générateur de filtres change.

Exemple :

UocFilterBuilder control

L’exemple de code suivant comprend un contrôle UOCLabel, un générateur de filtres simple avec PermittedObjectTypes et un affichage de liste d’aperçu. Pointez la propriété ListFilter de la vue liste et la propriété valeur du générateur de filtres sur le même attribut de source de données pour lier les deux.

Notes

Avant d’utiliser cet exemple de code, créez une liaison entre un attribut Filtre existant et un type de ressource personnalisée.

<!--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

Nom: UocHtmlSummary

Description: vous pouvez utiliser ce contrôle pour définir une page de résumé dans une page Configuration RCDC. Cette page de résumé s’affiche une fois que l’utilisateur final soumet une requête. Ce contrôle peut uniquement être utilisé dans un Regroupement de résumé et il doit être le seul contrôle. Nous vous recommandons vivement d’utiliser l’exemple de code fourni.

Notes

Ce contrôle n’a pas été largement testé.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • ModificationsXml: cette propriété doit être mise en forme en tant que {Binding source = Delta, path = DeltaXml}, où Delta est défini dans l’en-tête de configuration ObjectDataSource.

  • TransformXsl: cette propriété est mise en forme en tant que {Binding source = SummaryTransformXsl, path =/}, où summaryTransformXsl est défini dans l’en-tête de configuration XmlDataSource.

Événements:

  • Il n’existe aucun événement pour ce contrôle.

Exemple :

Pour obtenir un exemple de ce contrôle, consultez l’exemple correspondant à un regroupement de résumé dans la section GROUPING, élément de ce document.

Nom: UocHyperLink

Description: il s’agit d’un contrôle de lien hypertexte simple. Vous pouvez utiliser ce contrôle pour afficher des informations comme un lien hypertexte.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • ObjectReference: il s’agit d’une propriété de type référence facultative. Si une ressource valide est référencée par le GUID défini dans cette propriété, le lien hypertexte fournit à l’utilisateur final un moyen d’accéder à la ressource. Cela s’exclut mutuellement avec la propriété NavigateUrl.

  • Text: il s’agit d’une propriété de type chaîne facultative. Cette propriété vous permet de définir le texte qui apparaît en tant que lien hypertexte.

  • NavigateUrl: il s’agit d’une propriété de type chaîne facultative. Cette propriété vous permet de définir l’URL du chemin d’accès complet qui établit un lien vers le lien hypertexte. Cela s’exclut mutuellement avec la propriété ObjectReference.

Événements:

  • Il n’existe aucun événement pour ce contrôle.

Exemple :

UocHyperLink control

Notes

Vous avez besoin d’un GUID valide pour y lier une ressource. Dans ce cas, le deuxième lien hypertexte est généré avec un GUID valide. Le premier peut être n’importe quel site Web.

Le segment de code suivant génère un lien hypertexte de redirection :

<!--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-->

Le segment de code suivant génère un lien hypertexte qui fait référence à une ressource. La référence explicite peut être remplacée par l’expression {Binding Source=object, Path=Creator} pour la lier à une source de données. Cela peut être valide uniquement lorsque le responsable de la ressource existe et qu’il s’agit d’une valeur de type de référence.

<!--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

Nom: UocIdentityPicker

Description: ce contrôle se compose d’une zone de résolution facultative et d’une fenêtre Parcourir. La case Résoudre facultative se compose d’une zone de texte facultative pour entrer l’identité, un bouton Résoudre pour résoudre l’identité et d’un bouton Parcourir pour demander une fenêtre contextuelle Parcourir. La fenêtre Parcourir rend possible pour l’utilisateur de sélectionner des identités à travers un contrôle d’affichage de liste. L’identité sélectionnée dans la fenêtre Parcourir est reflétée dans la zone Résoudre.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • UsageKeywords: il s’agit d’une propriété de chaîne facultative. Vous pouvez définir une liste d’étendues de recherche à utiliser dans le sélecteur de ressources en fournissant une liste des mots clés d’utilisation pris en charge par la structure SearchScopeConfiguration, où chaque mot clé est séparé par une apostrophe (').

  • Filtre: il s’agit d’une propriété de chaîne facultative. L’utilisateur fournit une expression XPath pour étendre le sélecteur de ressources et afficher uniquement les éléments qui tiennent dans une étendue définie. Cette propriété s’exclut mutuellement avec la propriété UsageKeywords. Lorsque l’étendue de recherche est appliquée, cette propriété n’a aucun effet.

  • ResultObjectType: il s’agit d’une propriété de chaîne facultative. Le type de ressource est utilisé pour afficher les ressources dans la liste de la boîte de dialogue contextuelle. Il est utilisé avec le filtre pour permettre au sélecteur d’identité d’identifier le type de ressource renvoyé par le filtre et afficher les données en conséquence. Cette propriété s’exclut mutuellement avec la propriété UsageKeywords. Lorsque l’étendue de recherche est appliquée, cette propriété n’a aucun effet. La chaîne acceptée pour cette propriété est n’importe quel nom unique et valide, de type ressource, par exemple, Personne. Lorsque le filtre est censé renvoyer plusieurs types de ressources, Ressource est utilisée.

  • PreviewTitle: il s’agit du titre de l’aperçu utilisé sur un mode liste. Pour plus d’informations sur cette propriété, consultez la section UocListView.

  • ListViewTitle: il s’agit d’une propriété de chaîne facultative. Vous pouvez utiliser cette propriété pour définir le texte affiché en haut de l’affichage de liste comme un titre.

  • Valeur: il s’agit d’une propriété de chaîne facultative. Il est recommandé de lier cette valeur à un attribut de schéma pour connecter la valeur à une source de données.

  • Mode: il s’agit d’une propriété de chaîne facultative. Cette propriété vous permet de définir si une seule valeur peut être sélectionnée par le Sélecteur d’identité ou si plusieurs identités peuvent être sélectionnées. SingleResult et MultipleResult sont les valeurs autorisées. Par défaut, il est défini sur SingleResult.

  • ObjectTypes: il s’agit d’une propriété de type chaîne facultative. Vous pouvez définir une liste de types de ressources dont l’utilisateur final peut résoudre des entrées dans la zone Résoudre des sélecteurs d’identité. La liste se compose d’une liste de noms de types de ressources séparés par une virgule « , ».

  • AttributesToSearch: il s’agit d’une propriété de type chaîne facultative. Vous pouvez définir une liste d’attributs à utiliser pour résoudre l’élément dans le sélecteur d’identité, où la liste est une liste d’attributs de schéma, séparée par une virgule « , ». Par exemple, si AttributesToSearch a la valeur DisplayName, Alias , l’utilisateur peut rechercher les éléments avec DisplayName = \<search value\> ou Alias=\<search value\> . Les noms d’attributs entrés ici doivent être des attributs valides sur les types de ressources cibles de la source de données spécifiée dans la propriété Value. Les types de ressources cibles sont accessibles dans le champ ObjectTypes. Tous les attributs doivent être valides sur tous les types de ressources donnés mentionnés dans le champ ObjectTypes.

  • ColumnsToDisplay: il s’agit d’une propriété de type chaîne facultative. L’utilisateur fournit une liste de noms d’attributs de schéma, séparés par une virgule « , ». Les attributs définis ici constituent la colonne de l’affichage de liste dans le Sélecteur d’identité.

  • Lignes: il s’agit d’une propriété de type entier facultative. Il fonctionne uniquement lorsque le Mode est défini sur MultipleResult. Utilisez cette propriété pour définir la hauteur de la zone de texte Résoudre d’une taille donnée en unités de caractères.

  • MainSearchScreenText: il s’agit d’une propriété de type chaîne facultative. Il s’agit du texte personnalisé qui s’affiche pendant l’exécution de la recherche dans la fenêtre Parcourir.

Événements:

  • SelectedObjectChanged: cet événement est émis lorsque l’utilisateur modifie les ressources sélectionnées.

Exemple :

UocIdentityPicker control in SingleResult mode

Notes

Pour que cet exemple fonctionne, vous devez créer une liaison entre le nouvel attribut Gestionnaire et n’importe quel type de ressource personnalisé auquel s’applique ce document XML.

Le segment de code suivant génère un sélecteur d’identité en mode SingleResult en utilisant les propriétés Filter et ResultObjectType dans le cadre du configuration 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.-->

L’illustration suivante montre un sélecteur d’identité en mode MultipleResult :

UocIdentityPicker control in MultipleResult mode

Notes

Pour que cet exemple de code fonctionne, vous devez lier l’attribut ExplicitMember (un attribut à valeurs multiples de référence) au type de ressource personnalisé. Créez des étendues de recherche avec la propriété UsageKeyword définie sur person et Group.

Le segment de code suivant crée un sélecteur d’identité en mode 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

Nom: UocLabel

Description: il s’agit d’un contrôle d’étiquette de texte simple et en lecture seule. Nous recommandons l’utilisation de ce contrôle pour afficher des données en lecture seule.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • Text: il s’agit d’un attribut de type chaîne. Définissez cette propriété en fournissant une valeur de chaîne explicite ou en la liant à une source de données. Un exemple de liaison qui affecte la valeur de cette propriété est {Binding Source = Object, path = < nom d’attribut valide > .

Pour voir un exemple du contrôle UocLabel, consultez un contrôle simple dans la section Exemples de contrôles simples.

UocListView

Nom: UocListView

Description: il s’agit d’un contrôle d’affichage de liste avancé. Il se compose d’un affichage de liste simple, d’une recherche simple facultative, d’un contrôle de recherche avancé facultatif, d’une zone d’aperçu de sélections facultative et d’une barre de boutons d’action. La recherche simple facultative se compose d’une étendue de recherche et d’une zone de texte de recherche simple. Le contrôle de recherche avancé est un générateur de filtre. L’affichage de liste affiche une liste de ressources pré-affichée. Il peut également afficher les résultats de recherche en provenance des contrôles de recherche dans ce contrôle. La barre de boutons d’action définit quelle action peut être prise en fonction de la sélection dans l’affichage de liste. La zone Aperçu de la sélection affiche les éléments sélectionnés dans l’affichage de liste.

Important

UocListView ne fonctionne pas avec des attributs de référence à valeur unique. Il peut être utilisé uniquement avec les attributs de référence à valeurs multiples. Pour les attributs de référence à valeur unique, consultez UocIdentityPicker dans ce document.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • SelectedValue: il s’agit d’une propriété de type chaîne facultative qui est liée à un attribut de référence à valeurs multiples acceptant une liste de chaînes au format GUID.

  • PageSize: il s’agit d’une propriété de type entier facultative. L’utilisateur peut spécifier le nombre d’entrées qui tiennent dans une page d’un contrôle List View. La valeur par défaut est de 10 entrées. N’importe quel entier positif est valide.

  • UsageKeyword: il s’agit d’une propriété de type chaîne facultative. L’utilisateur peut spécifier une liste de mots clés qui définissent l’étendue de recherche utilisée dans le contrôle de recherche de l’affichage de liste. Il existe des ressources d’étendue de recherche dans le serveur FIM 2010. L’attribut d’une structure SearchScopeConfiguration, appelée UsageKeyword, est utilisé pour regrouper un ensemble d’étendues de recherche. L’affichage de liste utilise cette liste de mots clés. Chaque mot clé est séparé par une virgule (,). Il s’agit du mot clé d’utilisation utilisé dans l’étendue de recherche correspondante que vous souhaitez afficher dans cette vue liste. Il n’entre en vigueur que lorsque la propriété ShowSearchControl est définie sur true.

  • SearchControlAutoPostback: il s’agit d’une propriété booléenne facultative. Définissez la valeur de cette propriété sur true pour effectuer l’autopostback lorsqu’une recherche est déclenchée. Par défaut, SearchControlAutoPostback est défini sur false.

  • EmptyResultText: il s’agit d’une propriété de type chaîne facultative. Par défaut, elle est définie sur Aucun élément, mais elle peut être définie sur n’importe quelle valeur de chaîne. Ce texte s’affiche lorsqu’un résultat de recherche est vide.

  • ButtonHeight: il s’agit d’une propriété de type entier facultative. Définissez la valeur de cette propriété sur une valeur d’entier positive. Cette propriété définit la hauteur des boutons dans la barre d’actions en pixels. La valeur par défaut est 32 pixels.

  • ButtonWidth: il s’agit d’une propriété de type entier facultative. Définissez la valeur de cette propriété sur une valeur d’entier positive. Cette propriété définit la largeur des boutons dans la barre d’actions en pixels. La valeur par défaut est 32 pixels.

  • CaptionImageMaxHeight: il s’agit d’une propriété de type entier facultative. Définissez la valeur de cette propriété sur un entier positif. Cette propriété définit la hauteur maximale de l’icône d’une légende facultative. La valeur par défaut est 32 pixels.

  • CaptionImageMaxWidth: il s’agit d’une propriété de type entier facultative. Définissez la valeur de cette propriété sur un entier positif. Cette propriété définit la largeur maximale de l’icône d’une légende facultative. La valeur par défaut est 32 pixels.

  • CaptionImageUrl: il s’agit d’une propriété de type chaîne facultative. Cette propriété définit une URL liée à une image qui apparaît en tant qu’image de la légende.

  • PreviewTitle: il s’agit d’une propriété de type chaîne facultative. Cette propriété vous permet de définir le texte qui apparaît au-dessus de la zone d’aperçu de la sélection.

  • EnableSelection: il s’agit d’une propriété de type booléen facultative. Cette propriété vous permet de définir si un affichage de liste est en mode de sélection. Si un affichage de liste est en mode de sélection, une colonne de cases à cocher apparaît dans la colonne la plus à gauche de l’affichage de liste et une zone d’aperçu de sélection apparaît au bas de l’affichage de liste. La valeur par défaut de cette propriété est définie sur true.

  • SingleSelection: il s’agit d’une propriété de type booléen facultative. Si le mode de sélection est activé pour l’affichage de liste, définir la valeur sur true permet de limiter la possibilité de sélection de l’utilisateur final à un seul élément dans la liste. Par défaut, la valeur de cette propriété est définie sur false. Cela signifie que, par défaut, l’utilisateur final peut sélectionner plusieurs éléments dans la liste.

  • RedirectUrl: il s’agit d’une propriété de type chaîne facultative. Utilisez cette propriété pour spécifier une page de redirection lorsque vous cliquez sur un élément de lien hypertexte dans la liste. Cette URL peut contenir des espaces réservés qui sont remplacés par la valeur réelle lors de l’exécution. Les espaces réservés sont les suivants :

    • {0} objectType
    • {1} Arguments
    • {2} NomComplet
  • ShowTitleBar: il s’agit d’une propriété de type booléen facultative. Utilisez cette propriété pour spécifier si la barre de titres doit être visible. La valeur par défaut de cette propriété est false.

  • ShowActionBar: il s’agit d’une propriété de type booléen facultative. Utilisez cette propriété pour spécifier si la barre d’actions doit être visible. La valeur par défaut de cette propriété est true.

  • ShowPreview: il s’agit d’une propriété de type booléen facultative. Utilisez cette propriété pour spécifier si la zone d’aperçu doit être visible. La valeur par défaut de cette propriété est true.

  • ShowSearchControl: il s’agit d’une propriété de type booléen facultative. Utilisez cette propriété pour spécifier si le contrôle de recherche doit être visible. La valeur par défaut de cette propriété est true.

  • ResultObjectType: il s’agit d’une propriété de type chaîne facultative. Utilisez cette propriété pour spécifier le type d’objet attendu des résultats de recherche. La valeur par défaut de cette propriété est Ressource. Si le résultat de recherche contient plusieurs types de ressources, cette valeur doit être spécifiée en tant que Ressource.

  • ColumnsToDisplay: il s’agit d’une propriété facultative. Utilisez cette propriété pour spécifier les attributs que vous souhaitez voir afficher dans l’affichage de liste en tant que colonnes. La valeur par défaut de cette propriété est DisplayName, ResourceType. Chaque colonne est représentée par le nom du système d’un attribut. Chaque colonne est séparée par une virgule « , ». Il est inutile de spécifier une valeur pour cette propriété lorsque l’affichage de liste est utilisé en mode de sélection. En mode de sélection, le paramètre de la colonne provient de l’attribut SearchScopeColumn de l’étendue de recherche actuellement sélectionnée.

  • ListFilter: il s’agit d’une propriété de type chaîne facultative. Il s’agit de l’expression xpath utilisée pour afficher l’affichage de liste. Elle ne prend effet uniquement lorsque la propriété ShowSearchControl est définie sur false. Lorsque cette valeur est spécifiée, l’affichage de liste utilise cette valeur de propriété pour les requêtes et l’affichage de liste n’est pas en mode de sélection. Le filtre peut être lié à un attribut de chaîne de la ressource :

    <my:Property my:Name="ListFilter" my:Value="{Binding Source=object, Path=Filter}"/>

    ou être une chaîne qui contient une variable d’environnement prédéfinie :

    <my:Property my:Name="ListFilter" my:Value="/Approval[Request=''%ObjectID%'']"/>

  • TargetAttribute: il s’agit d’une propriété obsolète. Sa valeur doit être le nom du système d’un attribut référencé à valeurs multiples. Il est recommandé de plus utiliser cette propriété. Par exemple, dans la gestion de groupe, au lieu d’utiliser :

    <my:Property my:Name="TargetAttribute" my:Value="ExplicitMember"/>

    Utilisez :

    <my:Property my:Name=”ListFilter” my:Value=”/Group[ObjectID=’%ObjectID%’]/ExplicitMember”/>

  • ItemClickBehavior: il s’agit d’une propriété de type chaîne facultative. Utilisez cette propriété pour spécifier si vous souhaitez cliquer sur un élément d’affichage de liste pour déclencher une publication de serveur ou afficher une vue détaillée de l’élément. Deux valeurs d’option sont prises en charge : ModelessDialog et Serveur. La valeur par défaut est ModelessDialog.

  • SearchOnLoad: il s’agit d’une propriété de type booléen facultative qui spécifie si le contrôle List-View doit interroger le chargement. Cette propriété s’applique uniquement lorsque l’affichage de liste est en mode de sélection. La valeur par défaut de cette propriété est True. Vous pouvez la désactiver si vous désirez que l’utilisateur saisisse du texte dans la recherche pour obtenir un résultat significatif. Dans ce cas, l’affichage de liste présente initialement un message pour indiquer à l’utilisateur comment effectuer une recherche. Le texte peut être personnalisé par les propriétés suivantes :

  • MainSearchScreenText: cette propriété de type chaîne facultative est applicable uniquement lorsque SearchOnload a la valeur true. Cette propriété peut être utilisée pour personnaliser le texte qui apparaît au milieu de l’affichage de liste lorsque l’affichage de liste ne procède pas à une recherche automatique. La valeur par défaut de cette propriété est de rechercher les ressources à l’aide de la recherche, comme décrit précédemment. Vous pouvez spécifier une valeur pour rendre le texte mieux approprié à votre scénario.

  • SubSearchScreenText: cette propriété de type chaîne facultative est utilisée pour personnaliser le texte qui apparaît après la propriété MainSearchScreenText . En règle générale, il est inutile de spécifier une valeur pour cette propriété, sauf si vous souhaitez ajouter des instructions supplémentaires sur l’utilisation de l’affichage de liste.

Événements:

  • Il n’existe aucun événement pour ce contrôle.

Exemple :

Pour obtenir des exemples montrant comment utiliser l’affichage de liste avec le contrôle UocFilterBuilder sous forme de liste d’aperçu, consultez les exemples d’UocFilterBuilder plus haut dans ce document. L’UocListView peut également être utiliser sans le générateur de filtre.

UocNumericBox

Nom: UocNumericBox

Description: il s’agit d’une zone de texte simple qui accepte uniquement des valeurs entières. Ce contrôle prend en charge le mode lecture seule et le mode modifiable.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • MaxValue: il s’agit d’une propriété de type entier facultative. Utilisez cette propriété pour définir une validation côté client pour le contrôle. La valeur entrée par l’utilisateur final ne peut pas dépasser cette valeur. Vous pouvez entrer un entier explicite ou le lier à des données de type entier à partir d’une source de données à l’aide de {Binding source = Schema, path = IntegerMaximum}.

  • MinValue: il s’agit d’une propriété de type entier facultative. Utilisez cette propriété pour définir une validation côté client pour le contrôle. La valeur entrée par l’utilisateur final ne peut pas être inférieure à cette valeur. Vous pouvez entrer un entier explicite ou le lier à des données de type entier à partir d’une source de données à l’aide de {Binding source = Schema, path = IntegerMinimum}.

  • DefaultValue: il s’agit d’une propriété de type entier facultative. Utilisez cette propriété pour définir une valeur par défaut pour le contrôle si le contrôle est utilisé pour créer de nouvelles données. Cette valeur peut uniquement être définie explicitement sur un entier statique.

  • Valeur: il s’agit d’une propriété de type entier facultative. Lorsque vous la liez aux données de type entier depuis une source de données, la valeur de cet attribut apparaît lorsque la page est chargée, puis elle est enregistrée dans la source de données après envoi.

Événements:

  • TextChanged: cet événement est émis lorsque la valeur actuelle à l’intérieur du contrôle change.

Exemple :

UocNumericBox control

Notes

L’exemple de code suivant génère la première zone numérique. La zone numérique n’est pas connectée à une source de données ou toutes les informations de schéma.

<!--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.-->

L’exemple de code suivant génère la deuxième zone numérique.

Notes

Pour que cet exemple fonctionne, vous devez tout d’abord créer un nouvel attribut de type entier appelé AnIntegerAttribute et le lier au type de ressource personnalisé.

<!--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

Nom: UocPictureBox

Description: ce contrôle est utilisé pour restituer des images, des données de type binaire. Nous recommandons d’utiliser ce contrôle avec des données de type binaire. L’image peut être affichée par une URL d’image fournie, des données de type binaire ou la source de l’attribut qui contient des données de type image.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • ImageUrl: il s’agit d’une propriété de type chaîne facultative. Entrez l’URL de l’image cible.

  • MaxHeight: il s’agit d’une propriété de type chaîne facultative. Elle définit la hauteur maximale de l’image à afficher en pixels.

  • MaxWidth: il s’agit d’une propriété de type chaîne facultative. Elle définit la largeur maximale de l’image à afficher en pixels.

  • ImageData: il s’agit d’une propriété de type binaire. Cette propriété permet de lier une source de données à l’image affichée. La source de données liée doit être de type binaire. Vous pouvez également utiliser ce champ pour définir explicitement une image en fournissant des données dans un format d’octet[].

  • ImageResource: il s’agit d’une propriété de type binaire facultative.

  • AlternativeText: il s’agit d’une propriété de type chaîne facultative. Cette propriété s’affiche en tant que texte de remplacement lorsque l’image ne peut pas être affichée.

Événements:

  • Il n’existe aucun événement pour ce contrôle.

Exemple :

Notes

Pour utiliser cet exemple, vous devez disposer d’une donnée d’image existante lier au contrôle.

Le segment de code suivant génère un contrôle de zone d’image qui lie une source de données au contrôle :

<!--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-->

Le segment de code suivant génère un contrôle de zone d’image qui lie une image URL au contrôle :

<!--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

Nom: UocRadioButtonList

Description: il s’agit d’une liste de cases d’option simple. Les choix sont mutuellement exclusifs dans cette liste. Ce contrôle est recommandé lorsque les utilisateurs disposent de cinq options ou moins. Dans le cas contraire, UOCListView est recommandé.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • ValuePath: le chemin d’accès de la valeur est défini sur valeur. Il crée une liaison avec le champ de valeur de l’élément option, comme décrit dans cette section.

  • ValuePath: le chemin de la valeur est défini sur Caption. Il crée une liaison avec le champ Légende de l’élément option, comme décrit dans cette section.

  • HintPath: le chemin d’accès de la valeur est défini sur hint. Il crée une liaison avec le champ hint de l’élément option, comme décrit dans cette section.

  • SelectedValue: valeur actuellement sélectionnée. Il s’agit d’une propriété obligatoire, de type chaîne. Cette propriété est liée à des données de chaîne à partir de la source de données.

Événements:

  • SelectedIndexChanged: l’événement se produit lorsque la case d’option sélectionnée change.

  • CheckedChanged: lorsque la case d’option modifie son état, cet événement est émis.

Options :

Il ne peut y avoir que deux éléments options comme options pour ce contrôle. Pour connaître la structure d’un élément options , consultez élément options.

  • Valeur: le champ valeur d’un seul élément option doit avoir la valeur true ou false.

  • Caption: il peut s’agir de n’importe quelle valeur de chaîne.

  • Conseil: il peut s’agir de n’importe quelle valeur de chaîne.

Exemple :

UocRadioButtonList control

Notes

Pour que cet exemple fonctionne, vous devez créer un nouvel attribut booléen, ABooleanAttribute et le lier au type de ressource personnalisé.

Le segment de code suivant crée une liste de cases d’option :

<!--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

Nom: UocSimpleRadioButton

Description: il s’agit d’un contrôle simple et de bouton d’option. L’utilisation de ce contrôle est similaire à une simple case à cocher. Il existe deux cases d’option, côte à côte avec l’étiquette du texte. La liaison du contrôle aux données de type booléen est recommandée.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • TrueText: il s’agit d’une propriété de type chaîne facultative. Il s’agit du texte qui apparaît lorsque la case d’option est sélectionnée.

  • TexteFaux: il s’agit d’une propriété de type chaîne facultative. Il s’agit du texte qui apparaît lorsque la case d’option n’est pas sélectionnée.

  • SelectedItem: il s’agit d’une propriété de type booléen facultative. Cette valeur indique que la case d’option est sélectionnée. Cela peut être lier aux données de type booléen à partir d’une source de données. Par défaut, cette valeur est définie sur false.

Événements:

  • CheckedChanged: lorsque la case d’option passe de l’état sélectionné à désélectionné, ou à l’inverse, ce signal est émis.

Exemple :

UocSimpleRadioButton control

Notes

Pour que cet exemple fonctionne, vous devez créer un nouvel attribut booléen, ABooleanAttribute et le lier au type de ressource personnalisé. Les données de configuration RCDC sont appliquées au même type de ressource personnalisée.

Le segment de code suivant génère une case d’option :

<!--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

Nom: UocTextBox

Description: il s’agit d’une zone de texte simple qui prend en charge l’entrée de type chaîne. Nous vous recommandons d’utiliser ce contrôle pour lier aux données de type chaîne.

Propriétés :

  • Toutes les propriétés communes : pour plus d’informations sur ces propriétés, consultez Propriétés communes.

  • MaxLength: il s’agit d’un attribut de type entier facultatif. Cette propriété spécifie la longueur maximale d’une chaîne d’entrée. La valeur par défaut pour cette propriété est de 128 caractères.

  • Text: il s’agit d’une propriété de type chaîne facultative. Il s’agit du texte qui apparaît dans la zone de texte. Vous pouvez définir une chaîne explicite qui apparaît dans la zone de texte pendant le chargement initial du contrôle ou le lier à un attribut de schéma de type chaîne.

  • Lignes: il s’agit d’une propriété de type entier facultative. Cette propriété définit la hauteur de la zone de texte en unités de caractères. La valeur par défaut est un caractère.

  • Colonnes: il s’agit d’une propriété de type entier facultative. Cette propriété définit la largeur de la zone de texte en unités de caractères. La valeur par défaut est de 20 caractères.

  • Wrap: il s’agit d’une propriété de type booléen facultative. En définissant la valeur de cette propriété sur true, l’utilisateur active la fonctionnalité Inclusion dans un wrapper dans la zone de texte. La valeur par défaut de cette propriété est définie sur true.

  • UniquenessValidationXPath: il s’agit d’une propriété de type chaîne facultative. Elle prend une expression de filtre FIM XPath valide et garantit que la valeur entrée par l’utilisateur est unique dans les ressources qui sont dans l’étendue du filtre. Par exemple, pour vous assurer que l’utilisateur qui a demandé de nom d’affichage est unique au sein de tous les groupes de sécurité de messagerie dans la base de données du Service FIM, vous devrez utiliser le XPath /Group[DisplayName=’%VALUE%’ and Type=’MailEnabledSecurity’. L’action de validation est effectuée lorsque l’utilisateur quitte la page. Cette propriété est prise en charge uniquement dans la configuration RCDC pour la création d’une ressource.

  • UniquenessErrorMessage: il s’agit d’une propriété de type chaîne facultative. Cette chaîne est utilisée pour afficher un message d’erreur si la validation UniquenessValidationXPath échoue et peut être explicitement du texte ou une Variable de ressource de chaîne. Si cette propriété n’est pas spécifiée, le message d’erreur par défaut pour un échec de validation est « La %VALUE% existe déjà. Essayez-en une autre. »

Événements:

  • TextChanged: cet événement est émis lorsque le texte à l’intérieur de la zone de texte est modifié.

Exemple :

Consultez la section Exemples de contrôle simple pour un exemple complet de ce contrôle.


Annexe A : schéma XSD par défaut

cette section présente le schéma XSD complet pour tous les configurations rcdc par défaut fournis avec Microsoft Identity Manager 2016 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>

Annexe B : XSL résumé par défaut

cette section présente le langage XSL de résumé complet fourni avec Microsoft Identity Manager 2016 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,' ','&#160;')" 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>