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>