Sistema de Nombrado en Java (JNDI) y II

Una s�ntaxis de atributo especifica la representaci�n de los valores del atributo. Algunos ejemplos de s�ntaxis son Directory String, que especifica un string de car�cteres no sensible a las may�sculas codificado usando el conjunto de caracteres ISO 10646, y Octet String, que especifica una secuencia de octetos.

En el �rbol de esquema, el nombre "SyntaxDefinition" est� unido a un contexto plano que contiene objetos DirContext que representan definiciones de s�ntaxis en el esquema. Por ejemplo, si un directorio soporta la s�ntaxis 1.3.6.1.4.1.1466.115.121.1.15 (Directory String), el contexto "SyntaxDefinition" tendr� una uni�n con el nombre "1.3.6.1.4.1.1466.115.121.1.15" que est� unida a un objeto DirContext.

Cada objeto en el contexto "SyntaxDefinition" tiene los atributos obligatorios y opcionales listados en la siguiente tabla:

Identificador de Atributo Descripci�n del Valor del Atributo
NUMERICOID (obligatorio) Identificador de Objeto �nico (OID)
DESC Descripci�n de la S�ntaxis

Estos atributos correponden con la definici�n de "SyntaxDescription" en la RFC 2252. Todos los valores de los atributos est�n representados por la clase java.lang.String.

.�Recuperar el Esquema de una Definici�n de S�ntaxis de Atributo

Para recuperar el objeto esquema de una s�ntaxis de atributo, lo buscamos en el �rbol del esquema. Por ejemplo, podremos obtener el objeto esquema que representa la s�ntaxis "Directory String" usando el siguiente c�digo. El OID para el Directory String es 1.3.6.1.4.1.1466.115.121.1.15:

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

// Get the schema object for Directory String's syntax
DirContext dsSchema =
  (DirContext)schema.lookup("SyntaxDefinition/1.3.6.1.4.1.1466.115.121.1.15");

Si obtenemos los atributos del objeto esquema dsSchema, veremos lo siguiente:

NUMERICOID: 1.3.6.1.4.1.1466.115.121.1.15 
DESC: Directory String
Nota:

Este ejemplo no funcionar� con el Netscape Directory Server v4.1 porque este servidor no publica en el esquema las definiciones de s�ntaxis.

No s�lo podemos usar lookup() para recuperar objetos del �rbol de esquema, tambi�n podemos usar m�todos como list() o search().

.�Obtener una Definici�n de S�ntaxis de Atributo

Dando un objeto Attribute que representa un atributo LDAP, podemos obtener su definici�n de s�ntaxis llamando a getAttributeSyntaxDefinition() sobre �l. Por ejemplo, para recuperar el objeto de la s�ntaxis "Directory String", primero localizamos un atributo que use esa s�ntaxis (como "cn") y luego llamamos a getAttributeSyntaxDefinition() sobre �l. Aqu� tenemos un ejemplo:

// Get an attribute that uses that syntax
Attributes attrs = ctx.getAttributes("cn=Ted Geisel, ou=People",
    new String[]{"cn"});
Attribute cnAttr = attrs.get("cn");

// Get its attribute syntax definition
DirContext dsSyntax = cnAttr.getAttributeSyntaxDefinition();
Nota:

Este ejemplo no funcionar� con el Netscape Directory Server v4.1 porque este servidor no publica en el esquema las definiciones de s�ntaxis.

.�Crear, Modificar o Actualizar Definiciones de S�ntaxis de Atributos

Din�micamente crear, borrar o modificar s�ntaxis de atributos no tiene sentido. Incluso si el servidor LDAP nos permitiera a�adir (o borrar) una s�ntaxis del esquema, se deben realizar los cambios necesarios en el servidor LDAP para soportar la nueva s�ntaxis. La mayor�a de los servidores soportan un conjunto de s�ntaxis fijas. El cambio program�tico de este conjunto normalmente no es una caracter�tica soportada.

COMPARTE ESTE ARTÍCULO

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