windows-nt/Source/XPSP1/NT/ds/adsi/docs/adspath.txt

85 lines
2 KiB
Plaintext
Raw Normal View History

2020-09-26 03:20:57 -05:00
ADsPath SYNTAX
-----------
ADsPath ::= "ADs" ":" ["//"]
| Namespace ":"
| Namespace "://" ProviderPath
;
Namespace ::= NonEscapedName
;
ProviderPath ::= Component
| Component '/' ProviderPath
;
Component ::= EscapedName
;
NonEscapedName ::= ( StringChar)*
EscapedName ::= ( StringChar | Pair )*
| '"' ( StringChar | SpecialChars | Pair ) * '"'
StringChar ::= AllChars - (SpecialChars | '\' | '"')
Pair ::= "\" ( SpecialChars | '\' | '"' )
SpecialChars = '/' | ',' | '<' | '>'
NOTE:
1. Note that the above is a necessary but may not be a sufficient syntactic
specification for the ProviderPath. Providers may impose further quoting or
escaping rules without violating the above syntax.
2. When an entire ADsPath is written in a different context
as part of another string (for eg., in URLs or search specifications)
there is a need to delimit the entire ADsPath. It is recommended that '<'
and '>' be used for that purpose.
NOTES FOR THE LDAP Provider:
1. the LDAP provider in ADSI defines the syntax of the ProviderPath
as follows.
LdapProviderPath ::= [LdapServerName '/'] LdapDN
;
LdapDN ::= ADsDN | X500DN
ADsDN ::= LastComponent
| Component '/' ProviderPath
;
X500DN ::= LastComponent
| Component ',' ProviderPath
| Component ';' ProviderPath
;
LastComponent ::= FullComponent ',' ClassSpecifier
| Component
;
FullComponent ::= ClassSpecifier '=' Component
Component ::= EscapedName
;
ClassSpecifier ::= <non x500 name>
;
EscapedName ::= ( StringChar | Pair )*
| '"' ( StringChar | SpecialChars | Pair ) * '"'
StringChar ::= AllChars - (SpecialChars | '\' | '"')
Pair ::= "\" ( SpecialChars | '\' | '"' )
SpecialChars = '/' | ',' | '<' | '>' | ';' | '='