Programación en castellano Añadir una dirección | Buscador | Cursos | Artículos | Foros | Formación

Sistema de Nombrado en Java (JNDI) y II
Autor: Sun
Traductor: Juan Antonio Palos (Ozito)


En esta página:


Esquemas en JNDI

El JNDI contiene métodos que acceden a información del esquema sobre las clases, tipos de atributos, y la síntaxis de éstos. Estos métodos se listan en la siguiente tabla:

Método Descripción
DirContext.getSchema() Devuelve al árbol de esquema del objeto nombrado.
DirContext.getSchemaClassDefinition() Devuelve la definición de la clase del objeto nombrado.
Attribute.getAttributeDefinition() Devuelve la definición de atributo para éste atributo.
Attribute.getAttributeSyntaxDefinition() Devuelve la definición de la síntaxis para éste atributo.

DirContext.getSchema() se describe en esta página. Los otros métodos se describien con más detalle en otras páginas de esta lección.

El JNDI proporciona descripciones generales sobre cómo se deberían comportar estos métodos pero no específica muchos detalles, como la estructura y los contenidos del árbol de esquema, los atributos de los objetos DirContext devueltos por los métodos de esquema, o el efecto de las modificaciones en el árbol de esquema y los datos sobre el propio directorio. Estos detalles están realmente determinados por un proveedor de servicio subyacente y el servicio de directorio, porque los datos del esquema son específicos para cada servicio. Sin embargo, tiene sentido que dichos detalles sean especificados para un estilo particular de directorio. La página Guidelines for LDAP Service Providers describe el árbol de esquema recomendado y los atributos para los directorios de estilo LDAP.

Relación con el Esquema LDAP

Los métodos de la tabla anterior se llaman desde el objeto del que queremos obtener su información de esquema. Cuando estamos usando el proveedor de servicio LDAP, los objetos devueltos por estos métodos se derivan de la información de esquema del directorio LDAP. El proveedor primero intenta obtener la información desde la sub-entrada del sub-esquema del objeto correspondiente a la entrada LDAP. Si esta entrada no esta disponible, consulta la sub-entrada del sub-esquema de DSE raíz. Si ninguna de estas dos fuentes está disponible, se lanza una OperationNotSupportedException.

Las páginas Definición de Clases de Objetos, Definición de Tipo de Atributo, Definición de Síntaxis de Atributo, y Definición de Reglas de Correspondencia de Atributos son más específicas sobre cómo los atributos de la sub-entrada del sub-esquema son mapeados a los objetos devueltos por los métodos JNDI.

El Árbol de Esquema

El JNDI especifica que DirContext.getSchema() devuelve la raíz del árbol de esquema. El árbol contiene las uniones listadas en la siguiente tabla:

Nombre Unión
AttributeDefinition La raíz del espacio de nombres de la definición del tipo de atributo.
ClassDefinition La raíz del espacio de nombres de la definición de la clase del objeto.
SyntaxDefinition La raíz del espacio de nombrs de la definición de la síntaxis de atributos.

Alguna o todas esas uniones pueden estar ausentes si el directorio subyacente no publica sus datos de esquema o si el proveedor de servicio no soporta su recuperación. Por ejemplo, el Netscape Directory Server v4.1, no soporta las definiciones públicas de la síntaxis.

Los proveedores de servicios también podrían tener uniones adicionales en el árbol de esquema, por ejemplo, uniones para reglas de correspondencia y extensiones. El proveedor de servicio LDAP de Sun, por ejemplo, soporta definiciones de reglas de correspondencia para la búsqueda desde la unión "MatchingRule" en el árbol de esquema.

Aquí tenemos un ejemplo que recupera la raíz del árbol de esquema de la entrada LDAP "ou=People" y lista sus contenidos:

// Get the schema tree root
DirContext schema = ctx.getSchema("ou=People");

// List the contents of root
NamingEnumeration bds = schema.list("");
while (bds.hasMore()) {
    System.out.println(((NameClassPair)(bds.next())).getName());
}

Aquí esta la salida producida por este ejemplo:

AttributeDefinition
ClassDefinition

Principio Página
© 1999-2002, Programación en castellano, s.l.
Contacto - Datos legales

ReD Internet: Hospedaje Web | envio sms gratis | Salvapantallas | Fondos de Escritorio, famosas | melodias moviles gratis| Gratis