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:


Definición de la Síntaxis de Atributos

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.


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