Características comunes de nodo
tres características son comunes a todos los nodos de la vista de datos:
Identificador de nodo
Nombre para mostrar del nodo
Elementos secundarios del nodo
Identificador de nodo
Hay dos tipos de id. de nodo, dependiendo del contexto en el que se utiliza. Los id. de nodo que se especifican para los nodos estáticos, que son los nodos que no tienen objetos subyacentes, contienen un valor diferente que los id. de nodo especificados para los nodo-nodos no estáticos que tienen objetos subyacentes.
Observe que la referencia al identificador de nodo corresponde a XML de nodeId el atributo definido en el esquema de DataViewSupport.
Identificador de nodo para Static Nodos
El identificador del nodo de un nodo estático es la parte del nombre completo de un nodo no estático que representa la ruta que conduce a ese nodo no estático. Por ejemplo, el siguiente representa el nombre completo (la ruta de acceso completa) de “crea la tabla”, que es el nodo no estático, y contiene el nodo estático “tablas”: “/Tables/UserTables/Table [pubs.dbo.authors]”.
En este caso, el identificador de nodo es “/Tables/UserTables/” porque es la ruta que conduce al nodo en cuestión.
Para obtener una descripción del formato del nombre completo de nodo, vea FullName.
Identificador de nodo para Nodos trabajar
Sin embargo, el identificador del nodo de un nodo no representa el nodo que contiene las propiedades para seleccionar objetos inferior. Este nodo normalmente es un nodo primario de los objetos que se seleccione. En particular, el proceso de selección de objeto busca el identificador del nodo del nodo primario siguiente en la jerarquía de la vista que tiene propiedades para seleccionar objetos, es decir, si el primer elemento primario no proporciona estas propiedades, el identificador del nodo primario siguiente en la jerarquía se examina hasta que encuentra un elemento primario completo.
Por ejemplo, suponga que un nodo no estático de la tabla existe en la jerarquía de vista denominada “autores” que contiene dos columnas denominadas “au_id” y “au_name”. Esta tabla y otras tablas están bajo el nodo estático “las tablas”. Para seleccionar estas columnas, el cliente necesita identificar el identificador del nodo primario de la selección de columnas, que en este ejemplo es el identificador del nodo del nodo de la selección de las tablas. XML siguiente muestra este ejemplo.
<StaticNode nodeId="Tables">
<Children>
<Selection type="Table">
<SelectionNode nodeId="Table">
<Children>
<Selection type="Column" restrictions="{Table.Name}">
...
</Selection>
</Children>
</SelectionNode>
</Selection>
</Children>
</StaticNode>
Nombre para mostrar del nodo
Los nodos de la jerarquía pueden tener un nombre para mostrar que se muestra con su icono en Visual Studio Explorador de servidores. Sólo los nodos estáticos, incluidos los nodos de conexión estáticos, requieren el nombre para mostrar, ya que puede deducir de los otros tipos de nodo.
para habilitar el nombre para mostrar de un nodo, utilice el elemento de DisplayName . Esto permite especificar el nombre de nodo como se muestra en el IDE, así como especificar cómo dar formato al nombre para mostrar. (Para un nodo de conexión, el elemento adecuado se llama al elemento de InitialDisplayName porque el nombre para mostrar de un nodo de conexión se puede modificar por el usuario). Para dar formato al nombre para mostrar, para utilizar el contenido simple de la cadena o para hacer referencia a un recurso expuesto por la sección de recursos de XML.
Puede aplicar un nombre para mostrar mediante el atributo opcional de when , que permite especificar una expresión que se evalúe para decidir, condicional, si el formato especificado es correcto en conjunto dado de condiciones.
La aplicación condicional del nombre para mostrar y formato puede producirse por varias razones. Por ejemplo, puede que desee mostrar el nombre del propietario junto al nombre de tabla sólo en condición que el nombre del propietario es distinto del nombre de usuario actual.
El código de ejemplo siguiente muestra el representante XML para administrar la aplicación condicional del nombre para mostrar, de acuerdo con el escenario anterior.
<SelectionNode>
<DisplayName when="NOT ({Schema} = {Database.UserName})">
{Name} ({Schema})
</DisplayName>
</SelectionNode>
sin embargo, la expresión literal para esta expresión condicional es ésta: para este nodo de selección, el valor del nombre para mostrar debe ser el nombre de la tabla de base de datos seguido del propietario de la tabla entre corchetes, en caso de que el esquema de tabla no es igual al usuario actual en la base de datos.
En este ejemplo no hay ningún nombre para mostrar predeterminado, sino un formato del nombre especificado por una expresión condicional. Esto se permite que los nodos de conexión del objeto y los nodos de selección, ya que estos tipos de nodo permiten que un formato predeterminado sea derivado del objeto subyacente. Para los nodos de conexión estáticos, por otra parte, el esquema se aplica el requisito que por lo menos un elemento de DisplayName se proporcione.
Elementos secundarios del nodo
los nodos deben utilizar el elemento de Children para especificar sus nodos secundarios.
hay tres tipos de nodos secundarios:
estático. Cualquier nodo puede tener un nodo estático para un elemento secundario, incluidos otro nodo estático. Por ejemplo, una colección expandida “las tablas base” podría mostrar “las tablas del sistema” y “las tablas de usuario”.
selección. Este tipo de nodo secundario se expande a varios nodos secundarios basándose en una selección de objetos del servidor. Para demostrar esto, suponga en la vista de datos que desea mostrar una lista de tablas del origen de datos. Puede escribir XML siguiente para ello:
<StaticNode> <DisplayName>Tables</DisplayName> <Children> <Selection type="Table"/> </Children> </StaticNode>
XML anterior provocaría la siguiente jerarquía que desea ver:
- Tables - <Table 1> - <Table 2> - ...