Minimally, an SCIM Attributes consists of the attribute name and at least one simple or complex value, either of which may be multi-valued.
For each SCIM Attributes, a SCIM Schema defines the data type, plurality, mutability, and other distinguishing features of a SCIM Attributes.
SCIM Attributes names are case insensitive and are often "camel-cased" (e.g., "camelCase").
SCIM Resources are represented in JSON RFC 7159 format and MUST specify schema via the "schemas" attribute per Section 3.
Attribute names MUST conform to the following ABNF rules:
ATTRNAME = ALPHA *(nameChar) nameChar = "$" / "-" / "_" / DIGIT / ALPHA
The above rules (and other rules in this specification) use the "Core Rules" from ABNF; see Appendix B of RFC 5234. Unless otherwise specified in this document, all ABNF strings are case insensitive and the character set for these strings is US-ASCII. For example, all attribute names defined by the above rule are case insensitive.
When defining attribute names, it should be noted that the hyphen ("-") is NOT permitted in JavaScript attribute names (or in attribute names for some other languages). While there are no known issues within HTTP protocol and JSON notation, attribute names containing hyphens may need to be escaped when declaring corresponding names of JavaScript attributes.
If not otherwise stated in Section 7, SCIM Attributess have the following characteristics:
The JSON format defines a limited set of data types; hence, where appropriate, alternate JSON representations derived from XML Schema are defined in RFC 7643 Section 2.3
SCIM extensions SHOULD NOT introduce new data types.!! Unassigned and null Values Unassigned attributes, the null value, or an empty array (in the case of a multi-valued attribute) SHALL be considered to be equivalent in "state".
Assigning an attribute with the value "null" or an empty array (in the case of multi-valued attributes) has the effect of making the attribute "unassigned".
When a resource is expressed in JSON format, unassigned attributes, although they are defined in schema, MAY be omitted for compactness.