Funzionalità comuni del nodo
tre funzionalità sono comuni a tutti i nodi di visualizzazione dati:
ID del nodo
Nome visualizzato del nodo
Elementi figlio del nodo
ID del nodo
Esistono due tipi di nodi ID, a seconda del contesto in cui vengono utilizzati. Il nodo ID specificato per i nodi statici, che rappresentano i nodi che non dispongono di oggetti sottostanti, contiene un valore diverso dal nodo ID specificato per i nodo-nodi non statico con oggetti sottostanti.
Si noti che il riferimento all'ID del nodo corrisponde all'attributo XML del nodeId definiti nello schema di DataViewSupport.
ID del nodo per i nodi statici
ID del nodo di un nodo statico è la parte del nome completo di un nodo non statico che rappresenta il percorso che punti a tale nodo non statico. Ad esempio, di seguito rappresenta il nome completo (il percorso completo) della tabella “degli autori„, ovvero il nodo non statico e contiene il nodo statico “presenta„: “/Tables/UserTables/Table pubs.dbo.authors []„.
In questo caso, l'ID del nodo è “/Tables/UserTables/„ perché è il percorso che punti al nodo in questione.
Per una descrizione del formato del nome completo del nodo, vedere FullName.
ID del nodo per i nodi Non statico
Tuttavia, l'ID del nodo di un nodo non statico rappresenta il nodo che contiene le proprietà per selezionare gli oggetti. Questo nodo è in genere un nodo padre degli oggetti da selezionare. In particolare, il processo di selezione dell'oggetto consente di cercare l'ID del nodo del nodo padre successivo nella gerarchia di visualizzazione che presenta proprietà per selezionare gli oggetti, ovvero, se il primo padre non fornisce queste proprietà, l'ID del nodo padre seguente nella gerarchia viene valutato fino a individuare un controllo padre qualificato.
Ad esempio, si supponga che un nodo della tabella non statico presente nella gerarchia di visualizzazione denominata “secondari„ che contiene due colonne definite “au_id„ e “au_name„. Questa tabella e altre tabelle in “presenta„ il nodo statico. Per selezionare le colonne, il client deve identificare l'ID del nodo padre della selezione della colonna, che in questo esempio è l'ID del nodo del nodo di selezione delle Tabelle. L'xml riportato di seguito viene illustrato questo esempio.
<StaticNode nodeId="Tables">
<Children>
<Selection type="Table">
<SelectionNode nodeId="Table">
<Children>
<Selection type="Column" restrictions="{Table.Name}">
...
</Selection>
</Children>
</SelectionNode>
</Selection>
</Children>
</StaticNode>
Nome visualizzato del nodo
I nodi della gerarchia possono avere un nome visualizzato visualizzato con la relativa icona in Visual Studio Esplora server. Solo i nodi statici, inclusi i nodi statici della connessione, richiedono il nome visualizzato, in quanto può essere dedotto per gli altri tipi di nodo.
Per attivare il nome visualizzato di un nodo, utilizzare l'elemento di DisplayName . Ciò consente di specificare il nome del nodo come visualizzato nell'IDE o specificare il formato del nome visualizzato. (Per un nodo della connessione, l'elemento appropriato viene chiamato l'elemento di InitialDisplayName perché il nome visualizzato per un nodo di connessione può essere modificato dall'utente.) Per formattare il nome visualizzato, per utilizzare il contenuto semplice di stringhe o per fare riferimento a una risorsa esposta dalla sezione delle risorse XML.
È possibile applicare un nome visualizzato tramite l'attributo facoltativo di when , che consente di specificare un'espressione che viene valutata per decidere, in modo condizionale, se il formato specificato è corretto in un dato insieme di condizioni.
L'applicazione condizionale del nome visualizzato e il formato può essere determinato da numerose cause. Ad esempio, è possibile visualizzare il nome del proprietario accanto al nome della tabella solo nella condizione che il nome del proprietario è diverso dal nome utente corrente.
Il codice di esempio seguente il rappresentante XML viene illustrato come gestire applicazione condizionale del nome visualizzato, come descritto nello scenario precedente.
<SelectionNode>
<DisplayName when="NOT ({Schema} = {Database.UserName})">
{Name} ({Schema})
</DisplayName>
</SelectionNode>
Tuttavia, l'espressione letterale per questa espressione condizionale è la seguente: per questo nodo di selezione, il valore di nome visualizzato deve corrispondere al nome della tabella di database seguito dal proprietario della tabella tra parentesi, nei casi in cui lo schema della tabella non è uguale all'utente corrente nel database.
In questo esempio non esiste alcun nome visualizzato predefinito, ma piuttosto un formato del nome specificato da un'espressione condizionale. Ciò è consentita per i nodi della connessione dell'oggetto e i nodi di selezione, poiché questi tipi di nodo consentono un formato predefinito di essere derivati dall'oggetto sottostante. Per i nodi statici della connessione, invece, lo schema applica la condizione che almeno un elemento di DisplayName fornito.
Elementi figlio del nodo
I nodi devono utilizzare l'elemento di Children per specificare i relativi nodi figlio.
Esistono tre tipi di nodi figlio:
Statico. Un nodo può avere un nodo statico per un figlio, incluso un altro nodo statico. Ad esempio, “una raccolta espansa delle Tabelle base„ potrebbe mostrare “sistema presenta„ e “tabelle utenti.„
selezione. Questo tipo di nodo figlio definisca una serie di nodi figlio in base a una selezione degli oggetti enumerati dal server. Per illustrare questo, si supponga che nella visualizzazione dati che si desidera visualizzare un elenco delle tabelle dall'origine dati. È possibile scrivere il codice XML seguente per specificare:
<StaticNode> <DisplayName>Tables</DisplayName> <Children> <Selection type="Table"/> </Children> </StaticNode>
L'xml riportato sopra provocherebbe la seguente struttura a essere visualizzato:
- Tables - <Table 1> - <Table 2> - ...