code: def get_attribute_compound(attribute, value=None, splitter="|", binding_identifier="@"):
      
  
      LOGGER.debug("> Attribute: '{0}', value: '{1}'.".format(attribute, value))
  
      if type(value) is unicode:
          if splitter in value:
              value_tokens = value.split(splitter)
              if len(value_tokens) >= 3 and re.search(r"{0}\w*".format(binding_identifier), value_tokens[0]):
                  return AttributeCompound(name=attribute,
                                           value=value_tokens[1].strip(),
                                           link=value_tokens[0].strip(),
                                           type=value_tokens[2].strip(),
                                           alias=len(value_tokens) == 4 and value_tokens[3].strip() or None)
          else:
              if re.search(r"{0}\w*".format(binding_identifier), value):
                  return AttributeCompound(name=attribute, value=None, link=value, type=None, alias=None)
  
      return AttributeCompound(name=attribute, value=value, link=None, type=None, alias=None)
docs: Returns an attribute compound.
  
      Usage::
  
          >>> data = "@Link | Value | Boolean | Link Parameter"
          >>> attribute_compound = foundations.parsers.get_attribute_compound("Attribute Compound", data)
          >>> attribute_compound.name
          u'Attribute Compound'
          >>> attribute_compound.value
          u'Value'
          >>> attribute_compound.link
          u'@Link'
          >>> attribute_compound.type
          u'Boolean'
          >>> attribute_compound.alias
          u'Link Parameter'
  
      :param attribute: Attribute.
      :type attribute: unicode
      :param value: Attribute value.
      :type value: object
      :param splitter: Splitter.
      :type splitter: unicode
      :param binding_identifier: Binding identifier.
      :type binding_identifier: unicode
      :return: Attribute compound.
      :rtype: AttributeCompound