You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Introduction

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

A schema defines two types of elements, accordingly to RFC 4512 :

  • ObjectClasses
  • AttributeTypes

ObjectClass object

The ObjectClass syntax is (as of RFC 4512) :

<ObjectClassDescription> ::=
          <LPAREN> <SP> <numericoid> <parameters> <extensions> <WSP> RPAREN

// Each parameters should not be seen more than once
<parameters>  ::=
          ( <SP> "NAME" <SP> <qdescrs>
          | <SP> "DESC" <SP> <qdstring>
          | <SP> "OBSOLETE"
          | <SP> "SUP" <SP> <oids>
          | <SP> ( "ABSTRACT" | "STRUCTURAL" | "AUXILIARY" )
          | <SP> "MUST" <SP> <oids>
          | <SP> "MAY" <SP> <oids> )+

with the following rules :

<qdescrs>      ::= <qdescr> | <LPAREN> <WSP> <qdescrlist> <WSP> <RPAREN>
<qdescrlist>   ::= ( <qdescr> ( <SP> <qdescr> )* )?
<qdescr>       ::= <SQUOTE> <descr> <SQUOTE>
<qdstrings>    ::= <qdstring> | <LPAREN> <WSP> <qdstringlist> <WSP> <RPAREN>
<qdstringlist> ::= ( <qdstring> ( <SP> <qdstring> )* )?
<qdstring>     ::= <SQUOTE> <dstring> <SQUOTE>
<dstring>      ::= ( <QS> | <QQ> | <QUTF8> )+
<oids>         ::= <oid> | <LPAREN> <WSP> <oidlist> <WSP> <RPAREN>
<oidlist>      ::= <oid> ( <WSP> <DOLLAR> <WSP> <oid> )*
<extensions>  ::= ( SP <xstring> SP <qdstrings> )*
<noidlen>     ::= <numericoid> ( LCURLY <number> RCURLY )?

and the lexical elements :

<xstring>     ::= "X" <HYPHEN> ( <ALPHA> | <HYPHEN> | <USCORE> )+

<oid>         ::= <descr> | <numericoid>
<numericoid>  ::= <number> ( DOT <number> )+
<descr>       ::= <keystring>
<keystring>   ::= <leadkeychar> ( <keychar> )*
<leadkeychar> ::= <ALPHA>
<keychar>     ::= <ALPHA> | <DIGIT> | <HYPHEN>
<number>      ::= <DIGIT> | <LDIGIT> ( <DIGIT> )*

<ALPHA>   ::= "A"-"Z" | "a"-"z"
<DIGIT>   ::= "0".."9"
<LDIGIT>  ::= "1".."9"
<HEX>     ::= "0".."9" | "A".."F" | "a".."f"
<SP>      ::= ( " " )+
<WSP>     ::= ( " " )*
<HYPHEN>  ::= "-"
<DOLLAR>  ::= "$"
<DOT>     ::= "."
<SQUOTE>  ::= "'"
<LPAREN>  ::= "("
<RPAREN>  ::= ")"
<USCORE>  ::= "_"
<QQ>      ::= "\27"
<QS>      ::= "\5C" | "\5c"
<QUTF8>   ::= <QUTF1> / <UTFMB>
<QUTF1>   ::= 0x00..0x26 | 0x28..0x5B | 0x5D..0x7F
<UTFMB>   ::= <UTF2> | <UTF3> | <UTF4>
<UTF0>    ::= 0x80..0xBF
<UTF1>    ::= 0x00..0x7F
<UTF2>    ::= 0xC2..0xDF <UTF0>
<UTF3>    ::= 0xE0 0xA0..0xBF <UTF0> | 0xE1..0xEC <UTF0> <UTF0>) | 0xED 0x80..0x9F <UTF0> | 0xEE..0xEF <UTF0> <UTF0>
<UTF4>    ::= 0xF0 0x90..0xBF <UTF0> <UTF0> | 0xF1..0xF3 <UTF0> <UTF0> <UTF0> | 0xF4 0x80..0x8F <UTF0> <UTF0>

AttributeType object 

  • No labels