Complex Attribute


Complex Attribute, in general, is an Attribute which contains sub-attributes.

LDAP Component Syntax#

LDAP Component Syntax is an example of a Complex Attribute and also a Composite data type

As an Example: the ACL (eDirectory Attribute) might be:

acl: [Entry Rights]#<token-src-dn>#1

Which interestingly, when using DirXML would become in XML:

<do-add-dest-attr-value name="ACL">
    <arg-value type="structured">
        <arg-component name="protectedName">
	    <token-text xml:space="preserve">[Entry Rights]</token-text>
	<arg-component name="trustee">
	 <arg-component name="privileges">
	    <token-text xml:space="preserve">1</token-text>

SCIM 2.0 Complex Attribute#

Complex Attribute in SCIM 2.0 is a SINGLE-VALUE or MULTI-VALUE SCIM Attribute whose value is a composition of one or more simple attributes.

The JSON format is defined in Section 4 of RFC 7159.

The order of the component attributes is not significant.

SCIM Service Providers and SCIM Clients MUST NOT require or expect attributes to be in any specific order when an object is either generated or analyzed.

A Complex Attribute has no uniqueness or Case Sensitivity.

Complex Attribute MUST NOT contain sub-attributes that are Complex Attribute.

SCIM 2.0 Complex Attribute Example

"addresses": [
    "type": "work",
    "streetAddress": "100 Universal City Plaza",
    "locality": "Hollywood",
    "region": "CA",
    "postalCode": "91608",
    "country": "USA",
    "value": "100 Universal City Plaza\nHollywood, CA 91608 USA",
    "primary": true
    "type": "home",
    "streetAddress": "456 Hollywood Blvd",
    "locality": "Hollywood",
    "region": "CA",
    "postalCode": "91608",
    "country": "USA",
    "value": "456 Hollywood Blvd\nHollywood, CA 91608 USA"

XML Complex Attribute[2]#

XML Complex Attribute is, well, complex. refer to the reference for details.

General example:

<xs:complexType name="personName">
  <xs:element name="title" minOccurs="0"/>
  <xs:element name="forename" minOccurs="0" maxOccurs="unbounded"/>
  <xs:element name="surname"/>

<xs:complexType name="extendedName">
  <xs:extension base="personName">
    <xs:element name="generation" minOccurs="0"/>

<xs:element name="addressee" type="extendedName"/>


More Information#

There might be more information for this subject on one of the following: