Sistema de Nombrado en Java (JNDI) y II

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

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR