Passa al contenuto principale

3. Sintassi

Le definizioni della sintassi vincolano la struttura dei valori degli attributi memorizzati in una directory LDAP e determinano la rappresentazione dei valori degli attributi e delle asserzioni trasferiti nel protocollo LDAP.

Le sintassi richieste per il funzionamento della directory o che sono di uso comune sono specificate in questa sezione. I server DOVREBBERO riconoscere tutte le sintassi elencate in questo documento, ma non sono tenuti a supportarle in altro modo e POSSONO riconoscere o supportare altre sintassi. Tuttavia, la definizione di sintassi arbitrarie aggiuntive è sconsigliata poiché ostacolerà l'interoperabilità. Le implementazioni client e server in genere non hanno la capacità di riconoscere dinamicamente nuove sintassi.

3.1. Considerazioni generali

La descrizione di ogni sintassi specifica come i valori di attributo o di asserzione conformi alla sintassi debbano essere rappresentati quando trasferiti nel protocollo LDAP [RFC4511]. Questa rappresentazione è indicata come codifica specifica LDAP per distinguerla dagli altri metodi di codifica dei valori degli attributi (ad esempio, la codifica Basic Encoding Rules (BER) [BER] utilizzata dalle directory X.500 [X.500]).

La codifica specifica LDAP di una determinata sintassi di attributo produce sempre valori allineati agli ottetti. Per quanto possibile, le regole di codifica per le sintassi LDAP dovrebbero produrre stringhe di caratteri che possono essere visualizzate con poca o nessuna traduzione dai client che implementano LDAP. Tuttavia, i client NON DEVONO presumere che la codifica specifica LDAP di un valore di una sintassi non riconosciuta sia una stringa di caratteri leggibile dall'uomo. Esistono alcuni casi (ad esempio, la sintassi JPEG) in cui non è ragionevole produrre una rappresentazione leggibile dall'uomo.

Ogni sintassi LDAP è identificata in modo univoco con un identificatore di oggetto [ASN.1] rappresentato nel formato decimale puntato (i nomi descrittivi brevi non sono definiti per le sintassi). Questi identificatori di oggetto non sono destinati a essere visualizzati agli utenti. Gli identificatori di oggetto per le sintassi definite in questo documento sono riassunti nell'Appendice A.

Un limite superiore minimo suggerito per il numero di caratteri in un valore di attributo con una sintassi basata su stringa, o il numero di ottetti in un valore per tutte le altre sintassi, PUÒ essere indicato aggiungendo il limite all'interno di parentesi graffe dopo l'OBJECT IDENTIFIER della sintassi in una definizione di tipo di attributo (vedere la regola <noidlen> in [RFC4512]). Tale limite non è considerato parte dell'identificatore della sintassi.

Ad esempio, "1.3.6.1.4.1.1466.115.121.1.15{64}" in una definizione di attributo suggerisce che il server di directory consentirà un valore dell'attributo lungo fino a 64 caratteri, sebbene possa consentire stringhe di caratteri più lunghe. Notare che un singolo carattere della sintassi Directory String può essere codificato in più di un ottetto, poiché UTF-8 [RFC3629] è una codifica a lunghezza variabile. Pertanto, una stringa di 64 caratteri può essere lunga più di 64 ottetti.

3.2. Definizioni comuni

Le seguenti regole ABNF sono utilizzate in una serie di definizioni di sintassi nella Sezione 3.3.

PrintableCharacter = ALPHA / DIGIT / SQUOTE / LPAREN / RPAREN /
PLUS / COMMA / HYPHEN / DOT / EQUALS /
SLASH / COLON / QUESTION / SPACE
PrintableString = 1*PrintableCharacter
IA5String = *(%x00-7F)
SLASH = %x2F ; barra ("/")
COLON = %x3A ; due punti (":")
QUESTION = %x3F ; punto interrogativo ("?")

Le regole <ALPHA>, <DIGIT>, <SQUOTE>, <LPAREN>, <RPAREN>, <PLUS>, <COMMA>, <HYPHEN>, <DOT>, <EQUALS>, e <SPACE> sono definite in [RFC4512].