Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le risorse di configurazione della visualizzazione del controllo delle risorse (RCDC) sono risorse definite dall'utente che è possibile usare per controllare la modalità di visualizzazione di altre risorse nell'archivio dati di Microsoft Identity Manager 2016 SP1 (MIM) nell'interfaccia utente all'utente finale. Ogni risorsa RCDC contiene un file di configurazione XML che è possibile modificare per aggiungere, modificare o rimuovere il testo dell'interfaccia utente e i controlli dell'interfaccia utente. Anche se MIM 2016 SP1 offre diverse risorse RCDC predefinite, è anche possibile creare risorse RCDC personalizzate per le risorse personalizzate. Per altre informazioni sull'uso dell'interfaccia utente RCDC nel portale FIM, vedere Introduzione alla configurazione e alla personalizzazione del portale FIM nella documentazione di FIM.
Problemi noti
Il valore predefinito in molti controlli RCDC non è supportato.
In questa versione, l'impostazione dei valori predefiniti nei controlli in un controllo risorsa non è supportata ad eccezione del controllo pulsante di opzione. È possibile risolvere questo problema per una casella a discesa specificando un valore predefinito che non è associato ad alcun valore per forzare l'utente a modificare la selezione. Per risolvere questo problema con altri controlli, è necessario usare un flusso di lavoro di autorizzazione per fornire un valore predefinito durante l'invio della richiesta.
Struttura di base
I dati XML per una risorsa RCDC sono costituiti da un singolo elemento ObjectControlConfiguration XML.
Nota
Per lo schema XSD completo, vedere Appendice A: Schema XSD predefinito.
Di seguito è riportato lo schema XSD per l'elemento 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'elemento ObjectControlConfiguration contiene gli elementi seguenti:
ObjectDataSource: questo elemento specifica il TypeName di una classe di origine dati usata dal controllo risorse (RC). Per una descrizione e la definizione dello schema, vedere la sezione Origini dati seguente in questo documento. Un elemento ObjectControlConfiguration può contenere fino a 32 nodi dell'elemento ObjectDataSource.
XmlDataSource: si tratta di una semplice origine dati usata più comunemente per specificare la progettazione di una pagina di riepilogo. Per una descrizione e la definizione dello schema, vedere la sezione Origini dati seguente in questo documento. Un elemento ObjectControlConfiguration: può contenere fino a 32 nodi dell'elemento XmlDataSource.
Pannello: l'amministratore può personalizzare il layout della pagina RCDC modificando gli elementi all'interno degli elementi Panel. Per altre informazioni, vedere la sezione Pannello più avanti in questo documento. Un elemento ObjectControlConfiguration deve avere un solo elemento Panel.
Eventi: gli amministratori non possono fornire code-behind personalizzati, questa funzionalità è limitata. Si tratta dell'evento che un pannello o un controllo può generare, in base a una modifica dello stato. Per altre informazioni, vedere la sezione Eventi più avanti in questo documento. Un elemento ObjectControlConfiguration può contenere facoltativamente un elemento Event. In generale, l'uso di eventi personalizzati non è supportato a meno che non venga sviluppato in modo specifico nei miglioramenti successivi.
Origini dati
Microsoft Identity Manager usa origini dati come modo per associare i dati ai componenti dell'interfaccia utente. Ciò consente di facilitare la separazione dei dati dal livello di presentazione. Esistono due tipi di origini dati nei dati di configurazione delle risorse RCDC: ObjectDataSource e XmlDataSource.
ObjectDataSources specificare una classe Microsoft .NET che fornisce i dati alla versione RC. È disponibile un set fisso di tipi disponibili di ObjectDataSources, a condizione che l'amministratore possa scegliere di utilizzare durante la creazione di RCDC.There is a fixed set of available types of ObjectDataSources provided that the administrator can choose to consume when authoring RCDCs.
XMLDataSources offrono un modo semplice per strutturare i dati basati su XML e possono essere usati dagli amministratori per fornire dati personalizzati. I dati XML devono essere specificati direttamente in RCDC, a meno che non si usi la struttura XML predefinita predefinita. La struttura XML predefinita viene utilizzata per generare pagine di riepilogo nella rc.
In RCDC è possibile associare queste origini dati agli attributi dei controlli dell'interfaccia utente specificati nel data center rcdc per generare l'interfaccia utente.
Elementi ObjectDataSource
Microsoft Identity Manager fornisce i tipi comuni di origine dati nella tabella seguente, disponibili per tutti i tipi di risorse (tranne dove indicato).
| NomeTipo | Descrizione | Associazione bidirezionale | Sintassi di associazione |
|---|---|---|---|
| PrimaryResourceObjectDataSource | Rappresenta la risorsa FIM 2010 creata, modificata o visualizzata. Il percorso nella stringa di associazione è il nome dell'attributo. Il tipo di risorsa viene specificato dall'attributo TargetObjectType del RCDC anziché dal rcdc. Attributo ConfigurationData. | Sì |
[AttributeName] valore dell'attributo dell'oggetto specificato dal nome. |
| PrimaryResourceDeltaDataSource | Questa origine dati compila il codice XML differenziale che confronta lo stato originale e lo stato corrente della risorsa FIM 2010. Il codice XML delta generato viene utilizzato dal controllo di riepilogo RC per eseguire il rendering dell'interfaccia utente per la richiesta inviata dall'utente. | NO |
DeltaXml Viene utilizzato con il controllo di riepilogo per visualizzare il delta. |
| PrimaryResourceRightsDataSource | Questa origine dati fornisce i diritti inline per ogni attributo della risorsa FIM 2010. In questo modo, rc può determinare in anticipo quali autorizzazioni dell'utente hanno su tale attributo e quindi eseguire il rendering dell'interfaccia utente per tale attributo in modo appropriato. | NO | [AttributeName] |
| SchemaDataSource | Questa origine dati può essere usata per accedere alle informazioni correlate allo schema, ad esempio nome visualizzato, descrizione, se l'attributo è necessario o meno, nonché informazioni sul tipo di risorsa. | NO |
[AttributeName].Required valore booleano che indica se l'attributo deve avere un valore valido. [AttributeName].DisplayNameString Valore che indica il nome visualizzato dell'associazione. [AttributeName].DescriptionString Valore che indica la descrizione dell'associazione. [AttributeName].StringRegexString valore che indica String Regex di un'associazione. [AttributeName].DisplayName [AttributeName].Description [AttributeName].IntegerValueMinimum [AttributeName].IntegerValueMaximum [AttributeName].LocalizedAllowedValues |
| DomainDataSource | Questa origine dati fornisce un'enumerazione dei domini, in base alle risorse di configurazione del dominio. Questa origine dati può essere usata solo in RCDC per le risorse di gruppo e le risorse utente. | Sì | Dominio |
Di seguito è riportato un esempio di frammento RCDC che associa tre origini dati al controllo UocTextBox per modificare l'attributo Description di un gruppo:
<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>
Elemento XMLDataSource
Usando un elemento XMLDataSource, è possibile specificare dati personalizzati che l'RCDC può utilizzare per una determinata risorsa. In questo caso, i dati XML devono essere specificati nel data center rcdc. In alternativa, questa origine dati può essere usata per fare riferimento a una struttura di dati XML predefinita per eseguire il rendering dell'interfaccia utente per le pagine di riepilogo. È possibile controllare il tipo di XMLDataSource da usare quando viene definito nel data center rcdc.
| NomeTipo | Descrizione | Associazione bidirezionale | Sintassi di associazione |
|---|---|---|---|
| XMLDataSource | L'origine dati rappresenta i dati XML. I dati possono essere in formati XSL o XSL incorporati:
|
NO |
Xpath[;namespaces]dove Xpath è un xpath XML valido per selezionare la nota richiesta, più spesso "/" (radice).
namespaces è un elenco facoltativo di stringhe prefix=URI. La stringa è delimitata da punti e virgola come richiesto per il funzionamento di Xpath rispetto al codice XML con spazio dei nomi. |
| ReferenceDeltaDataSource | L'origine dati rappresenta i delta degli attributi di riferimento multivalore. Viene usato solo in RCDC per Group e Set. Anche se l'origine dati non è limitata ai gruppi o ai set, è necessario apportare modifiche al codice nell'host RCDC per inviare tali delta. Attualmente, Group e Set sono gli unici host che riconoscono questa origine dati. |
Sì |
[AttributeName].Add dove [AttributeName] rappresenta un attributo di riferimento e i dati restituiti sono le aggiunte differenziali.
[AttributeName].Remove dove [AttributeName] rappresenta un attributo di riferimento e i dati restituiti sono le rimozioni differenziali. DeltaXml |
| RequestDetailsDataSource | L'origine dati rappresenta l'attributo RequestParameter degli oggetti Request. Il parametro imposta il numero massimo di valori di attributo da visualizzare per ogni attributo multivalore. Viene usato solo in RCDC per request. <my:ObjectDataSource my:TypeName="RequestDetailsDataSource" my:Name="requestDetails" my:Parameters="1000" /> |
NO | DeltaXml |
| RequestStatusDataSource | L'origine dati rappresenta il RequestStatusDetails attributo degli oggetti Request. Viene usato solo in RCDC per request. | NO | DeltaXml |
Per definire un'origine dati XML personalizzata, utilizzare il codice XML seguente:
<my:XmlDataSource my:Name="MyCustomData" >
%Insert custom, properly formatted XML data here%
</my:XmlDataSource>
Per usare il controllo di riepilogo predefinito XSL, definire l'origine dati come indicato di seguito:
<my:XmlDataSource my:Name="summaryTransformXsl" my:Parameters="Microsoft.IdentityManagement.WebUI.Controls.Resources.DefaultSummary.xsl" />
Se si crea un rcdc per un tipo di risorsa personalizzato, è possibile usare questo metodo per eseguire automaticamente il rendering di una pagina di riepilogo per tale risorsa personalizzata.
Di seguito è riportato un esempio di come creare una scheda di riepilogo in RCDC usando l'elemento PrimaryResourceDeltaDataSource con l'elemento XMLDataSource usando l'elemento XSL predefinito:
<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>
In alternativa, l'utente può sostituire l'elemento XmlDataSource specificato in precedenza con il formato seguente per definire un layout personalizzato di una pagina di riepilogo. Come riferimento, l'XSL di riepilogo FIM 2010 predefinito è incluso nell'Appendice B: XSL di riepilogo predefinito, più avanti in questo documento.
<my:XmlDataSource my:Name="summaryTransformXsl">
Insert valid XSL code here
</my:XmlDataSource>
Schema per le origini dati
Lo schema XSD seguente genera i due tipi di origini dati:
<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>
Elemento Evento
Un elemento Event definisce lo stato di modifica di un controllo. L'estendibilità di questa funzionalità è limitata perché non è possibile scrivere una funzione personalizzata (Handler) per definire il comportamento dopo l'attivazione di un evento. Lo stesso elemento Event può essere utilizzato nell'elemento Panel. Per altre informazioni, vedere la sezione Pannello più avanti in questo documento.
Di seguito è riportato lo schema XSD per l'elemento Event:
<xsd:element name="Events">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Event" minOccurs="1" maxOccurs="16"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Event">
xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Handler"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
Un Event è un elemento vuoto e ha gli attributi seguenti:
Nome: nome univoco di un evento. L'unico evento supportato nel ObjectControlConfiguration è l'evento Load. Questo evento viene attivato al primo caricamento della pagina.
gestore: nome univoco di un gestore. Quando viene attivato l'evento, in genere viene chiamato un metodo di programma per gestire la modifica dello stato del controllo. I casi seguenti non sono supportati:
- Rimozione di un gestore esistente da un controllo esistente.
- Creazione di un nuovo gestore.
- Collegamento di un gestore a un controllo esistente o nuovo.
Di seguito è riportato un esempio di un elemento Events:
<my:Events>
<my:Event my:Name="Load" my:Handler="OnLoad"/>
</my:Events>
Elemento Panel
L'elemento Panel è l'elemento principale in un layout RCDC. Di seguito è riportato lo schema XSD per l'elemento Panel:
<xsd:element name="Panel">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Grouping" minOccurs="1" maxOccurs="16"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:DisplayAsWizard"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:AutoValidate"/>
</xsd:complexType>
</xsd:element>
L'elemento Panel contiene un elemento ricorrente, Grouping. Per altre informazioni, vedere la sezione Raggruppamento in questo documento.
L'elemento Panel ha gli attributi seguenti:
Nome: nome del pannello. Si tratta di un attributo di tipo stringa obbligatorio.
DisplayAsWizard: questo attributo è attualmente deprecato. L'attributo VerbContext corrispondente in RCDC determina se il layout della risorsa è in modalità procedura guidata o in modalità tabulazione. Se è impostato su 0 (modalità di creazione), è anche in modalità procedura guidata. In caso contrario, è in modalità Tab. Per altre informazioni, vedere Introduzione alla configurazione e personalizzazione del portale FIM nella documentazione.
Caption: questo attributo è attualmente deprecato. L'utente può specificare didascalie per una pagina includendo un gruppo che contiene solo informazioni di intestazione. Per altre informazioni, vedere la sezione Raggruppamento in questo documento.
AutoValidate: attributo booleano facoltativo. Quando è impostata su true, la convalida viene attivata su ogni controllo nella scheda corrente. Per impostazione predefinita, se l'attributo non è presente, viene impostato su true. Può essere usato in combinazione con la proprietà RegularExpression. Per altre informazioni, vedere "RegularExpression" in una sezione successiva di questo documento.
Elemento di raggruppamento
L'elemento raggruppamento definisce il layout complessivo di un pannello. Funge da contenitore che raggruppa singoli controlli in sezioni e schede diverse. Di seguito è riportato lo schema XSD per l'elemento Grouping:
<xsd:element name="Grouping">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Help" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Control" minOccurs="1" maxOccurs="256"/>
<xsd:element ref="my:Events" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Description"/>
<xsd:attribute ref="my:Enabled"/>
<xsd:attribute ref="my:Visible"/>
<xsd:attribute ref="my:IsHeader"/>
<xsd:attribute ref="my:IsSummary"/>
</xsd:complexType>
</xsd:element>
Esistono tre tipi di elemento grouping:
raggruppamento di intestazioni: un raggruppamento di intestazioni è facoltativo. In un pannello di pannellopuò essere presente un solo raggruppamento di intestazioni. Un raggruppamento intestazione viene visualizzato sopra un pannello sotto forma di didascalia. In questo raggruppamento è possibile usare un solo UocCaptionControl. Per un esempio di raggruppamento di intestazioni, vedere la sezione Esempio.
raggruppamento di contenuto: è necessario almeno un raggruppamento di contenuto. In un pannello possono essere presenti più raggruppamenti di contenuto. Un raggruppamento di contenuto viene visualizzato come contenuto principale di una pagina RCDC. Ogni raggruppamento di contenuti viene visualizzato come scheda nello stesso pannello e può contenere da 1 a 256 controlli. Vedere la sezione Esempi per un esempio di raggruppamento di contenuto.
Riepilogo raggruppamento: un riepilogo raggruppamento è facoltativo. In un pannello può essere presente un solo raggruppamento riepilogo. Un raggruppamento riepilogo viene visualizzato come ultima scheda di un pannello. In un raggruppamento riepilogo è possibile usare un solo controllo UocHtmlSummary per visualizzare le modifiche apportate dall'utente prima di inviare una richiesta. Per un esempio di raggruppamento riepilogo, vedere la sezione Esempi.
Ogni tipo di raggruppamento contiene gli elementi seguenti:
guida: questo elemento fornisce il testo della Guida in una scheda. È anche possibile usarlo per aggiungere un collegamento a un file della Guida per la scheda .
Controls: per informazioni su questo elemento, vedere la sezione Control in questo documento. Ogni raggruppamento deve avere da 1 a 256 controlli inclusivi, a seconda del tipo di raggruppamento.
Eventi: per informazioni su questo elemento, vedere la sezione Eventi in questo documento. Ogni raggruppamento può, come opzione, avere un evento. Gli eventi supportati in un elemento Grouping sono i seguenti:
- BeforeLeave: questo evento viene attivato quando l'utente è pronto a lasciare una scheda in un raggruppamento di contenuto.
- AfterEnter: questo evento viene attivato quando l'utente è pronto per immettere una scheda in un raggruppamento di contenuto.
Un raggruppamento può contenere i sette attributi seguenti:
Nome: nome obbligatorio del raggruppamento. Il Nome deve essere univoco all'interno del pannello .
Caption: il caption viene visualizzato come didascalia dell'intestazione in un raggruppamento di intestazioni. Viene visualizzato come didascalia della scheda di un raggruppamento Contenuto o Riepilogo.
Description: un attributo stringa facoltativo, Description è funzionale solo quando viene usato in un raggruppamento di contenuto. Usare questo elemento per fornire all'utente finale alcuni dettagli sulle informazioni all'interno della stessa scheda.
Nota
Se questo attributo viene utilizzato in un raggruppamento riepilogo, il codice XML viene considerato non valido. Se questo attributo viene utilizzato in un raggruppamento di intestazioni, il codice XML viene considerato valido ma ignorato.
Abilitato: attributo booleano facoltativo, Enabled è impostato su true quando manca. Se Enabled è impostato su false, l'utente finale visualizza una scheda Disabilitata. Questo attributo è funzionale solo in un raggruppamento contenuto.
Nota
Se questo attributo viene utilizzato in un raggruppamento riepilogo, il codice XML viene considerato non valido. Se questo attributo viene utilizzato in un raggruppamento di intestazioni, il codice XML viene considerato valido ma ignorato.
Visibile: è possibile nascondere una scheda della pagina RCDC o l'intestazione impostando questo attributo su false. Per impostazione predefinita, questo attributo facoltativo di tipo Boolean è impostato su true. Questo attributo è funzionale solo in un raggruppamento di contenuto.
Nota
Quando è presente un solo raggruppamento di contenuto in un pannello, questa funzionalità non funziona. Quando in un pannello sono presenti più raggruppamenti di contenuti, si comporta come descritto in precedenza.
IsHeader: questo attributo è un attributo booleano facoltativo che definisce se il raggruppamento è un raggruppamento di intestazioni. Se questo attributo non viene specificato, viene impostato su false.
IsSummary: attributo booleano facoltativo che definisce se il raggruppamento è un raggruppamento Riepilogo. Se questo attributo non viene specificato, viene impostato su false.
Esempi di tipi di elementi di raggruppamento
Questa sezione contiene esempi per l'elemento Groupings.
Esempio: Raggruppamento intestazione
La figura seguente mostra un esempio di raggruppamento di intestazioni:
Il codice XML seguente genera un esempio di raggruppamento di intestazioni. Nel codice XML, il raggruppamento intestazione è l'area con il testo della didascalia "Raggruppamento intestazione di esempio".
<!--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-->
Esempio: Raggruppamento di contenuti
La figura seguente mostra un esempio di raggruppamento dei contenuti:
di raggruppamento dei contenuti
Il codice XML seguente genera un raggruppamento di contenuto di esempio. Nel codice XML il raggruppamento del contenuto è l'area con il testo della didascalia "Raggruppamento di contenuto di esempio".
<!--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-->
Esempio: Raggruppamento riepilogo
La figura seguente mostra un esempio di raggruppamento riepilogo:
Il codice XML seguente genera un esempio di raggruppamento riepilogo. Nel codice XML, il raggruppamento riepilogo è l'area con la didascalia "Raggruppamento riepilogo di esempio".
<!--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-->
Elemento Help
L'elemento della Guida può essere incluso in un elemento Grouping o Control come elemento facoltativo. Se viene usato in un raggruppamento, deve essere il primo elemento utilizzato. Fornisce informazioni testuali agli utenti finali per fornire informazioni accurate. Lo schema XSD seguente è relativo all'elemento Help:
<xsd:element name="Help">
<xsd:complexType>
<xsd:sequence/>
<xsd:attribute ref="my:HelpText"/>
<xsd:attribute ref="my:Link"/>
</xsd:complexType>
</xsd:element>
Il codice di esempio XML seguente genera un elemento Help:
<my:Help my:HelpText="Some Help Text for Group Basic Info" my:Link="03e258a0-609b-44f4-8417-4defdb6cb5e9.htm#bkmk_grouping_GroupingBasicInfo" />
Elemento Control
Un elemento Grouping contiene uno o più elementi Control. I controlli sono gli elementi principali di un RCDC. È possibile personalizzare l'elemento Grouping definendo i diversi elementi Control in esso contenuti. Lo schema XSD seguente è relativo all'elemento Control:
<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 elemento Control contiene gli elementi seguenti:
guida: questo elemento viene ignorato. Funziona solo in Raggruppamento.
CustomProperties: questo elemento non è supportato.
Options: questo elemento viene usato solo in combinazione con UocDropDownList o UocRadioButtonList Controls. Non funziona con altri controlli. Per la struttura di questo elemento, vedere la sezione Opzioni in questo documento. Per informazioni sull'uso delle opzioni da parte di un controllo, vedere la sezione Singoli controlli di questo documento.
Buttons: questo elemento viene usato solo in combinazione con il controllo UocListView. Non è funzionale per altri controlli. Per altre informazioni, vedere la sezione UocListView in questo documento.
Proprietà: questo elemento viene utilizzato in tutti i controlli per specificare comportamenti aggiuntivi di un controllo. Per informazioni su questo elemento, vedere la sezione Proprietà in questo documento.
Eventi: per la struttura di questo elemento, vedere la sezione Eventi più indietro in questo documento. Per vedere quali eventi vengono usati in un controllo, vedere la sezione Singoli controlli di questo documento.
Un elemento Control può contenere i 10 attributi seguenti:
Nome: nome del controllo. Il nome di un controllo deve essere univoco all'interno di ogni pannello. Si tratta di un attributo di tipo stringa obbligatorio.
TypeName: questo attributo specifica il tipo di controllo. Si tratta di un attributo di tipo stringa obbligatorio. Vedere la sezione Singoli controlli in questo documento per ogni nome di controllo.
Caption: è possibile usare questo attributo per includere una didascalia per il controllo. La didascalia è in genere il nome visualizzato dei dati visualizzati o immessi dal controllo. È possibile specificare in modo esplicito un valore per la didascalia o associarlo alle informazioni sul nome visualizzato dell'attributo dello schema. La didascalia viene visualizzata sul lato sinistro di un controllo di dimensioni normali. Se un controllo si estende a schermo intero, la didascalia viene visualizzata sul controllo. Si tratta di un attributo facoltativo di tipo stringa. Per informazioni su come associare un'origine dati con un attributo o un valore di proprietà, vedere la sezione Proprietà.
L'esempio seguente mostra come usare una didascalia in modo esplicito:
<my:Control my:Name="ExplicitAlias" my:TypeName="UocTextBox" my:Caption="Explicit Alias">…<my:Control/>Nell'esempio seguente viene illustrato come usare una didascalia con un'origine dati. Se è stato usato il modello per un'origine dati illustrata in precedenza in questo documento, l'origine dati è lo schema. È consigliabile associare displayName dell'attributo con un attributo Caption.
<my:Control my:Name="DynamicAlias" my:TypeName="UocTextBox" my:Caption="{Binding Source=schema, Path=Alias.DisplayName, Mode=OneWay}">…<my:Control/>Abilitato: attributo facoltativo di tipo booleano. Impostando questo valore di attributo su false, l'utente può disabilitare un controllo. Il valore predefinito è impostato su true.
Visible: attributo facoltativo di tipo booleano. È possibile usare questo attributo per nascondere l'intero controllo. Il valore predefinito è impostato su true.
Descrizione: usare questo attributo facoltativo di tipo stringa per includere una descrizione che consenta all'utente finale di comprendere cosa deve inserire nel controllo o cosa fa il controllo. È possibile specificare in modo esplicito un valore per la descrizione o associarlo alle informazioni sulla descrizione dell'attributo dello schema.
La descrizione viene visualizzata sul lato sinistro di un controllo di dimensioni normali sotto la didascalia. Se un controllo si estende a schermo intero, la descrizione viene visualizzata nella parte superiore del controllo sotto la didascalia. Per informazioni su come associare un'origine dati a un attributo o a un valore di proprietà, vedere la sezione Proprietà in questo documento.
Nell'esempio seguente viene illustrato come usare una descrizione in modo esplicito:
<my:Control my:Name="ExplicitAlias" my:TypeName="UocTextBox" my:Caption="Explicit Alias" my:Description="This is explicit description.">…<my:Control/>In questo esempio viene illustrato come usare una descrizione con un'origine dati. Se è stato usato il modello per un'origine dati illustrata in precedenza in questo documento, l'origine dati è schema. È consigliabile associare il Description dell'attributo con un attributo 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: questo attributo indica se il controllo si estende a schermo intero. Si tratta di un attributo di tipo booleano facoltativo. Il valore predefinito è impostato su false.
Nota
Gli attributi Caption e Description vengono disabilitati quando questo attributo è impostato su true. Usare il controllo UocLabel per fornire una didascalia per un controllo espanso.
hint: attributo facoltativo di tipo stringa. Il testo nell'attributo Hint consente all'utente finale di decidere che cos'è un input valido per il controllo. L'hint viene visualizzato sotto il controllo .
autoPostback: attributo facoltativo di tipo booleano. Il valore predefinito è false. Se impostato su false, l'aggiornamento della pagina potrebbe non aggiornare il controllo. Per informazioni su AutoPostback, cercare la proprietà del controllo dell'interfaccia utente di Microsoft ASP.NET con lo stesso nome.
RightsLevel: attributo facoltativo di tipo stringa. È possibile associare questo attributo solo con diritti inline con un'origine dati. Il controllo viene attivato o disabilitato dinamicamente in base ai diritti dell'utente. Per informazioni su come associare origini dati con un attributo o un valore di proprietà, vedere la sezione Proprietà in questo documento.
In questo esempio viene illustrato come usare un attributo RightsLevel con un'origine dati. Se è stato usato il modello per un'origine dati illustrata in precedenza in questo documento, l'origine dati è diritti. Usare il nome dell'attributo come Percorso.
Elemento Proprietà
È possibile usare un elemento property per personalizzare ulteriormente il comportamento di ogni controllo. Property è un elemento vuoto. Lo schema XSD seguente è relativo all'elemento 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>
Ogni proprietà ha i due attributi obbligatori seguenti:
Nome: questo attributo di tipo stringa è il nome univoco della proprietà. I controlli diversi hanno proprietà diverse. Esistono alcune proprietà comuni che possono essere usate da tutti i controlli. Per altre informazioni sui nomi disponibili per un determinato controllo, vedere le sezioni Proprietà comuni e Controlli singoli di questo documento.
Valore: valore della proprietà . Tipo di dati del valore dipendente dalla proprietà a cui è assegnata. Vedere la sezione seguente per il formato di valore consentito per proprietà specifiche.
Associa proprietà con contenuto dell'origine dati
Alcune proprietà possono essere associate a informazioni provenienti da un'origine dati. Usare il formato stringa seguente per impostare questa associazione. Per informazioni su come associare le proprietà a un'origine dati, vedere la descrizione delle singole proprietà nella sezione Singoli controlli di questo documento.
<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.
Il codice XML seguente illustra come associare un'origine dati a un elemento Property:
<my:Property my:Name="Text" my:Value="{Binding Source=object, Path=DisplayName, Mode=TwoWay}"/>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=DisplayName.Required}"/>
Proprietà comuni
Tutti i controlli RCDC specificati in questo documento possono avere le proprietà comuni descritte in questa sezione. È possibile utilizzare queste proprietà insieme ad altre proprietà specifiche di controlli diversi.
Obbligatorio: questa proprietà indica che il campo è un campo obbligatorio o un campo facoltativo. Un campo obbligatorio deve essere compilato con un valore. Un valore vuoto non è supportato per l'input stringa. Un campo facoltativo può essere lasciato vuoto. Se questo campo è un campo obbligatorio senza alcun valore compilato, viene visualizzato un messaggio di errore sopra il controllo di input. È possibile specificare in modo esplicito se un campo è obbligatorio o facoltativo. È anche possibile associare il campo con le informazioni sullo schema di una determinata associazione tra un attributo e un tipo di risorsa. Per impostazione predefinita, se questa proprietà non è presente, significa che il controllo è un controllo di input facoltativo.
Nell'esempio seguente viene usato un valore esplicito per questa proprietà:
<my:Property my:Name="Required" my:Value="True"/>Questo è un esempio che usa un'origine dati dinamica per questa proprietà. Se è stato usato il modello per un'origine dati illustrata nella sezione precedente di questo documento, l'origine dati è lo schema. Usare
<attribute name>.Requiredcome percorso.<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=DisplayName.Required}"/>ReadOnly: impostando questa proprietà su true, l'utente finale sperimenta il controllo in modalità di sola lettura. Si tratta di un attributo di tipo booleano facoltativo. Il valore predefinito è impostato su false. Tuttavia, a volte il comportamento di questa proprietà viene sovrascritto dal tipo di diritti di una persona sul data bind con il controllo . Ad esempio, se un utente non dispone dei diritti per aggiornare un campo e il campo è associato a diritti inline, l'utente visualizza i dati in modalità di sola lettura anche questa proprietà è impostata su false.
RegularExpression: questa proprietà specifica le restrizioni imposte al valore nel controllo. I formati di questo valore della proprietà sono i formati supportati nello standard .NET StringRegex. Per altre informazioni, vedere espressioni regolari di .NET Framework. Se il controllo viene utilizzato per immettere un valore, il valore viene controllato in base alla restrizione specificata in questa proprietà quando l'utente tenta di lasciare la pagina corrente. Il messaggio di errore viene visualizzato sopra il controllo con input non valido. L'utente può specificare in modo esplicito un'espressione regolare stringa. L'utente può anche associarlo alle informazioni sullo schema di un determinato attributo. Per impostazione predefinita, se questa proprietà non è presente, significa che il controllo non verifica alcuna restrizione per le stringhe di input.
Nell'esempio seguente viene usato un valore esplicito per questa proprietà:
<my:Property my:Name="RegularExpression" my:Value="[A-Z]*"/>Questo è un esempio che usa un'origine dati dinamica per questa proprietà. Se è stato usato il modello per un'origine dati illustrata in precedenza in questo documento, l'origine dati è lo schema. Usare il
<attribute name>.StringRegexcome percorso.<my:Property my:Name="RegularExpression" my:Value="{Binding Source=schema, Path=Alias.StringRegex, Mode=OneWay}"/>Visible: attributo facoltativo di tipo booleano. È possibile usare questo attributo per nascondere l'intero controllo. Il valore predefinito è impostato su true.
Elemento Options
L'elemento Options include uno o più sottonodi Option. L'elemento Options di viene utilizzato solo con i controlli UocRadioButtonList e UocDropDownList. Per informazioni dettagliate su come usare questi controlli, vedere la sezione Singoli controlli di questo documento.
Lo schema XSD seguente è relativo all'elemento 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'elemento Opzioni dispone degli attributi seguenti:
Valore: attributo obbligatorio di tipo stringa. L'attributo value deve essere univoco all'interno dello stesso controllo. È possibile usare solo caratteri da A a Z, senza distinzione tra maiuscole e minuscole.
Caption: questo attributo obbligatorio è il nome visualizzato di ogni opzione.
Hint: attributo facoltativo. Usare questo attributo per fornire altre informazioni e suggerimenti all'utente finale.
Variabili di ambiente
In qualsiasi configurazione RCDC è possibile usare le variabili di ambiente seguenti:
| Variabile | Descrizione |
|---|---|
<LoginID> |
Visualizza l'ID dell'utente attualmente connesso. |
<LoginDomain> |
Visualizza il dominio dell'utente attualmente connesso. |
<Today> |
Visualizza la data e l'ora correnti |
<FromToday_nnn> |
Visualizza la data corrente, più nnn e l'ora, dove nnn è un numero intero. |
<ObjectID> |
ID risorsa primaria RCDC. |
<Attribute_xxx> |
Restituisce un attributo specificato, xxx, della risorsa primaria RCDC. |
Eseguire il debug di file di configurazione XML
Quando si sviluppano o si modificano file di configurazione XML per un RCDC, è possibile ridurre gli errori convalidando il codice XML rispetto ai file XSD usando un editor come Microsoft Visual Studio. Per altre informazioni, vedere Introduzione agli strumenti XML in Visual Studio 2005.
Personalizzare i file della Guida
Se si creano nuove risorse e attributi, è possibile aggiornare i file della Guida esistenti nel portale FIM con contenuto per le risorse personalizzate. I file della Guida nel portale FIM sono in formato .htm e possono essere modificati manualmente. Per altre informazioni sulla creazione di attributi personalizzati, vedere Introduzione alla gestione personalizzata di risorse e attributi nella documentazione di FIM 2010.
Importante
Le informazioni di base relative alla formattazione o alla modifica del codice HTML non sono disponibili in questo articolo. Si prevede che gli utenti sappiano come modificare i file HTML.
Percorso dei file della Guida
Tutti i file della Guida per il portale di Microsoft Identity Manager 2016 SP1 si trovano nella cartella <ProgramFiles>\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Layouts\MSILM2\Help\1033\html nel server del servizio MIM.
Individuare un file della Guida specifico
Tutti i file della Guida per il portale FIM sono denominati con un identificatore univoco globale (GUID). Per individuare il file corretto per la risorsa personalizzata:
Nel portale FIM aprire il file della Guida nella pagina del portale che si vuole personalizzare.
Fare clic con il pulsante destro del mouse sul file della Guida e selezionare Proprietà.
Evidenziare e copiare il file di
<GUID\>.htmnel campo indirizzo URL.Passare alla cartella in cui sono archiviati i file della Guida e cercare il file.
Aggiungere contenuto per l'attributo nell'elemento Grouping esistente
Per aggiungere contenuto descrittivo per un nuovo attributo all'interno di un elemento Grouping esistente (scheda):
Identificare e individuare il file della Guida appropriato.
Usando un editor HTML, aprire il file.
Individuare la posizione in cui si vuole aggiungere il contenuto. In genere, si trova in un paragrafo aggiuntivo, ad esempio:
<p xmlns="">A new paragraph with customized information.</p>Può anche essere un elemento inserito in un elenco esistente, ad esempio:
<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>
Aggiungere contenuto per l'elemento Grouping esistente
La maggior parte delle pagine del portale FIM dispone di più elementi di raggruppamento (o schede) e le sezioni corrispondenti dei file della Guida hanno sezioni con segnalibro correlate a ogni elemento di raggruppamento. I segnalibri nel codice HTML vengono specificati nelle sezioni. Ad esempio, questo è il codice HTML per la scheda Informazioni di lavoro dal file della Guida per la pagina Crea utente nel portale FIM:
<a name="bkmk_grouping_WorkInfo" xmlns=""></a><h3 class="subHeading" xmlns="">Work Info</h3><p class="subHeading" xmlns=""></p><div class="subSection" xmlns="">
Fa riferimento all'elemento Grouping WorkInfo nel file XML dei dati di configurazione per la configurazione per la creazione dell'utente RCDC. Il nome file \<GUID\>.htm e il segnalibro vengono specificati nel parametro my:Link:
<my:Grouping my:Name="WorkInfo" my:Caption="%SYMBOL_WorkInfoTabCaption_END%" my:Enabled="true" my:Visible="true"> <my:Help my:HelpText="%SYMBOL_WorkInfoTabHelpText_END%" my:Link="5e18a08b-4b20-48b8-90c6-c20f6cbeeb44.htm#bkmk_grouping_WorkInfo"/>
Esempi di controlli semplici
In questa sezione vengono forniti esempi per la creazione di diversi controlli casella di testo semplici.
La figura seguente mostra alcuni semplici controlli casella di testo in modalità diverse:
Il segmento di codice seguente crea il primo controllo casella di testo, che usa testo esplicito per tutti gli attributi e le proprietà:
<!-- 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.-->
Il segmento di codice seguente crea il secondo controllo casella di testo, che usa la tecnica di associazione dinamica per collegare il controllo a un'origine dati diversa:
<!-- 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.-->
Il segmento di codice seguente crea il terzo controllo espanso etichetta e casella di testo:
<!-- 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.-->
Il segmento di codice seguente crea il quarto controllo casella di testo disabilitato. Anche se questo controllo non visualizza una differenza visibile tra lo stato disabilitato e lo stato abilitato, l'utente non può più immettere i dati nella casella di testo.
<!-- 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.-->
Singoli controlli
Questa sezione illustra i singoli controlli forniti con Microsoft Identity Manager 2016 SP1.
UocButton
nome : UocButton
Descrizione: si tratta di un semplice controllo pulsante che è possibile usare per attivare determinate azioni. Tuttavia, poiché non è possibile specificare il proprio gestore, l'uso di questo controllo è limitato.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
testo: questa proprietà specifica il testo visualizzato sul pulsante. Si tratta di un attributo facoltativo di tipo stringa. Il testo accetta un valore stringa esplicito.
eventi:
- OnButtonClicked: l'evento viene generato quando si fa clic sul pulsante.
Esempio:
Il segmento XML seguente produce un semplice pulsante di controllo UocButton:
<!--Sample enabled simple button control-->
<my:Control my:Name="ButtonControl" my:TypeName="UocButton" my:Caption="SampleButton" my:Description="This is a simple button."
my:Hint="Click the button">
<my:Properties>
<my:Property my:Name="Required" my:Value="True"/>
<my:Property my:Name="Text" my:Value="Click Me"/>
</my:Properties>
</my:Control>
<!--End of sample enabled simple button control -->
UocCaptionControl
Nome: UocCaptionControl
Descrizione: questo controllo viene usato per visualizzare la didascalia di una pagina RCDC. Questo controllo è progettato per essere utilizzato solo come controllo singolo in un raggruppamento di intestazioni. L'uso in qualsiasi altro contesto può causare problemi di rendering o errori del portale.
modalità: sola lettura (OneWay)
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
MaxHeight: Questa proprietà specifica l'altezza massima dell'icona nella sezione della didascalia. Questa proprietà è facoltativa. Questa proprietà accetta un valore intero in pixel. Il valore predefinito è 32 pixel.
eventi:
- Non sono presenti eventi per questo controllo.
Esempio:
Il segmento di codice seguente genera un Header Caption:
<!--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-->
Il segmento di codice seguente genera un didascalia di contenuto esplicito:
<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-->
Il segmento di codice seguente genera un nome visualizzato didascalia dinamica:
<!--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
nome: UocCheckBox
Descrizione: si tratta di un semplice controllo casella di controllo. È consigliabile associare questo controllo ai dati di tipo Boolean. Questo controllo può essere utilizzato come controllo di sola lettura o come controllo aggiornabile, in base ai dati a cui è associato.
Nota
In questa versione, quando si usa il controllo casella di controllo nella modalità di modifica per visualizzare un attributo booleano, se l'attributo non ha un valore assegnato in precedenza, il controllo risorse aggiunge un valore di false all'attributo quando OK viene fatto clic in modalità di modifica. La soluzione alternativa consiste nel creare sempre un attributo booleano che presuppone che la non esistenza sia uguale a falseo usare altri controlli, ad esempio un pulsante di opzione per gli attributi booleani.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
DefaultValue: proprietà facoltativa di tipo Boolean. Il valore predefinito è impostato su false. Questo campo specifica il comportamento predefinito di una casella di controllo. Questa opzione può essere specificata in modo esplicito.
Checked: proprietà facoltativa di tipo booleano. Il valore predefinito è impostato su false. Questo valore sovrascrive la proprietà DefaultValue quando è presente insieme a DefaultValue. Questo campo specifica il comportamento di una casella di controllo. Come DefaultValue, questo può essere specificato in modo esplicito o associato a dati dal server.
testo: attributo facoltativo di tipo stringa. Il testo viene visualizzato a destra della casella di controllo. È possibile utilizzare questa proprietà per specificare il testo che fornisce altre informazioni all'utente finale.
eventi:
- CheckedChanged: quando la casella di controllo cambia lo stato, questo evento viene generato.
Esempio:
Nell'esempio seguente viene creata un'associazione personalizzata tra il tipo di risorsa personalizzata e l'attributo IsConfigurationType. Il codice XML viene usato nel data center rcdc di un tipo di risorsa personalizzato.
Il segmento di codice seguente genera una casella di controllo dinamica , come illustrato come casella di controllo dinamica nella figura precedente. Questo tipo di associazione è più versatile e utile rispetto a una casella di controllo esplicita. L'attributo deve appartenere al tipo di risorsa corrente.
<!--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
nome : UocCommonMultiValueControl
Descrizione: controllo casella di testo su più righe che supporta la formattazione speciale delle stringhe. Ogni valore tra le voci multivalore è separato l'uno dall'altro da un punto e virgola (;) o un'interruzione di riga nella casella di testo. È consigliabile associare questo controllo ai dati di tipi multivalore, stringa breve e integer. Questo controllo supporta sia la modalità di sola lettura che la modalità aggiornabile.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
DataType: attributo di tipo stringa obbligatorio. È possibile specificare questo valore come tipo String, Integero dateTime in modo esplicito. È anche possibile associare l'attributo alla proprietà DataType dell'attributo dello schema. Un tipo Riferimento multivalore deve essere gestito da UOCListView o UOCIdentityPicker. Il tipo di dati Boolean multivalore non è supportato.
Righe: attributo facoltativo di tipo integer. È possibile definire l'altezza della casella in numero di caratteri. Il valore predefinito è impostato su 1.
Colonne: attributo facoltativo di tipo integer. È possibile definire il numero di caratteri di larghezza della casella. Il valore predefinito è impostato su 20.
Valore: attributo facoltativo di tipo stringa. È possibile associare questo attributo solo all'origine dati.
eventi:
- ValueListChanged: questo evento viene attivato quando cambia il valore corrente nel controllo.
Esempio:
Nell'esempio seguente viene creato un attributo stringa multivalore denominato AMultiValueString e associato al tipo di risorsa personalizzato. Questo esempio funziona solo dopo la creazione di questa associazione.
Il segmento di codice seguente genera un controllo 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
Nome: UocDateTimeControl
Descrizione: simile a un controllo casella di testo, ma Descrizione accetta solo un determinato formato. In modalità di sola lettura viene visualizzato come un'etichetta. Per il formato della stringa di input supportata, vedere la proprietà DateTimeFormat in questa sezione.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
DateTimeFormat: attributo facoltativo di tipo stringa. I formati supportati sono DateTime e DateOnly. Il valore predefinito è impostato sul formato DateTime.
DateTime: l'attributo è formattato come mm/gg/aaaa hh:mm:ss AM.
DateOnly: l'attributo è formattato come mm/gg/aaaa.
Nota
Sono supportati sia formati dateTime che DateOnly, indipendentemente dall'utente che specifica la differenza.
Valore: attributo facoltativo di tipo stringa. Questo attributo viene associato a un'origine dati della risorsa. Il valore di questo attributo deve essere conforme al formato datetime corretto.
eventi:
- DateTimeChanged: quando viene modificato il valore datetime, l'evento si verifica.
Esempio:
Il segmento di codice seguente produce il primo controllo 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 -->
Il segmento di codice seguente produce il secondo controllo DateTime. Se è stato usato il codice di esempio nella sezione Origini dati, l'attributo ExpirationTime è associato a tutti i tipi di risorse. Di conseguenza, è possibile usarlo con il codice seguente:
<!--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
Nome: UocDropDownList
Descrizione: si tratta di un semplice controllo casella di riepilogo a discesa. Questo controllo viene usato per selezionare le opzioni da un set definito di scelte. I tipi di dati stringa, integer, datetime e Boolean sono candidati validi per questo controllo.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
ValuePath: proprietà per ottenere l'attributo Value da ItemSource. Quando ItemSource viene specificato come Personalizzato, il percorso del valore viene impostato su Valore. Viene associato al campo Value dell'elemento Option, come descritto in questa sezione.
CaptionPath: proprietà per ottenere l'attributo Value da ItemSource. Quando ItemSource viene specificato come Personalizzato, il percorso del valore viene impostato su Caption. Viene associato al campo Caption dell'elemento Option, come descritto in questa sezione.
HintPath: proprietà per ottenere l'attributo Value da ItemSource. Quando ItemSource viene specificato come Personalizzato, il percorso del valore viene impostato su Hint. Viene associato al campo Hint dell'elemento Option, come descritto in questa sezione.
ItemSource: raccolta di ListControlItems che definisce le scelte nell'elenco. L'utente può impostarlo in modo esplicito su Custom e usare l'elemento Option, come descritto in questa sezione, per specificare il valore stringa.
SelectedValue: valore attualmente selezionato. Si tratta di una proprietà di tipo stringa obbligatoria. Questa proprietà è associata a dati stringa dall'origine dati.
eventi:
- SelectedIndexChanged: l'evento si verifica quando cambia la selezione nella casella di riepilogo a discesa.
Opzioni:
Per la struttura di un elemento Options di, vedere elemento Options.
Valore: il valore di un singolo elemento Options può essere impostato su qualsiasi stringa che rappresenta l'input valido dell'origine dati a cui viene associato il controllo.
Caption: la didascalia può essere qualsiasi valore stringa.
Hint: l'hint può essere qualsiasi valore stringa.
Esempio:
Nota
Per eseguire il funzionamento dell'esempio, è necessario associare un attributo di tipo stringa esistente Scope con il tipo di risorsa personalizzato a cui si applica rcDC.
Il segmento di codice seguente genera un elenco a discesa:
<!--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
Nome: UocFileDownload
Descrizione: questo controllo contiene un collegamento ipertestuale. Quando si fa clic sul collegamento ipertestuale, viene visualizzata una pagina Salva file di Windows. L'utente può salvare il file nell'unità locale. L'opzione Apri è supportata anche se Internet Explorer può eseguire il rendering del formato di file. I tipi di dati consigliati per l'utilizzo di questo controllo con sono stringhe formattate (XML) e tipi binari.
Nota
In questa versione di Microsoft Identity Manager 2016 SP1, l'utente deve chiudere la finestra di Internet Explorer in cui ha aperto il file e quindi aggiornare la pagina. Dopo aver aggiornato la finestra di Internet Explorer, l'utente può quindi avviare il download per salvare o aprire nuovamente lo stesso file nella finestra originale.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
testo: attributo facoltativo di tipo stringa che definisce il testo del collegamento ipertestuale. L'utente può specificare una stringa esplicita per questa proprietà.
Valore: attributo obbligatorio. Specifica l'associazione di attributi nel server il cui contenuto deve essere scaricato.
PromptedFileName: attributo facoltativo di tipo stringa. Si tratta del nome file suggerito all'utente quando salva il file scaricato.
ContentType: attributo di tipo stringa obbligatorio. Si tratta del tipo di file in cui vengono salvati i dati. Il testo o il file binario sono le due opzioni di stringa supportate. Se è testo, il valore restituito viene considerato come una stringa lunga. In caso contrario, per binario, il valore restituito viene considerato byte[]. Se il testo è selezionato, l'utente può, come opzione, aggiungere un suffisso per specificare il tipo di formato in cui si trova il testo. Ad esempio, text/xml è valido.
Nota
Quando il valore associato a questo controllo è vuoto, manca il collegamento ipertestuale da utilizzare per attivare l'azione di download. Questo perché non c'è niente da scaricare.
eventi:
- Non sono presenti eventi per questo controllo.
Esempio:
Nota
Prima di caricare questo file di esempio, l'utente deve creare un'associazione tra un tipo di risorsa personalizzato e l'attributo ConfigurationData esistente.
Il segmento di codice seguente genera un controllo di download di file:
<!--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
Nome: UocFileUpload
Descrizione: questo controllo contiene una casella di testo che visualizza il percorso del file locale da caricare, un pulsante sfoglia file e un pulsante di caricamento. Quando l'utente finale fa clic su un pulsante Sfoglia, viene visualizzata una finestra Apri file di Windows. L'utente finale può selezionare un file nell'unità locale da caricare. Quando il file è selezionato, il percorso del file viene visualizzato nella casella di testo. Quando si fa clic sul pulsante Carica, il file viene caricato nell'origine dati locale sul lato client. Il contenuto del file non è ancora stato inviato al server. I tipi di dati consigliati per usare questo controllo con sono i seguenti: stringhe formattate (XML) o tipi binari.
Nota
Non vi è alcuna indicazione dello stato o dello stato di avanzamento del caricamento. Quando il file viene caricato nell'origine dati locale, la casella di testo viene deselezionata.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
Valore: attributo obbligatorio. Specifica l'associazione di attributi dello schema nel server in cui vengono caricati i dati.
ContentType: attributo facoltativo di tipo stringa. Si tratta del tipo di dati in cui viene salvato il file nel server. Può essere impostato su Testo o Binario. Quando la proprietà è mancante, il valore predefinito è Binary.
MaxFileSize: attributo facoltativo di tipo stringa. MaxFileSize definisce la dimensione del file caricato. Per impostazione predefinita, se la proprietà è mancante, la dimensione massima è 1 megabyte (MB).
PromptedForNoValue: attributo facoltativo di tipo stringa. Definisce il testo visualizzato all'utente quando un file non viene caricato.
eventi:
- FileUploaded: questo evento viene generato quando il file viene caricato correttamente.
Esempio:
Nota
Per eseguire il codice di esempio seguente, è necessario creare un nuovo attributo di tipo binario denominato ABinaryAttribute e quindi creare una nuova associazione tra un tipo di risorsa personalizzato e questo attributo.
Il segmento di codice seguente genera un controllo di caricamento:
<!--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
nome : UocFilterBuilder
Descrizione: si tratta di un controllo complesso che consente all'utente di eseguire il rendering di un'espressione XPath MIM 2016. Alcune espressioni XPath non sono supportate. Per informazioni su come usare il generatore di filtri, vedere la Guida per il generatore di filtri.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
PermittedObjectTypes: definisce un elenco di tipi di risorse da visualizzare nell'istruzione select di un generatore di filtri. Per informazioni su come usare il generatore di filtri, vedere la Guida del generatore di filtri. La stringa è nel formato ResourceTypeA, ResourceTypeB, in cui ogni tipo di risorsa è separato da una virgola ','.
Valore: valore con cui viene eseguito il rendering del generatore di filtri. È supportata solo un'associazione con dati di tipo stringa che contiene un'espressione XPath. L'attributo Filter è un attributo consigliato per l'associazione di questo controllo.
PreviewButtonVisible: proprietà facoltativa di tipo Boolean. Quando questa proprietà è impostata su false, l'utente non visualizza un pulsante Anteprima. Il valore predefinito è impostato su true. Questo pulsante può essere usato in combinazione con un controllo visualizzazione elenco per visualizzare in anteprima i risultati di un'espressione XPath.
ExcludeGroupMembership: proprietà booleana. Quando questa proprietà è impostata su true, non è possibile creare un filtro che utilizza <> attributo riferimento (ad esempio, ResourceID) è membro di <oggetto Group>. In altre parole, quando questa proprietà è impostata su true, non è possibile creare un filtro che usa la directory di appartenenza al gruppo.
PreviewButtonCaption: stringa facoltativa. Quando PreviewButtonVisible è impostato su true, è possibile usare questa proprietà per assegnare al pulsante un testo personalizzato. Il testo viene visualizzato nel pulsante Anteprima.
eventi:
- OnFilterChanged: questo evento viene attivato quando cambia il contenuto del generatore di filtri.
Esempio:
Il codice di esempio seguente include un controllo UOCLabel, un semplice generatore di filtri con PermittedObjectTypes e una visualizzazione elenco di anteprima. Puntare la proprietà ListFilter della visualizzazione elenco e la proprietà Value del generatore di filtri allo stesso attributo dell'origine dati per collegare i due.
Nota
Prima di usare questo codice di esempio, creare una nuova associazione tra un attributo Filter esistente e un tipo di risorsa personalizzato.
<!--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
Nome: UocHtmlSummary
Descrizione: è possibile usare questo controllo per definire una pagina di riepilogo in una pagina RCDC. Questa pagina di riepilogo viene visualizzata dopo che l'utente finale invia una richiesta. Questo controllo può essere utilizzato solo in un raggruppamento riepilogo e deve essere l'unico controllo. È consigliabile usare il codice di esempio fornito.
Nota
Questo controllo non è stato testato in modo approfondito.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
ModificheXml: questa proprietà deve essere formattata come {Binding Source=delta, Path=DeltaXml}, dove delta è definito nell'intestazione di configurazione ObjectDataSource.
TransformXsl: questa proprietà è formattata come {Binding Source=summaryTransformXsl, Path=/}, dove summaryTransformXsl è definito nell'intestazione di configurazione XmlDataSource.
eventi:
- Non sono presenti eventi per questo controllo.
Esempio:
Per un esempio di questo controllo, vedere l'esempio relativo a un raggruppamento riepilogo nella sezione Grouping element di questo documento.
UocHyperLink
Nome: UocHyperLink
Descrizione: si tratta di un semplice controllo collegamento ipertestuale. È possibile utilizzare questo controllo per visualizzare le informazioni come collegamento ipertestuale.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
ObjectReference: proprietà facoltativa di tipo riferimento. Se viene fatto riferimento a una risorsa valida dal GUID definito in questa proprietà, il collegamento ipertestuale fornisce all'utente finale un modo per accedere alla risorsa. Questa operazione si escludono a vicenda con la proprietà NavigateUrl.
testo: proprietà facoltativa di tipo stringa. Utilizzare questa proprietà per definire il testo visualizzato come collegamento ipertestuale.
NavigateUrl: proprietà facoltativa di tipo stringa. Utilizzare questa proprietà per definire l'URL del percorso completo a cui si collega il collegamento ipertestuale. Questa operazione si escludono a vicenda con la proprietà ObjectReference.
eventi:
- Non sono presenti eventi per questo controllo.
Esempio:
Nota
Per collegarlo è necessario un GUID valido di una risorsa. In questo caso, il secondo collegamento ipertestuale viene generato con un GUID valido. Il primo può essere qualsiasi sito Web.
Il segmento di codice seguente genera un collegamento ipertestuale di reindirizzamento:
<!--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-->
Il segmento di codice seguente genera un collegamento ipertestuale che fa riferimento a una risorsa. Il riferimento esplicito può essere sostituito dall'espressione {Binding Source=object, Path=Creator} per associarlo a un'origine dati. Può essere valida solo quando il gestore della risorsa esiste ed è di tipo riferimento.
<!--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
Nome: UocIdentityPicker
Descrizione: questo controllo è costituito da una casella di risoluzione facoltativa e da una finestra Sfoglia. La casella facoltativa Risolvi è costituita da una casella di testo facoltativa per immettere l'identità, un pulsante Risolvi per risolvere l'identità e un pulsante Sfoglia per richiedere una finestra sfoglia popup. La finestra Sfoglia consente all'utente di selezionare le identità tramite un controllo visualizzazione elenco. L'identità selezionata dalla finestra Sfoglia si riflette nella casella Risolvi.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
UsageKeywords: si tratta di una proprietà stringa facoltativa. È possibile definire un elenco di ambiti di ricerca da usare in Selezione risorse specificando un elenco delle parole chiave di utilizzo supportate dalla struttura SearchScopeConfiguration, in cui ogni parola chiave è separata da un apostrofo (').
Filtro: proprietà stringa facoltativa. L'utente fornisce un'espressione XPath per definire l'ambito della selezione risorse per visualizzare solo gli elementi che rientrano in un ambito definito. Questa proprietà si escludono a vicenda con la proprietà UsageKeywords. Quando viene applicato l'ambito di ricerca, questa proprietà non ha alcun effetto.
ResultObjectType: proprietà stringa facoltativa. Il tipo di risorsa viene usato per eseguire il rendering delle risorse nell'elenco della finestra di dialogo popup. Viene usato con il filtro per consentire alla selezione identità di identificare il tipo di risorsa restituito dal filtro ed eseguire il rendering dei dati di conseguenza. Questa proprietà si escludono a vicenda con la proprietà UsageKeywords. Quando viene applicato l'ambito di ricerca, questo non ha alcun effetto. La stringa accettata per questa proprietà è qualsiasi nome singolo, valido e di tipo risorsa, ad esempio Person. Quando si prevede che il filtro restituisca più tipi di risorse, viene usata la risorsa.
PreviewTitle: questo è il titolo di anteprima usato in una visualizzazione elenco. Per informazioni su questa proprietà, vedere la sezione UocListView.
ListViewTitle: proprietà stringa facoltativa. È possibile utilizzare questa proprietà per definire il testo visualizzato nella parte superiore della visualizzazione elenco come titolo.
Valore: proprietà stringa facoltativa. È consigliabile associarlo a un attributo dello schema per connettere il valore a un'origine dati.
Modalità: proprietà stringa facoltativa. Usare questa proprietà per definire se è possibile selezionare un valore tramite Selezione identità o più identità. SingleResult e MultipleResult sono i valori consentiti. Per impostazione predefinita, è impostato su SingleResult.
ObjectTypes: proprietà facoltativa di tipo stringa. È possibile definire un elenco di tipi di risorse in base ai quali l'utente finale può risolvere le voci nella casella Risoluzione selezione identità. L'elenco è costituito da un elenco di nomi di tipi di risorse separati da una virgola ','.
AttributesToSearch: proprietà facoltativa di tipo stringa. È possibile definire un elenco di attributi da usare per risolvere l'elemento in Selezione identità, dove l'elenco è un elenco di attributi dello schema, separati da una virgola ','. Ad esempio, se AttributesToSearch è impostato su
DisplayName, Alias, l'utente può cercare gli elementi conDisplayName = \<search value\>oAlias=\<search value\>. I nomi degli attributi immessi qui devono essere attributi validi per i tipi di risorse di destinazione dell'origine dati specificata nella proprietà Value. I tipi di risorse di destinazione sono disponibili nel campo ObjectTypes. Tutti gli attributi devono essere validi per qualsiasi tipo di risorsa specificato citato nel campo ObjectTypes.ColumnsToDisplay: proprietà facoltativa di tipo stringa. L'utente fornisce un elenco di nomi di attributi dello schema, separati da una virgola ','. Gli attributi definiti qui costituiscono la colonna della visualizzazione elenco in Selezione identità.
Righe: proprietà facoltativa integer. Funziona solo quando la modalità è impostata su MultipleResult. Utilizzare questa proprietà per impostare l'altezza della casella di testo Risolvi su una determinata dimensione in unità carattere.
MainSearchScreenText: proprietà facoltativa di tipo stringa. Si tratta del testo personalizzato visualizzato mentre la ricerca è in esecuzione nella finestra Sfoglia.
eventi:
- SelectedObjectChanged: questo evento viene generato quando l'utente modifica le risorse selezionate.
Esempio:
Nota
Affinché questo esempio funzioni, è necessario creare una nuova associazione tra l'attributo Manager e qualsiasi tipo di risorsa personalizzato a cui si applica questo codice XML.
Il segmento di codice seguente genera una selezione identità in modalità SingleResult usando le proprietà Filter e ResultObjectType come parte del 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.-->
La figura seguente mostra una selezione identità in modalità MultipleResult:
Nota
Per far funzionare questo codice di esempio, è necessario associare l'attributo ExplicitMember (un attributo di riferimento multivalore) al tipo di risorsa personalizzato. Creare ambiti di ricerca con la proprietà UsageKeyword impostata su Person e Group.
Il segmento di codice seguente crea un selettore identità in modalità 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
Nome: UocLabel
Descrizione: si tratta di un semplice controllo etichetta di sola lettura e di testo. È consigliabile usare questo controllo per visualizzare i dati di sola lettura.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
text: attributo di tipo stringa. Questa proprietà viene definita specificando un valore stringa esplicito o associandolo a un'origine dati. Un'associazione di esempio che assegna il valore di questa proprietà è {Binding Source=object, Path=<nome di attributo valido>.
Per un esempio del controllo UocLabel, vedere controllo semplice nella sezione Esempi di controlli semplici.
UocListView
Nome: UocListView
Descrizione: si tratta di un controllo di visualizzazione elenco avanzato. È costituito da una visualizzazione elenco semplice, una ricerca semplice facoltativa, un controllo di ricerca avanzato facoltativo, una casella di anteprima della selezione facoltativa e una barra dei pulsanti azione. La ricerca semplice facoltativa è costituita da un ambito di ricerca e da una semplice casella di testo di ricerca. Il controllo di ricerca avanzato è un generatore di filtri. La visualizzazione elenco mostra un elenco prerenderato di risorse. Può anche visualizzare i risultati della ricerca provenienti dai controlli di ricerca in questo controllo. La barra pulsante azione definisce l'azione che può essere eseguita in base alla selezione nella visualizzazione elenco. La casella Anteprima selezione mostra gli elementi selezionati nella visualizzazione elenco.
Importante
UocListView non funziona con attributi di riferimento a valore singolo. Può essere usato solo con attributi di riferimento multivalore. Per gli attributi di riferimento a valori singoli, vedere UocIdentityPicker in questo documento.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
SelectedValue: proprietà facoltativa di tipo stringa associata a un attributo di riferimento multivalore che accetta un elenco di stringhe in formato GUID.
PageSize: proprietà integer facoltativa. L'utente può specificare il numero di voci incluse in una pagina in un controllo visualizzazione elenco. Il valore predefinito è 10 voci. Qualsiasi numero intero positivo è valido.
UsageKeyword: proprietà facoltativa di tipo stringa. L'utente può specificare un elenco di parole chiave che definiscono l'ambito di ricerca usato nel controllo di ricerca della visualizzazione elenco. Nel server FIM 2010 sono disponibili risorse di ambito di ricerca. L'attributo in una struttura SearchScopeConfiguration, denominata UsageKeyword, viene usato per raggruppare un set di ambiti di ricerca. La visualizzazione elenco utilizza tale elenco di parole chiave. Ogni parola chiave è separata da una virgola (,). Questa è la parola chiave di utilizzo usata nell'ambito di ricerca corrispondente che si desidera visualizzare in questa visualizzazione elenco. Questo vale solo quando la proprietà ShowSearchControl è impostata su true.
SearchControlAutoPostback: proprietà booleana facoltativa. Impostare il valore di questa proprietà su true per eseguire il postback automatico quando viene attivata una ricerca. Per impostazione predefinita, SearchControlAutoPostback è impostato su false.
EmptyResultText: proprietà facoltativa di tipo stringa. Per impostazione predefinita, è impostato su Nessun elemento, ma può essere impostato su qualsiasi valore stringa. Questo testo viene visualizzato quando un risultato della ricerca è vuoto.
ButtonHeight: proprietà facoltativa di tipo integer. Impostare il valore di questa proprietà su qualsiasi valore intero positivo. Questa proprietà definisce l'altezza dei pulsanti nella barra delle azioni in pixel. Il valore predefinito è 32 pixel.
ButtonWidth: proprietà facoltativa di tipo integer. Impostare il valore di questa proprietà su qualsiasi valore intero positivo. Questa proprietà definisce la larghezza dei pulsanti nella barra delle azioni in pixel. Il valore predefinito è 32 pixel.
CaptionImageMaxHeight: proprietà facoltativa di tipo integer. Impostare il valore di questa proprietà su qualsiasi numero intero positivo. Questa proprietà definisce l'altezza massima dell'icona di una didascalia facoltativa. Il valore predefinito è 32 pixel.
CaptionImageMaxWidth: proprietà facoltativa di tipo integer. Impostare il valore di questa proprietà su qualsiasi numero intero positivo. Questa proprietà definisce la larghezza massima dell'icona di una didascalia facoltativa. Il valore predefinito è 32 pixel.
CaptionImageUrl: proprietà facoltativa di tipo stringa. Questa proprietà definisce un URL che collega a un'immagine visualizzata come immagine della didascalia.
PreviewTitle: proprietà facoltativa di tipo stringa. Utilizzare questa proprietà per definire il testo visualizzato nella parte superiore della casella di anteprima della selezione.
EnableSelection: proprietà facoltativa di tipo booleano. Utilizzare questa proprietà per definire se una visualizzazione elenco è in modalità di selezione. Se una visualizzazione elenco è in modalità di selezione, viene visualizzata una colonna di caselle di controllo nella colonna più a sinistra della visualizzazione elenco e viene visualizzata una casella di anteprima selezione nella parte inferiore della visualizzazione elenco. Il valore predefinito di questa proprietà è impostato su true.
SingleSelection: proprietà facoltativa di tipo booleano. Se la modalità di selezione è attivata per la visualizzazione elenco, l'impostazione di questo valore su true limita l'utente finale a selezionare un solo elemento dall'elenco. Per impostazione predefinita, il valore di questa proprietà è impostato su false. Ciò significa che, per impostazione predefinita, l'utente finale può selezionare più elementi dall'elenco.
RedirectUrl: proprietà facoltativa di tipo stringa. Utilizzare questa proprietà per specificare una pagina a cui reindirizzare quando viene fatto clic su un elemento con collegamento ipertestuale nell'elenco. Questo URL può contenere segnaposto sostituiti con il valore effettivo durante il runtime. I segnaposto sono i seguenti:
- {0} objectType
- {1} objectID
- {2} displayName
ShowTitleBar: proprietà facoltativa di tipo booleano. Utilizzare questa proprietà per specificare se la barra del titolo deve essere visibile. Il valore predefinito di questa proprietà è false.
ShowActionBar: proprietà facoltativa di tipo Boolean. Utilizzare questa proprietà per specificare se l'area della barra delle azioni deve essere visibile. Il valore predefinito di questa proprietà è true.
ShowPreview: proprietà facoltativa di tipo booleano. Utilizzare questa proprietà per specificare se l'area di anteprima deve essere visibile. Il valore predefinito di questa proprietà è true.
ShowSearchControl: proprietà facoltativa di tipo Boolean. Utilizzare questa proprietà per specificare se il controllo di ricerca deve essere visibile. Il valore predefinito di questa proprietà è true.
ResultObjectType: proprietà facoltativa di tipo stringa. Utilizzare questa proprietà per specificare il tipo di oggetto previsto dei risultati della ricerca. Il valore predefinito di questa proprietà è Resource. Se il risultato della ricerca contiene più tipi di risorse, questo valore deve essere specificato come Risorsa.
ColumnsToDisplay: proprietà facoltativa. Utilizzare questa proprietà per specificare gli attributi da visualizzare come colonne nella visualizzazione elenco. Il valore predefinito di questa proprietà è DisplayName, ResourceType. Ogni colonna è rappresentata dal nome di sistema di un attributo. Ogni colonna è separata da una virgola ','. Non è necessario specificare un valore per questa proprietà quando la visualizzazione elenco viene utilizzata in modalità di selezione. In modalità di selezione, l'impostazione della colonna deriva dall'attributo SearchScopeColumn dell'ambito di ricerca attualmente selezionato.
ListFilter: proprietà facoltativa di tipo stringa. Si tratta dell'xpath utilizzato per eseguire il rendering della visualizzazione elenco ed è attivo solo quando la proprietà ShowSearchControl è impostata su false. Quando si specifica questo valore, la visualizzazione elenco utilizza questo valore della proprietà per le query e la visualizzazione elenco non è in modalità di selezione. Il filtro può essere associato a un attributo stringa della risorsa:
<my:Property my:Name="ListFilter" my:Value="{Binding Source=object, Path=Filter}"/>o essere una stringa che contiene alcune variabili di ambiente predefinite:
<my:Property my:Name="ListFilter" my:Value="/Approval[Request=''%ObjectID%'']"/>TargetAttribute: proprietà obsoleta. Il valore deve essere il nome di sistema di un attributo a cui si fa riferimento multivalore. È consigliabile non usare più questa proprietà. Ad esempio, nella gestione dei gruppi, invece di usare:
<my:Property my:Name="TargetAttribute" my:Value="ExplicitMember"/>Uso:
<my:Property my:Name=”ListFilter” my:Value=”/Group[ObjectID=’%ObjectID%’]/ExplicitMember”/>ItemClickBehavior: proprietà facoltativa di tipo stringa. Utilizzare questa proprietà per specificare se si desidera che il clic su un elemento della visualizzazione elenco attivi un postback del server o che visualizzi una visualizzazione dettagli dell'elemento. Sono supportati due valori di opzione: ModelessDialog e Server. Il valore predefinito è ModelessDialog.
SearchOnLoad: proprietà facoltativa di tipo booleano che specifica se il controllo visualizzazione elenco deve eseguire query al caricamento. Questa proprietà è applicabile solo quando la visualizzazione elenco è in modalità di selezione. Il valore predefinito per questa proprietà è true. È possibile disattivarla se si prevede che l'utente in genere digita il testo nella ricerca per ottenere un risultato significativo. In questo caso, la visualizzazione elenco mostra inizialmente un messaggio per indicare all'utente come eseguire una ricerca. Il testo può essere personalizzato in base alle proprietà seguenti:
MainSearchScreenText: questa proprietà facoltativa di tipo stringa è applicabile solo quando SearchOnload è impostato su true. Questa proprietà può essere utilizzata per personalizzare il testo visualizzato al centro della visualizzazione elenco quando la visualizzazione elenco non esegue automaticamente la ricerca. Il valore predefinito per questa proprietà consiste nel trovare le risorse usando la ricerca, come descritto in precedenza. È possibile specificare un valore per rendere il testo più pertinente allo scenario.
SubSearchScreenText: questa proprietà facoltativa di tipo stringa viene usata per personalizzare il testo visualizzato dopo la proprietà MainSearchScreenText. In genere, non è necessario specificare un valore per questa proprietà, a meno che non si voglia aggiungere altre istruzioni su come utilizzare la visualizzazione elenco.
eventi:
- Non sono presenti eventi per questo controllo.
Esempio:
Per esempi di come usare la visualizzazione elenco insieme al controllo UocFilterBuilder come elenco di anteprima, vedere gli esempi di UocFilterBuilder più indietro in questo documento. UocListView può essere usato anche senza il generatore di filtri.
UocNumericBox
nome : UocNumericBox
Descrizione: si tratta di una semplice casella di testo che accetta solo valori interi. Questo controllo supporta sia la modalità di sola lettura che la modalità aggiornabile.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
MaxValue: proprietà facoltativa di tipo integer. Utilizzare questa proprietà per definire una convalida lato client per il controllo . Il valore immesso dall'utente finale non può superare questo valore. È possibile immettere un numero intero esplicito o associarli a dati integer da un'origine dati usando {Binding Source=schema, Path=IntegerMaximum}.
MinValue: proprietà facoltativa di tipo integer. Utilizzare questa proprietà per definire una convalida lato client per il controllo . Il valore immesso dall'utente finale non può essere inferiore a questo valore. È possibile immettere un numero intero esplicito o associarli a dati interi da un'origine dati usando {Binding Source=schema, Path=IntegerMinimum}.
DefaultValue: proprietà facoltativa di tipo integer. Utilizzare questa proprietà per definire un valore predefinito per il controllo se il controllo viene utilizzato per creare nuovi dati. Questo valore può essere impostato in modo esplicito solo su un numero intero statico.
Valore: proprietà facoltativa di tipo integer. Quando si associa questo oggetto a dati di tipo integer da un'origine dati, il valore di tale attributo viene visualizzato quando la pagina viene caricata e quindi viene salvata nell'origine dati dopo l'invio.
eventi:
- TextChanged: questo evento viene generato quando cambia il valore corrente all'interno del controllo.
Esempio:
Nota
Il codice di esempio seguente genera la prima casella numerica. La casella numerica non è connessa a un'origine dati o a informazioni sullo schema.
<!--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.-->
Il codice di esempio seguente genera la seconda casella numerica.
Nota
Per il funzionamento di questo esempio, è prima necessario creare un nuovo attributo di tipo integer denominato AnIntegerAttribute e associarlo al tipo di risorsa personalizzato.
<!--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
nome : UocPictureBox
Descrizione: questo controllo viene usato per eseguire il rendering di dati di tipo binario e immagine. È consigliabile usare questo controllo con dati di tipo binario. Il rendering dell'immagine può essere eseguito tramite un URL dell'immagine specificato, dati di tipo binario o l'origine dell'attributo che contiene dati di tipo immagine.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
ImageUrl: proprietà facoltativa di tipo stringa. Immettere l'URL dell'immagine di destinazione.
MaxHeight: proprietà di tipo stringa facoltativa. Definisce l'altezza massima dell'immagine di cui eseguire il rendering in pixel.
MaxWidth: proprietà facoltativa di tipo stringa. Definisce la larghezza massima dell'immagine di cui eseguire il rendering in pixel.
ImageData: proprietà di tipo binario. Utilizzare questa proprietà per associare un'origine dati all'immagine visualizzata. L'origine dati associata deve essere binaria. È anche possibile usare questo campo per impostare in modo esplicito un'immagine specificando i dati in formato byte[].
ImageResource: proprietà facoltativa di tipo binario.
AlternativeText: proprietà facoltativa di tipo stringa. Questa proprietà viene visualizzata come testo alternativo quando non è possibile visualizzare l'immagine.
eventi:
- Non sono presenti eventi per questo controllo.
Esempio:
Nota
Per usare questo esempio, è necessario disporre di un'associazione di dati immagine esistente al controllo .
Il segmento di codice seguente genera un controllo casella immagine che associa un'origine dati al controllo :
<!--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-->
Il segmento di codice seguente genera un controllo casella immagine che associa un'immagine URL al controllo :
<!--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
nome : UocRadioButtonList
Descrizione: si tratta di un semplice elenco di pulsanti di opzione. Le scelte si escludono a vicenda in questo elenco. Questo controllo è consigliato quando gli utenti hanno cinque o meno opzioni tra cui scegliere. In caso contrario, è consigliabile usare UOCListView.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
ValuePath: il percorso del valore è impostato su Valore. Viene associato al campo Value dell'elemento Option, come descritto in questa sezione.
CaptionPath: il percorso del valore è impostato su Caption. Viene associato al campo Caption dell'elemento Option, come descritto in questa sezione.
HintPath: il percorso del valore è impostato su Hint. Viene associato al campo Hint dell'elemento Option, come descritto in questa sezione.
SelectedValue: valore attualmente selezionato. Si tratta di una proprietà di tipo stringa obbligatoria. Questa proprietà viene associata ai dati stringa dell'origine dati.
eventi:
SelectedIndexChanged: l'evento si verifica quando cambia il pulsante di opzione selezionato.
CheckedChanged: quando il pulsante di opzione cambia lo stato, questo evento viene generato.
Opzioni:
Possono essere presenti solo due elementi Opzioni come opzioni per questo controllo. Per la struttura di un elemento Options di, vedere elemento Options.
Valore: il campo Valore in un singolo elemento Option deve essere impostato su True o False.
Caption: può essere qualsiasi valore stringa.
Hint: può essere qualsiasi valore stringa.
Esempio:
Nota
Per il funzionamento di questo esempio, è necessario creare un nuovo attributo booleano, ABooleanAttribute e associarlo al tipo di risorsa personalizzato.
Il segmento di codice seguente crea un elenco di pulsanti di opzione:
<!--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
nome : UocSimpleRadioButton
Descrizione: si tratta di un semplice controllo pulsante di opzione. L'uso di questo controllo è simile a una casella di controllo semplice. Sono disponibili due pulsanti di opzione, che mostrano affiancati all'etichettatura del testo. È consigliabile eseguire il binding del controllo ai dati di tipo booleano.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
TrueText: proprietà facoltativa di tipo stringa. Questo è il testo visualizzato quando è selezionato il pulsante di opzione.
FalseText: proprietà facoltativa di tipo stringa. Questo è il testo visualizzato quando il pulsante di opzione non è selezionato.
SelectedItem: proprietà facoltativa di tipo booleano. Questo valore indica che il pulsante di opzione è selezionato. Può essere associato a dati di tipo booleano da un'origine dati. Il valore predefinito è impostato su false.
eventi:
- CheckedChanged: quando il pulsante di opzione cambia lo stato da selezionato a deselezionato o viceversa, questo segnale viene generato.
Esempio:
Nota
Per eseguire il lavoro dell'esempio, è necessario creare un nuovo attributo booleano ABooleanAttribute e associarlo al tipo di risorsa personalizzato. I dati RCDC vengono applicati allo stesso tipo di risorsa personalizzato.
Il segmento di codice seguente genera un pulsante di opzione:
<!--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
Nome: UocTextBox
Descrizione: si tratta di una casella di testo semplice che supporta l'input di tipo stringa. È consigliabile usare questo controllo per associare dati di tipo stringa.
Proprietà:
Tutte le proprietà comuni: per informazioni su queste proprietà, vedere proprietà comuni.
MaxLength: attributo facoltativo di tipo integer. Questa proprietà specifica la lunghezza massima per un input stringa. Il valore predefinito per questa proprietà è 128 caratteri.
testo: proprietà facoltativa di tipo stringa. Si tratta del testo visualizzato nella casella di testo. È possibile definire una stringa esplicita visualizzata nella casella di testo durante il caricamento iniziale del controllo o associarla a un attributo dello schema di un tipo stringa.
Righe: proprietà facoltativa di tipo integer. Questa proprietà definisce l'altezza della casella di testo in unità carattere. Il valore predefinito è un carattere.
Colonne: proprietà facoltativa di tipo integer. Questa proprietà definisce la larghezza della casella di testo in unità carattere. Il valore predefinito è 20 caratteri.
Eseguire il wrapping: proprietà facoltativa di tipo booleano. Impostando il valore di questa proprietà su true, l'utente abilita la funzionalità Ritorno a capo automatico nella casella di testo. Il valore predefinito di questa proprietà è impostato su true.
UniquenessValidationXPath: proprietà facoltativa di tipo stringa. Accetta un'espressione di filtro XPath FIM valida e garantisce che l'input del valore da parte dell'utente sia univoco all'interno delle risorse incluse nell'ambito del filtro. Ad esempio, per assicurarsi che il nome visualizzato richiesto dall'utente sia univoco all'interno di tutti i gruppi di sicurezza abilitati alla posta elettronica nel database del servizio FIM, si userà XPath
/Group[DisplayName=’%VALUE%’ and Type=’MailEnabledSecurity’. L'azione di convalida viene eseguita quando l'utente lascia la pagina. Questa proprietà è supportata solo in RCDC per la creazione di una risorsa.UniquenessErrorMessage: proprietà facoltativa di tipo stringa. Questa stringa viene usata per visualizzare un messaggio di errore se la convalida UniquenessValidationXPath ha esito negativo e può essere testo esplicito o variabile di risorsa stringa. Se questa proprietà non è specificata, il messaggio di errore predefinito per una convalida non riuscita è "%VALUE% esiste già. Si prega di provarne uno diverso".
eventi:
- TextChanged: questo evento viene generato quando il testo all'interno della casella di testo viene modificato.
Esempio:
Per un esempio completo di questo controllo, vedere la sezione Esempi di controlli semplici.
Appendice A: Schema XSD predefinito
In questa sezione viene illustrato lo schema XSD completo per tutti i controller di dominio rcd predefiniti forniti con 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>
Appendice B: XSL di riepilogo predefinito
Questa sezione illustra l'XSL riepilogo completo fornito con 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,' ',' ')" 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>