Administrators can create new attributes using the Schema Editor, which stores the definition in a file in the <server-root>/config/schema directory. For more information, see Extending the Directory Server Schema.

The formal specification for attribute types is provided in RFC 4512, section 4.1.2 as follows.

AttributeTypeDescription = "(" wsp; Left parentheses followed by a white space
numericoid                        ; Required numeric object identifier
[ sp "NAME" sp qdescrs ]          ; Short name descriptor as alias for the OID
[ sp "DESC" sp qdstring ]         ; Optional descriptive string
[ sp "OBSOLETE" ]                 ; Determines if the element is active
[ sp "SUP" sp oid ]               ; Specifies the supertype
[ sp "EQUALITY" sp oid ]          ; Specifies the equality matching rule
[ sp "ORDERING" sp oid ]          ; Specifies ordering matching rule
[ sp "SUBSTR" sp oid ]            ; Specifies substrings matching rule
[ sp "SYNTAX" sp oidlen ]         ; Numeric attribute syntax with minimum upper bound 
                                  ;  length expressed in {num}
[ sp "SINGLE-VALUE" ]             ; Specifies if the attribute is single valued in 
                                  ;  the entry
[ sp "COLLECTIVE" ]               ; Specifies if it is a collective attribute
[ sp "NO-USER-MODIFICATION" ]     ; Not modifiable by external clients
[ sp "USAGE" sp usage ]           ; Application usage
extensions wsp ")"                ; Extensions followed by a white space and ")"

usage = "userApplications" /      ; Stores user data
  "directoryOperation" /          ; Stores internal server data
  "distributedOperation" /        ; Stores operational data that must be synchronized 
                                  ; across servers
  "dSAOperation"                  ; Stores operational data specific to a server and 
                                  ; should not be synchronized across servers

The following extensions are specific to the PingDirectory Server and are not defined in RFC 4512.

extensions = / 
"X-ORIGIN" /             ; Specifies where the attribute type is defined
"X-SCHEMA-FILE" /        ; Specifies which schema file contains the definition
"X-APPROX" /             ; Specifies the approximate matching rule
"X-ALLOWED-VALUE" /      ; Explicitly specifies the set of allowed values 
"X-VALUE-REGEX" /        ; Specifies the set of regular expressions to compare against 
                         ;  attribute values to determine acceptance
"X-MIN-VALUE-LENGTH" /   ; Specifies the minimum character length for attribute values
"X-MAX-VALUE-LENGTH" /   ; Specifies the maximum character length for attribute values
"X-MIN-INT-VALUE" /      ; Specifies the minimum integer value for the attribute
"X-MAX-INT-VALUE" /      ; Specifies the maximum integer value for the attribute
"X-MIN-VALUE-COUNT" /    ; Specifies the minimum number of allowable values for the 
                         ;  attribute
"X-MAX-VALUE-COUNT" /    ; Specifies the maximum number of allowable values for the 
                         ;  attribute
"X-READ-ONLY"            ; True or False. Specifies if the file that contains the
                         ;  schema element is marked as read-only in the server 
                         ;  configuration.