Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.0 KiB

  1. ADsPath SYNTAX
  2. -----------
  3. ADsPath ::= "ADs" ":" ["//"]
  4. | Namespace ":"
  5. | Namespace "://" ProviderPath
  6. ;
  7. Namespace ::= NonEscapedName
  8. ;
  9. ProviderPath ::= Component
  10. | Component '/' ProviderPath
  11. ;
  12. Component ::= EscapedName
  13. ;
  14. NonEscapedName ::= ( StringChar)*
  15. EscapedName ::= ( StringChar | Pair )*
  16. | '"' ( StringChar | SpecialChars | Pair ) * '"'
  17. StringChar ::= AllChars - (SpecialChars | '\' | '"')
  18. Pair ::= "\" ( SpecialChars | '\' | '"' )
  19. SpecialChars = '/' | ',' | '<' | '>'
  20. NOTE:
  21. 1. Note that the above is a necessary but may not be a sufficient syntactic
  22. specification for the ProviderPath. Providers may impose further quoting or
  23. escaping rules without violating the above syntax.
  24. 2. When an entire ADsPath is written in a different context
  25. as part of another string (for eg., in URLs or search specifications)
  26. there is a need to delimit the entire ADsPath. It is recommended that '<'
  27. and '>' be used for that purpose.
  28. NOTES FOR THE LDAP Provider:
  29. 1. the LDAP provider in ADSI defines the syntax of the ProviderPath
  30. as follows.
  31. LdapProviderPath ::= [LdapServerName '/'] LdapDN
  32. ;
  33. LdapDN ::= ADsDN | X500DN
  34. ADsDN ::= LastComponent
  35. | Component '/' ProviderPath
  36. ;
  37. X500DN ::= LastComponent
  38. | Component ',' ProviderPath
  39. | Component ';' ProviderPath
  40. ;
  41. LastComponent ::= FullComponent ',' ClassSpecifier
  42. | Component
  43. ;
  44. FullComponent ::= ClassSpecifier '=' Component
  45. Component ::= EscapedName
  46. ;
  47. ClassSpecifier ::= <non x500 name>
  48. ;
  49. EscapedName ::= ( StringChar | Pair )*
  50. | '"' ( StringChar | SpecialChars | Pair ) * '"'
  51. StringChar ::= AllChars - (SpecialChars | '\' | '"')
  52. Pair ::= "\" ( SpecialChars | '\' | '"' )
  53. SpecialChars = '/' | ',' | '<' | '>' | ';' | '='