Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Note
titleWork in progress

This site is in the process of being reviewed and updated.

Introduction

This page describe the way schema are loaded into ADS. The schema are defined by the following document : RFC 4512 (which obsoletes the RFC 2252)

...

Code Block
<WS>                ::= ( '#' (~'\n')* '\n' | ' ' | '\t' | '\r' '\n' | '\n' | '\r' )
<QUOTE>             ::= '\''
<DIGIT>             ::= '0' .. '9'
<DOLLAR>            ::= '$'
<OPEN_PAREN>        ::= '('
<CLOSE_PAREN>       ::= ')'
<OPEN_BRACKET>      ::= '{'
<CLOSE_BRACKET>     ::= '}'
<NUMERIC_STRING>    ::= ('0' .. '9')+
<NUMERICOID>        ::= <NUMERIC_STRING ( '.' NUMERIC_STRING )+
<IDENTIFIER>        ::= ( 'a' .. 'z') ( 'a' .. 'z' | '0' .. '9' | '-' | ';' )*
<DESC>              ::= "desc" <WS> <QUOTE> ( ~'\'' )+ <QUOTE>

<SYNTAX>            ::= "syntax" <WS> <NUMERICOID> ( <OPEN_BRACKET> ( <DIGIT> )+ <CLOSE_BRACKET> )?

<parseSchema>       ::= ( <attributeType> | <objectClass> )*

<objectClass>       ::=
    "objectclass"
    <OPEN_PAREN> <NUMERICOID>
    ( <objectClassNames> )?
    ( <objectClassDesc> )?
    ( "OBSOLETE" )?
    ( <objectClassSuperiors> )?
    ( "ABSTRACT" | "STRUCTURAL" | "AUXILIARY" )?
    ( <must> )?
    ( <may> )?
    <CLOSE_PAREN>

<may>                   ::= "MAY" <woidlist>

<must>                  ::= "MUST" <woidlist>

<objectClassSuperiors>  ::= "SUP" <woidlist>

<woid>                  ::= ( <NUMERICOID> | <IDENTIFIER> )

<woidlist>              ::= ( <woid> | ( <OPEN_PAREN> <woid> ( <DOLLAR> <woid> )* <CLOSE_PAREN> ) )

<objectClassDesc>       ::= <DESC>

<objectClassNames>      ::=
    ( "NAME" ( <QUOTE> <IDENTIFIER> <QUOTE> |
    ( <OPEN_PAREN> <QUOTE> <IDENTIFIER> <QUOTE> ( <QUOTE> <IDENTIFIER> <QUOTE> )* <CLOSE_PAREN> ) ) )

<attributeType>         ::=
    "attributetype" <OPEN_PAREN> <NUMERICOID>
    ( <names> )?
    ( <desc> )?
    ( "OBSOLETE" )?
    ( <superior> )?
    ( <equality> )?
    ( <ordering> )?
    ( <substr> )?
    ( <syntax> )?
    ( "SINGLE-VALUE" )?
    ( "COLLECTIVE" )?
    ( "NO-USER-MODIFICATION" )?
    ( <usage> )?
    <CLOSE_PAREN>

<desc>                  ::= <DESC>

<superior>              ::= "SUP" ( <NUMERICOID> | <IDENTIFIER> );

<equality>              ::= "EQUALITY" ( <NUMERICOID> | <IDENTIFIER> );

<substr>                ::= "SUBSTR" ( <NUMERICOID> | <IDENTIFIER> )

<ordering>              ::= "ORDERING" ( <NUMERICOID> | <IDENTIFIER> )

<names>                 ::= "NAME" ( <QUOTE> <IDENTIFIER> <QUOTE> | ( <OPEN_PAREN> ( <QUOTE> <IDENTIFIER> <QUOTE> )+ <CLOSE_PAREN> ) )

<syntax>                ::= <SYNTAX>

<usage>                 ::= "USAGE" ( "userApplications" | "directoryOperation" | "distributedOperation" | "dSAOperation" ) SyntaxDescription

SyntaxDescription = <LPAREN> <WSP>
    ::= <OPEN_PAREN>   <WS> <numericoid>
         ( <SP><WS> "DESC" <SP> <qdstring> )?
         <WSP> <RPAREN> <WS> <CLOSE_PAREN>

Future grammar

The next version should be a little bit more powerfull :

...

Code Block
SyntaxDescription = <LPAREN> <WSP>
         <numericoid>
         ( <SP> "DESC" <SP> <qdstring> )?
         <extensions> <WSP> <RPAREN>

What does not appears in this grammar is an information regarding human readability (wether the attribute is binary or textual)..